草庐IT

Sprite-kit

全部标签

ios - SpriteKit - 如何正确暂停和恢复应用程序

我在使用GamesbyTutorials这本书的帮助下制作的最新iPhone游戏时遇到了很大的问题。注意:方法来自SpriteKit-therightwaytomultitask不起作用。因此,在我的ViewController.m文件中,我定义了私有(private)变量SKView*_skView。然后,我做这样的事情:-(void)viewDidLayoutSubviews{[superviewDidLayoutSubviews];if(!_skView){_skView=[[SKViewalloc]initWithFrame:self.view.bounds];_skView.

ios - 如何枚举 Sprite Kit 场景中的所有节点?

我想枚举场景中的所有节点。不仅是场景本身的子节点,还有那些节点的子节点,以及那些场景的子节点……所以我希望能够遍历整个节点层次结构。有没有一种方法可以在不知道节点树有多深的情况下做到这一点? 最佳答案 是的,使用enumerateChildNodesWithName:usingBlock:并将//*作为节点名称传递。您应该能够在任何节点上调用它。它实际上是Apple'sdocs中的示例之一://*Thissearchstringmatcheseverynodeinthenodetree.

ios - 如何获取通过 SpriteKit 编辑器创建的项目的 SKSpriteNode?

我使用SpriteKit(使用Objective-C)在XCode中创建了一个相当简单的(此时,实验性的)“游戏”。我知道如何手动创建一个SKSpriteNode对象并将其添加到SKScene-但我有点想做相反的事情-我在XCodeSceneKitGUI本身内部创建了Sprite(并给它起了一个名字),现在我想在我的代码中检索它。在之前使用XCode的经验中,您可以通过声明一个@propertyUIOutlet[etc]然后将其连接为IB/StoryboardUI内的引用socket来实现此目的-但我找不到任何类似的方法来在内部执行此操作SpriteKit用户界面。我可以创建一个属性(

ios - NSGenericException 原因集合 <NSConcreteMapTable : xxx>

这是我在出现SKScene时看到的错误,此错误发生随机并且无法复制*由于未捕获的异常“NSGenericException”而终止应用程序,原因:“*集合在枚举时发生了变异。”这是怎么回事?如果您需要任何其他信息,请告诉我谢谢编辑:***Firstthrowcallstack:(0CoreFoundation0x025601e4__exceptionPreprocess+1801libobjc.A.dylib0x022298e5objc_exception_throw+442CoreFoundation0x025efcf5__NSFastEnumerationMutationHandl

ios - 如何通过代码从 SKScene 转到 UIViewController?

如果当用户触摸skscene中的skspritenode时,它​​会转到不同的View,如performseguewithidentifier。谢谢你的帮助。我可以发布代码,但这似乎是一个通用问题,所以我认为您不需要任何代码。顺便说一句,我已经想出了如何检测skspritenode的敲击。我已经看了很长时间了,我很难过。请帮忙。 最佳答案 您不能从SKScene中呈现viewController,因为它实际上只在SKView上呈现。您需要一种方法来向SKView的viewController发送消息,后者将呈现viewControl

ios - JSTilemap - 仅加载可见的图 block

有没有人成功地使用JSTilemap只加载可见的图block?我问的原因是因为我的map太大而无法一次加载,我想单独加载分段或仅动态加载当前在屏幕上可见的那些图block。我不想使用KoboldKit。编辑:激动人心的更新。Steffan和Marcus正在TilemapKit.com上开发一个漂亮的工具包。等不及要按他们的方式砸钱了。 最佳答案 这是以前做过的。在这里查看如何让JSTileMap执行您要求的操作。https://github.com/fattjake/JSTileMap/commit/01b5bacc8c5ccc10

ios - SpriteKit : performance hit while preloading SKTextureAtlas

我在预加载SKTextureAtlas时遇到了性能问题:lettextureAtlas=SKTextureAtlas(named:atlasName)textureAtlas.preload(completionHandler:{...})我所说的性能下降是指FPS在短时间内下降到大约50。我在Instruments中使用TimeProfiler对其进行了测试,并验证了这项工作确实是在工作线程上完成的,如documentation中所述.下图显示了TimeProfiler捕获的尖峰,这是由预加载图集引起的。如您所见,大部分峰值是由2个工作线程引起的,据我所知,它们似乎都在加载图像数据。

ios - 以安全格式存储游戏偏好和保存的游戏

这是来自Apple文档:WhenyoudesignagamethatreportsscorestoGameCenter,youshouldalsoconsiderthesecurityneedsofyourgame.YouwantscoresreportedtoGameCentertobeanaccurateaccountingofhowplayersaredoing.Herearetwosuggestions:Storeyourgame’spreferencesandsavedgamesinasecureformat,ratherthanincleartext.Ifyourgame’

ios - 从 SKShapeNode 创建 SKTexture

有没有办法从SKShapeNode创建SKTexture?已知形状节点会导致内存问题,我正在寻找一种方法来从它们创建静态图形(最好是.png)。 最佳答案 您可以使用名为textureFromNode:的SKView方法引用文献:textureFromNode:渲染并返回包含节点内容的SpriteKit纹理。-(SKTexture*)textureFromNode:(SKNode*)node参数节点表示要渲染到纹理的内容的节点对象。返回值保存渲染图像的SpriteKit纹理。讨论被渲染的节点不需要出现在View呈现的场景中。创建的新

ios - 暂停/未暂停时的 SKEmitterNode 间隙

每当我的SKEmitterNode暂停/取消暂停时(例如当应用程序处于后台/前台时),粒子中就会出现不自然的间隙。所有本应在暂停时移动的粒子似乎在未暂停时堆叠起来并释放。我有一个exampleproject这准确地显示了正在发生的事情,这是它的gif。编辑:这是iOS9和tvOS中的错误,已向Apple提交错误报告。感谢@WangYudong和@Ben-Kane的帮助。 最佳答案 我还暂停了带有发射器的场景,但没有看到这个问题。在我的实现中我使用了它,希望它能有所帮助。我认为将速度设置为0和暂停一样是关键?funcpauseGame