草庐IT

SkSpriteNode

全部标签

swift - 如何沿水平线移动 SKSpriteNode

我有一个SKSpriteNode可以在我触摸的任何地方移动,我希望它移动到我手指所在的位置,只是沿着水平线移动,这样就不能垂直移动。classGameScene:SKScene{varship=SKSpriteNode()overridefuncdidMoveToView(view:SKView){/*Setupyourscenehere*/letshipTexture=SKTexture(imageNamed:"EvadersArt/EvadersShipVert2.png")ship=SKSpriteNode(texture:shipTexture)ship.position=CG

swift - 即使我在 swift 中使用 addChild,我的 SKSpriteNode 也不会显示

我试图将图像添加到我的游戏场景中,但它不会出现。下面是我的代码。希望大家帮帮我importSpriteKitimportGameplayKitclassGameScene:SKScene{varGround=SKSpriteNode()variceCream=SKSpriteNode()overridefuncdidMove(toview:SKView){Ground=SKSpriteNode(imageNamed:"background")Ground.setScale(0.5)Ground.position=CGPoint(x:self.frame.width/2,y:self.G

ios - 如何检测 SKSpriteNode 是否在 SKShapeNode 中

我在蓝色spaceship上放了一个圆形攻击椭圆,如果任何SKSpriteNode进入SKShapeNode(攻击椭圆),蓝色spaceship可以向SKSpriteNode。问题是我不知道如何进行检测。我已经尝试过物理body,但是,如果没有碰撞,我就无法接触。这是一个例子。我想要紫色/蓝色攻击圈来检测A,B,C,D,E这是我认为您需要的代码。RSSprite是redshipsprite的缩写blueShip.position=CGPoint(x:800,y:400)attackCircle=SKShapeNode(ellipseOfSize:CGSize(width:1000,he

ios - 检测 SKSpriteNode 何时完全低于另一个 SKSpriteNode

对于我正在创建的游戏,SKSpriteNode逐渐向下移动到用户屏幕上。屏幕底部附近还有另一个SKSpriteNode(位置是静态的),只为原始SKSpriteNode留出一点空间。我需要检测第一个SKSpriteNode何时完全低于第二个SKSpriteNode,我有有点麻烦。这是我目前使用的代码:if(pos.y>barPosY)//pos.y=1stSKSpriteNode,barPosY=2ndSKSpriteNode{touchedTooEarly=true}出于某种原因,当第一个SKSpriteNode稍微超过第二个SKSpriteNode时(不是一直),它仍然检测到它完全

swift - SKSpriteNode 在 Timer 到期时 removeFromParent() 后不会消失

在我的游戏中,我希望每次我的玩家触摸一个物体时,屏幕都会变白约0.5秒,然后恢复正常。我的代码是:privatevarcrash:SKSpriteNode?funccrashadd(){crash=SKSpriteNode(imageNamed:"GameplayBG")crash?.anchorPoint=CGPoint(x:0.5,y:0.5)crash?.position.x=0crash?.position.y=0crash?.zPosition=15mainCamera?.addChild(crash!)Timer.scheduledTimer(timeInterval:Ti

ios - 为 SKSpriteNode 缓和动画

我正在使用touchesMoved方法移动Sprite。到目前为止一切正常,但结果看起来有点不自然。一旦我的手指停止移动,Sprite就会立即停止。一个更自然的印象是,如果sprite使用easeout函数持续移动一小段时间。知道如何实现吗?这是我的代码:importSpriteKitclassGameScene:SKScene{varsprite:SKSpriteNode?varxOrgPosition:CGFloat=0.0overridefuncdidMoveToView(view:SKView){sprite=SKSpriteNode(imageNamed:"Spaceship

ios - 如何创建一个圆周,只是轮廓的SKSpriteNode?

我想创建一个SKSpriteNode如上所述。我试过UIBezierPath,但XCode无法识别用于创建该类型对象的函数。我想我可能必须import一些东西,但我不确定是什么。当我执行以下操作时,我收到错误:Missingargumentincall:center但是,一旦我添加了适当的参数,我得到了错误:Extraargument'edgeLoopF​​romPath'incall。我的代码如下:letcirclePath:UIBezierPath=UIBezierPath(arcCenter:CGPointMake(self.frame.midX,self.frame.midY)

ios - Swift 使用 SKSpriteNode 创建健康进度条

这是我当前的进度条代码。在GameScene中,我设置了varxProgress=1。空图像不应该显示为值现在应该=0吗?我正在尝试测试SKNode,然后再使它的值随着时间的推移而降低,因此它会缓慢降低。classIMProgressBar:SKNode{varemptySprite:SKSpriteNode?=nilvarprogressBar:SKCropNodeinit(emptyImageName:String!,filledImageName:String){progressBar=SKCropNode()super.init()letfilledImage=SKSprite

swift - 为 anchor 计算 SKSpriteNode 的质心

我有一个SKSpriteNode,它是一个等边三角形的图像,我想将它的anchor设置在三角形的质心,这样我就可以让它平滑旋转并保持在中心。我用下面的代码计算了质心,但这些位置是相对于场景的,所以我不确定如何将它转换为anchor(0到1之间)的精确小数。letXA=triangle.position.x-(triangle.size.width/2)//leftpointletXB=triangle.position.x//toppointletXC=triangle.position.x+(triangle.size.width/2)//rightpointletYA=triang

ios - 添加一个 SKSpriteNode 到 UIView

我被困在某事上,也许有人可以帮助我。我正在开发iOS快速游戏(我是初学者iOS开发人员)。在Storyboard中,我添加了一些按钮、一些View等。我在我的Controller中添加了一个(矩形的)引用(使用ctrl+drag):@IBOutletweakvarmainBoardGame:UIView!在我的GameScene中,我正在创建一些SKSpriteNode,例如:playerSprite=SKSpriteNode(imageNamed:"playerImg")playerSprite.position=....playerSprite.size=CGSize(width: