草庐IT

Spritekit

全部标签

swift - 是否可以在使用 SpriteKit 的应用程序上使用 Xcode UI 测试?

我想使用SKSpriteKit对游戏进行UI测试。由于我的第一次尝试没有成功,我想知道是否可以将XcodeUI测试与SpriteKit一起使用。 最佳答案 主要思想是为要进行UI测试的元素创建无障碍Material。这意味着:列出场景中包含的所有可访问元素为每个元素配置设置,尤其是framedata。循序渐进这个答案是针对Swift3的,主要基于Accessibility(VoiceOver)withSpriteKit假设我想让名为tapMe的SpriteKit按钮可访问。可访问元素列表。将UIAccessibilityElemen

swift - 在 SpriteKit SWIFT 中获取 SKReferenceNode 的子节点

我创建了一个场景Case.sks(使用关卡编辑器),在一个SKSpriteNode(名称:方形)和一个SKLabel(名称:标签)中。在我的主场景GameScene.sks中,我使用带有“Case”的SKReferenceNode作为引用。我需要从我的主场景访问“方形”Sprite。我的第一个想法是直接调用子节点:letfirstSquare=childNode(withName:"square")as!SKSpriteNode但是我得到了:Fatalerror:unexpectedlyfoundnilwhileunwrappinganOptionalvalue所以我尝试了:letca

swift - 在 SpriteKit Swift 中移动相机

我正在使用swift在spritekit中创建游戏,并且我试图能够用手指移动SKScene,因为并非所有节点都适合场景。我已经使用此代码创建了世界、叠加层和相机节点。overridefuncdidMoveToView(view:SKView){world=self.childNodeWithName("world")!if!isCreated{isCreated=true//Camerasetupself.anchorPoint=CGPoint(x:0.5,y:0.5)self.world=SKNode()self.world.name="world"addChild(self.wor

swift - SpriteKit - 创建随机对象并使用 deltatime 移动它们

在我的游戏中,我想每隔几秒调用一个函数,从数组中创建随机对象。目前我正在像这样通过SKAction移动这些对象:funccreateRandmoObject(){letrandom=arc4random_uniform(4)randomObject=randomObjects[random]randomObject.runAction(SKAction.moveTo(CGPoint(x:randomObject.position.x,y:0-randomObject.size.height),duration:3))addChild(randomObject)}当物体击中玩家时,它会被

ios - SpriteKit : How can I get the pixel color from a point in SKSpriteNode?

我正在制作一个迷宫游戏,我正在使用SKSpriteNode作为实际的2d迷宫。我想检测用户触摸的SKSpriteNode上的点是黑色还是白色。我制作了一个与SKSpriteNode相同的图像的UIImage,并且我在UIImage上使用一种方法来获取像素信息。但是,与SKSpriteNode相比,UIImage似乎有所偏移。当我在屏幕上移动手指时它返回值,但它是不正确的。我猜UIImage的大小和位置与SKSpriteNode不同。我该如何解决这个问题?我使用以下方法获取像素数据extensionUIImage{funcgetPixelColor(pos:CGPoint)->UICol

ios - Swift Spritekit 等距 map 触摸位置

我已经开始做一个小的swift/spritekit项目来自学游戏开发。它从我设法绘制的等轴测图开始。但是我无法在map的不同图block上获得精确的触摸位置。它有效,但有点不合适,而且看起来不一致。这是我的功能:classPlayScene:SKScene{letmap=SKNode()overridefuncdidMoveToView(view:SKView){letorigin=view.frame.originletmapOrigin=CGPointMake(origin.x+self.frame.width/4,origin.y-self.frame.height/4)letm

swift - 在子类 : Swift and SpriteKit 中循环 Initialization 的 drain

我想创建一个比SpriteNode的touchesBegan级别更高的SKShapeNode,所以当我想从这个Sprite的touchesBegun事件将SKShapeNode添加到屏幕时,形状已经存在,我只需将它添加到来自touchesBegan覆盖的屏幕。TL;DR,在我的SKSpriteNode中,我正在尝试预构建SKShapeNode,它将在Sprite被触摸时用作动画环。我想用变量/常量创建SKShapeNode,这样我就可以轻松地编辑它的值...因此在子类的根目录中我有颜色、大小和线宽的变量,准备用于创建SKShapeNode...classBalls:SKSpriteNo

swift - SpriteKit : why node in collision has category bit mask of 4294967295 when this category was never assigned to a node

在下面的didBegin函数中,其中一个节点的类别位掩码为4294967295。但是,此类别从未分配给任何节点。这里是所有使用的位掩码:structPhysicsCategory{staticletNone:UInt32=0staticletAll:UInt32=UInt32.maxstaticletPlayer:UInt32=0b1//1staticletWorldBorder:UInt32=0b10//2staticletTopWorldBorder:UInt32=0b100//4staticletRightWorldBorder:UInt32=0b1000//8staticlet

swift 3 (SpriteKit) : Locking the x axis of a SKSpriteNode and its physicsBody

我真的需要知道如何锁定SKSpriteNode及其physicsBody的x轴。我需要保持SKSpriteNodedynamic和affectedByGravity。该节点位于斜坡上,因此这就是它的x轴因重力而移动的原因。但是,我不希望此SKSpriteNode的x轴因重力而移动。有没有办法锁定x轴以实现此目的?感谢您的帮助:D编辑:我试过像这样对x值应用约束:letxConstraint=SKConstraint.positionX(SKRange(constantValue:195))node.constraints?.append(xConstraint)但是这不起作用,我不确定

ios - 使用 swift 和 spriteKit 如何围绕节点外部的点旋转 SKSpriteNode?

如何在SpriteKit中围绕任意点旋转节点?我已经用谷歌搜索了一个答案“创建一个SKNode并将其位置设置为旋转中心。将应该围绕该中心旋转的节点作为子节点添加到中心节点。将子节点的位置设置为所需的偏移量(即半径,比如x+100)。更改中心节点的旋转属性,使子节点围绕中心点旋转。cocos2dbtw也是如此。”但我真的不明白如何用代码写这个:(。我是swift的新手,这看起来很难。有人能帮我写代码吗? 最佳答案 经过几个小时的试验,我这样做了。varfish:SKSpriteNode=SKSpriteNode(imageNamed: