我有一个继承自SKNode的自定义类,我想在该类上实现SKSpriteNode的类似anchor的功能。具体来说,我想要实现的是自动将自定义节点置于父节点的中心(anchorPoint为0.5、0.5),而不必将其偏移其宽度/高度的一半。有什么建议吗?编辑:我最终首先创建了一个anchorPoint变量,然后覆盖了position变量并设置了由anchorPoint修改的super位置。varanchorPoint=CGPoint(x:0.5,y:0.5)overridevarposition:CGPoint{set{super.position=CGPoint(x:self.posi
我想使用多个.sks文件来存储一些复杂的SKNode层次结构,例如游戏菜单。我有一个移动物体的背景,我想在整个游戏中保留它,所以呈现不同的SKScenes并不能达到我想要的效果。我被限制在一个场景中,但我仍然想尽可能地将我的代码与艺术品分开,并且试图将所有内容压缩到一个.sks文件中很快就会变得拥挤!所以我想要多个.sks文件,每个文件存储不同的菜单:titleMenu、getReadyMenu、pauseMenu、gameOverMenu,每个菜单的所有元素都是空SKNode的后代。我已经设法加载文件,将SKNode缓存在局部变量中,并将其显示在屏幕上,但是当我点击菜单按钮时,tou
我正在制作一个“菜单”,SKNode是菜单背景,一堆SKSpriteNode作为子元素选项。问题是我不知道如何向SKNode添加颜色或纹理或其他东西以用作菜单的背景;没有.size、.texture、.color或.background/.backgroundcolor方法选项我应该使用一个SKSpriteNode和里面的其他SKSpriteNodes,还是我应该使用一个SKScene代替里面的SKSpriteNodes?或者有没有办法为SKNode分配背景图像或颜色? 最佳答案 例如我将创建红色Spriteletsprite=SK
如果我想知道哪个或哪些节点覆盖场景的特定点,我可以执行scene.nodeAtPoint(point)或scene.nodesAtPoint(point)。有没有一种有效的方法可以用圆做类似的事情?也就是能够找到在给定点一定距离内的所有节点。我需要它能够更好地处理用户点击。场景相当稀少(上面没有太多用户事件的Sprite),因此无需要求用户非常精确地点击。我想在水龙头坐标周围使用某种公差,并检测刚好接近水龙头位置的节点。到目前为止,我最好的想法是多次执行nodeAtPoint():在水龙头的位置,然后以不同的偏移量(例如向上、向右、向右),...,左上)。
我用矩形创建了我的SKPhysicsBody,我将它设置为节点的大小,但碰撞检测不适用于节点的良好部分。如何在物理体周围绘制红框?我尝试使用精确的碰撞检测,但没有用。我已经检查了一些调试库,但它只绘制了场景的直接后代,而且我的节点深度不多。作者显然不知道什么是递归。如果我的body是矩形,如何在物理body周围画红框? 最佳答案 这适用于iOS7.1和所有支持SpriteKit的OSX版本。在这个例子中,我使用变量mySKView来保存游戏的SKView。将SKView的“showPhysics”属性设置为true/YES。这通常是
(这是针对XCode6和iOS8beta4的)喜欢新的SceneKit编辑器。我成功地将场景从.sks文件加载到自定义SKScene类中。但是,其中的对象被实例化为默认类(SKNode、SKSpriteNode等),我不确定如何将它们绑定(bind)为实例化为自定义子类。目前,我通过创建自定义类并将Sprite节点作为属性链接来解决这个问题,而且效果很好 最佳答案 目前,您应该在添加到SpriteKit游戏模板的方法中按名称进行操作。他们在WWDC2014的SpriteKit最佳实践视频中介绍了这个主题。很容易错过,因为视频中有很多
我有一个SKSpriteNode,我用baseNode.runAction(SKAction.fadeOutWithDuration(0.5))淡出Sprite有一个child。还有一个SKSpriteNode。(图中红色方block)当baseNode淡出时,会出现子节点的轮廓。避免这种情况并同时淡出整个节点及其子节点的最佳方法是什么?我想在子节点中播放纹理动画。所以扁平化不是解决方案。 最佳答案 这个问题引起了我的好奇。我有一个解决方案,但是由于我对Swift的了解不足,所以我用Objective-C编写了它。然而,它非常简单,
SKNodeperformanimationbeforeremoving我正在制作一个2d横向卷轴。有从右边产生的火箭。当我向一个人投掷弹丸时,我希望它:假装它被击中了,也许在它的矢量路径上稍微向后移动,闪烁红色,诸如此类弹丸应该像箭头一样粘在火箭上(不幸的是,node.position=RocketNode.position对我不起作用:|)如果敌人HP为0,则执行死亡动画死亡动画结束后,移除火箭和弹丸下面是我一直试图开始工作的代码,我对哪个节点是哪个节点以及如何定位两个不同的节点感到困惑......bodyA和bodyB执行同样的事情也非常低效...这一切都在didBeginContact
SKNodeperformanimationbeforeremoving我正在制作一个2d横向卷轴。有从右边产生的火箭。当我向一个人投掷弹丸时,我希望它:假装它被击中了,也许在它的矢量路径上稍微向后移动,闪烁红色,诸如此类弹丸应该像箭头一样粘在火箭上(不幸的是,node.position=RocketNode.position对我不起作用:|)如果敌人HP为0,则执行死亡动画死亡动画结束后,移除火箭和弹丸下面是我一直试图开始工作的代码,我对哪个节点是哪个节点以及如何定位两个不同的节点感到困惑......bodyA和bodyB执行同样的事情也非常低效...这一切都在didBeginContact