草庐IT

Sprite-Kit

全部标签

iOS SpriteKit 如何使用应用程序包中文件夹中的图像创建节点?

我正在尝试创建一个随机怪物的Sprite,我的图像存储在主包中引用的文件夹中。NSString*bundlePath=[[NSBundlemainBundle]bundlePath];NSString*resourceFolderPath=[NSStringstringWithFormat:@"%@/monsters",bundlePath];NSArray*resourceFiles=[[NSFileManagerdefaultManager]contentsOfDirectoryAtPath:resourceFolderPatherror:nil];NSIntegerrandomF

ios - 为什么 SKSpriteNode node.frame.size.width 小于 node.size.width?

为什么SKSpriteNodenode.frame.size.width小于node.size.width?这是示例代码,您可能需要插入自己的图片-(void)DrawRect:(SKSpriteNode*)node{SKShapeNode*rect=[[SKShapeNodealloc]init];CGMutablePathRefmyPath=CGPathCreateMutable();CGPathAddRect(myPath,nil,node.frame);rect.path=myPath;rect.lineWidth=1;rect.strokeColor=[SKColorwhit

iOS SpriteKit 获取当前场景中的所有节点并使应用程序具有通用性。

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion嗨,我是spritekit框架的新手,我只想知道两件事:1)如何获取当前场景中所有的SKSprite节点?2)如何使应用程序通用,即它可以在iPhone3.5"、iPhone4"和iPad上运行?提前致谢。

ios - SKPhysics : Made a rope, 为什么会坏?

我一直在尝试使用sprite套件,为我的想法构建原型(prototype)。我一直在使用SKPhysicsJointPin将一串物理体连接在一起,以制作一根绳子(实际上更像是自行车链条,但它已经足够好了)。场景中还有一些球,当我点击它们时,它们会掉落。这导致以下情况:但是,当我丢更多的球时,链条似乎无法处理它,并“断裂”:这是一个movieshowingthephenomenon这是怎么回事?该文档从不建议SKPhysicsJointPin具有有限的最大强度或弹性或类似物。这是sprite套件中的“错误”,还是我使用了错误的方法? 最佳答案

ios - Xcode 允许你从 Assets.xcassets 中制作一个 "sprite Atlas",它实际上是一个图集吗?

如果您在Assets.cxassets文件夹中并点击加号,您可以添加一个新的“spriteatlas”和/或新文件夹。当您从这个菜单创建“Sprite图集”或文件夹时,它们看起来完全一样。我的印象是atlas文件夹的末尾必须有后缀“.atlas”?我读到,对于屏幕上的大量重复纹理,使用Sprite图集通常更好。当我开始我的项目并将所有图像放入该文件夹时,我在Assets.cxassets中创建了一个“Sprite图集”。我读得越多,我就越觉得我做错了。我在网上找不到关于在Assets.cxassets中放置“atlas”文件夹的任何信息。当我像上面提到的那样创建atlas文件夹时,它没

ios - 如何在应用程序激活时保持 SpriteKit 场景暂停?

有什么方法可以防止SpriteKit在进入前景/变得活跃时自动取消暂停场景?我设置了paused=true并希望它保持如此,即使应用程序在发送到后台后再次激活也是如此。我应该补充一点,我正在迅速执行此操作,但我没想到在这方面的行为会有所不同。 最佳答案 不确定它在objective-c中是否相同,但很快我不得不“覆盖”SKView在幕后调用的回调函数,funcCBApplicationDidBecomeActive(){}此函数导致暂停被重置。(注意不应应用覆盖关键字)在某些情况下,您只想保留暂停状态,创建一个新变量并覆盖isPau

ios - 在spritekit中模拟水/在水上制作 Sprite "float"

我正在努力为我的游戏加水。除了不同的背景颜色外,没有太多其他内容。但是,我希望player-sprite漂浮在它上面(或中间)。如果玩家只是从下面走进水里,我希望他能浮到水面上。如果他摔倒了,我希望他慢慢改变方向,然后重新浮起来。当他在水中时,我试着让重力为负,但这给我带来了一些不太想要的效果。例如,当他(玩家)浮出水面时,正常重力会将他推回下方,水会将他推上去,等等。最终,玩家将在水中“弹跳”,从一端被推到另一端。当他浮出水面时,我希望他能平静地留在水面上。我怎样才能做到这一点?这是我的更新循环中的代码:SKNode*backgroundNodeAtPoint=[_bgLayerno

ios - SKScene iPad 高度宽度反转

我正在尝试在仅支持横向模式的iPad应用程序中用图block填充我的SKScene。在场景中,我检测到h&w是这样的:inth=[UIScreenmainScreen].bounds.size.height;intw=[UIScreenmainScreen].bounds.size.width;不幸的是,发回的尺寸与它们需要的尺寸相反。在SO中有很多主题在ViewController或View的内容中讨论这个问题,解决方案似乎是在viewWillAppear中检测屏幕大小,而不是在viewDidLoad中。然而,这似乎不是SKScenes的有效解决方案。有什么建议吗?

iOS7 Sprite Kit 如何禁用对 Sprite 的触摸以使其成为 "tap through"?

我知道对于传统的UIViews,我可以将“启用用户交互”标志设置为NO,View将不再响应触摸,让它们下面的View接收触摸。有没有什么方法可以在SpriteKit中实现相同的“点按”功能?到目前为止,我只看到人们使用“Touchesbegin”,了解要点并在该点向场景询问节点。这种方法的问题是-如果我想在sprite上添加叠加层(如怪物生命值等),它们也会响应触摸。到目前为止,我试图通过为不同的节点创建自定义类来避免这个问题,然后使用一个非常大的if语句来检查每个节点的类。有没有更好的方法来实现spritekit的“点按”功能? 最佳答案

ios - Xcode 8 在打开项目后立即崩溃(似乎与场景编辑器相关)

所以Xcode8一直有很多错误,并且在使用SpriteKit场景编辑器和瓷砖贴图时似乎经常崩溃......当我在场景编辑器中打开场景并使用瓦片贴图时发生错误。现在我什至不能打开我的项目超过3秒Xcode就会崩溃...有点不知所措......我已经尝试卸载并重新安装Xcode...但没有任何效果。这是崩溃报告的pastebin。任何帮助将不胜感激。http://pastebin.com/kDMjPYec 最佳答案 清除Xcode的派生数据文件夹对我有用。您可以在Xcode->Preferences->Locations标签中找到派生数