所以我正在阅读有关最佳sprite工具包实践的apple文档。我遇到了这个:例如,如果您的游戏在其所有游戏玩法中使用相同的纹理,您可以创建一个在启动时运行一次的特殊加载类。您执行一次加载纹理的工作,然后将它们留在内存中。如果场景对象被删除并重新创建以重新开始游戏,则不需要重新加载纹理。这将显着提高我的应用程序的性能。有人可以指出正确的方向,告诉我如何实现这一目标吗?我假设我会调用一个函数来在我的ViewController中加载纹理?然后访问该纹理图集? 最佳答案 问题是,你真的想像那样缓存资源吗?不能说我曾经发现需要那种性质的东西
我正试图暂停我游戏中的许多Sprite。有没有一种方法可以暂停具有给定zPosition的Sprite或低于给定zPosition的所有Sprite?这些Sprite也可能在更新方法中更新物理体。 最佳答案 您可以使用如下示例中的代码来完成此任务:self.enumerateChildNodes(withName:"//*"){node,stopinifnode.zPosition>1&&node.zPosition您还可以决定在第一行中使用特定的“名称”而不是“*”来仅对具有此名称的节点进行分组。
这是一个愚蠢的问题,但是函数self.addChild()做了什么?我很熟悉这个函数,也很熟悉如何使用它,但我不确定它把child添加到什么地方。例如,我创建并设计了一个名为spinnyNode的SKShapeNode。然后我调用函数:functouchDown(atPointpos:CGPoint){ifletn=self.spinnyNode?.copy()as!SKShapeNode?{n.position=posn.strokeColor=SKColor.blackself.addChild(n)}在这种情况下,parent是什么?是创建节点的View吗?非常感谢您抽出时间回答
所以这里我有这段代码ifcollision==PhysicsCategory.Cat|PhysicsCategory.Bed{print("SUCCESS")win()ifcurrentLevel基本上,此声明适用于我拥有的每个级别。我只想在一个级别上这样做ifcollision==PhysicsCategory.Cat|PhysicsCategory.Bed|PhysicsCategory.Bottle{print("SUCCESS")win()ifcurrentLevel但是如果我要使用它就意味着在每个关卡中都需要与瓶子碰撞,但是我只想在一个关卡中使用它我用的是swift谢谢!为@
我在我的程序中使用这个创建SKShapeNodes:letpoints=[CGPoint(x:x,y:y),CGPoint(x:x2,y:y2)]letline=SKShapeNode(points:&points,count:points.count)我遇到的问题是,每当我向线上添加一个physicsBody时,physicsBody都没有与该线对齐。我意识到这个问题是因为线的位置总是CGPoint(x:0,y:0)所以physicsBody总是在屏幕的中心,不管线在哪里。这是我创建physicsBody的代码:line.physicsBody=SKPhysicsBody(recta
是的,我知道你在想什么......但这不是重复......我有2个场景,gameScene和menuScene。我想将menuScene覆盖在gameScene上。我知道你不能一次呈现2个场景,我查看了解决方案,他们都建议将menuScene设置为SKNode而不是SKScene。问题是我需要将menuScene设为SKScene,因为我使用的是SKCameraNode(在SKNode中不可用)...有什么建议吗?提前致谢。 最佳答案 相信我,你做不到。针对这些情况,您应该采取的方法是考虑层次结构和角色(参见下图)那么,如果您现在有
简单来说,我正在尝试弄清楚如何在一段时间内向我的场景添加10个节点,每个节点由一些随机时间间隔分隔。例如:Loop10times:A.CreateandaddnodetosceneB.Waitsomerandomamountoftime,1-5secondsC.BacktoA最好也知道它何时完成运行,当最后一个节点添加到场景时有一个bool值只是翻转,但这需要知道最后一个节点何时完成添加。我不太确定如何完成此操作。我阅读了一些关于dispatch_after的内容,但这并不能解决我在添加节点之间的随机时间问题。 最佳答案 在Spri
我需要在Swift中为我的游戏获取像素/点的颜色。所以我试图找到一个输入CGPoint并返回Color的函数,到目前为止我发现的所有内容都只返回(0,0,0,0)。我认为这是因为我在我的游戏场景类(它是一个SKScene)中这样做,并且场景仅由ViewController加载。任何解决方案?(如果有更好的方法来检查sprite是否接触到同样有效的颜色)提前致谢。 最佳答案 添加以下方法:extensionUIView{funcgetColor(atpoint:CGPoint)->UIColor{letpixel=UnsafeMuta
我有两个关于暂停和取消暂停场景的问题。我有按钮:playPause=SKSpriteNode(imageNamed:"buttPause.png")playPause.name="pause"playPause.setScale(0.65)playPause.position=CGPoint(x:-self.frame.width/2.55,y:self.frame.height/2.27)playPause.zPosition=10self.addChild(playPause)我已经设置了暂停和取消暂停场景的功能+改变按钮的纹理:funcbuttonpauseplayTouched
我有一颗星星的.png图片。我想用这张图片制作充满星星的动画字母。这就是我想做的(但是星星会在其中有点动画,我想这可以用粒子效果来完成):我可以通过为每个字母使用可能的多个sks文件然后将它们加载到一个更大的场景中来做到这一点吗?另外,如果我只想用几颗星星的静态纹理填充标签节点,有没有其他方法可以做到这一点? 最佳答案 不理想,但很容易实现:overridefuncdidMove(toview:SKView){ifletnodeToMask=SKEmitterNode(fileNamed:"firelfies"){backgroun