草庐IT

Sprite-kit

全部标签

ios - 存储 Sprite Kit 关卡数据

我正在做一个项目,其中一组目标出现在屏幕上。目标应该同时出现一定数量,并且在每次出现之间有一定的延迟。我的问题是如何正确存储该游戏的关卡数据。我正在考虑使用csv文件来存储关卡数据(目标类型、位置、延迟等),但我想知道是否有更好的方法来做到这一点。我也考虑过制作一个级别对象来存储级别信息,但我不确定。Apple说要使用“Sprite节点文件”,但我似乎无法找出那是什么意思。有什么想法吗? 最佳答案 您是否考虑过改用plist文件?那将是最容易解析的。您可以拥有一组目标(字典),然后定义位置、绝对延迟以及您想要的任何其他内容。然后把它

ios - SKSpriteNode 在随机路径上的平滑运动

我正在制作一个小型SpriteKit游戏。我希望这个游戏中的“敌人”在玩家周围的随机路径上移动(这是静态的)。如果我只是在屏幕上选择一个随机点并为该点设置动画然后重复(例如:每2秒),这会给该Action带来非常参差不齐的感觉。我如何使这个随机运动非常平滑(例如:如果敌人决定掉头,它将在平滑的U形转弯路径上,而不是锯齿状的锐角)。PS:敌人必须避开玩家和对方。 最佳答案 您可以使用节点应遵循的CGPathRef创建一个SKAction。下面是一个如何让节点画圆的例子:SKSpriteNode*myNode=...CGPathRefc

iOS SpriteKit - 为摇头娃娃创建物理?

我正在尝试创建一个逼真的摇头应用程序,并希望将物理学用于摇头动画。我已经看到其他应用可以做到这一点,据我所知,我需要使用SpriteKit。我创建了一个SKScene并使用SKPhysicsJointPin将头部固定到body上,但它根本没有移动。有什么想法或建议吗?更新代码(5/28):现在在头上使用2个Spring关节,它可以从左向右移动,但不能上下移动。此外,快速敲击会导致头部最终移动得足够远,以至于“掉落”并消失在视线范围内。很奇怪。对于允许它上下左右摆动的正确设置有什么想法,同时保持在它的起始位置的远程中心并保持在指定区域内,这样它就不会脱离body看起来很有趣?Bobble

ios - 错误 : "Message reply took too long" sending message to device Watch kit OS 2

从AppleWatch向设备发送消息时出现以下错误ErrorDomain=WCErrorDomainCode=7012"Messagereplytooktoolong."UserInfo={NSLocalizedDescription=Messagereplytooktoolong.,NSLocalizedFailureReason=Replytimeoutoccured.}#import在watch和主要应用程序目标中,并且符合watch和设备上的委托(delegate)方法从watch向设备发送消息session确认为可用确认session可达NSDictionary*applic

ios - 移动父 SKNode 后,Sprite 套件找不到 nodeAtPoint

你好。我在SpriteKit中遇到了这个奇怪的问题。我正在使用nodeAtPoint和categoryBitMask在调用跳跃方法时检测玩家是否接触地面。一切正常。但是然后-为了在抽屉中显示一些可选按钮-当我用SKActionmoveTo:CGPoint移动父节点时(我有地面和玩家作为SKNode的child),玩家不要跳。我NSLogpointBelowPlayer,它和以前一样,但是blockNode.physicsBody一片空白!这可能是SpriteKit中的错误,还是我遗漏了一些关于继承和位置的基本知识?跳跃的方法:-(void)playerJump{//Playerjump

ios - 如何以可变速度沿 CGPath 移动 Sprite

我正在编写一个游戏,并希望沿着固定路径(直线和曲线-想想铁路引擎)移动Sprite,但我希望能够根据Sprite速度来驱动动画-并根据响应改变该速度游戏事件。followPath:duration:在SKAction中很接近,但似乎没有办法“即时”调整速度-我绝对关心Sprite速度-而不是“跟随路径的持续时间”。CGPath似乎是定义Sprite路径的正确构造,但似乎没有足够的功能来沿路径抓取点并进行我自己的计算。谁能推荐合适的方法? 最佳答案 您可以使用speed属性调整任何SKAction的执行速度。例如,如果您设置actio

ios - 将生成的 SKTexture 保存到文件

I'venowfiledabugfortheissuebelow.Anyonewithagoodworkaround?我尝试将SKTexture保存到文件中,然后再次加载它,但我没有成功。可以将以下代码片段复制到Xcode启动项目中的GameScene.m。我在generateTexture中使用了textureFromNode,这似乎是我的问题的根本原因。如果我使用来自sprite的纹理,代码可以运行,并且可以看到两艘宇宙飞船。此代码在iOS8中有效,但在Xcode7和iOS9中停止工作。我只想在提交错误报告之前验证这是一个错误。我担心的是我对NSKeyedArchiver做错了什么

ios - 如何保护 images.xcassets 不被窃取?

基本上我正在开发一个应用程序,其中包含多个受版权保护的图像(这些图像属于我工作的协会),我正在寻找一种方法来保护或阻止用户访问这些图像(例如:通过iFunBox或越狱设备上的iFile)。我一直在阅读有关“TexturePacker”的文章,而这正是我一直在寻找的东西:一种带有加密的内容保护,以使数据难以窃取。不幸的是,我在开发中使用的是简单的SpriteKit,我不能使用这个框架。有什么线索吗? 最佳答案 xcassets文件将图像编码为二进制文件,因此您不能简单地通过文件浏览器查看Assets。然而,在谷歌上快速搜索“Asset

ios - Sprite Kit 中允许的 categoryBitMask 的最大数量是多少?

我听说每个SpriteKit游戏只允许使用32个不同的类别位掩码。有没有办法解决?我绝对需要更多(因为游戏是开放世界游戏,所以大约多3-4倍)。我将我的类别位掩码设置如下:staticconstuint64_tboundaryCategory=0x1我什至将uint32_t更改为uint64_t,希望这将使我可以使用的类别位掩码数量翻倍。不幸的是,事实并非如此。如果有人知道绕过此限制的任何技术,我将不胜感激。 最佳答案 关于这个问题,您可以通过多种方式发挥创意。例如,您可以使用节点的名称属性。将你所有的敌人归为一个类别BitMask

ios - Sprite Kit检测触摸位置

我想根据您触摸屏幕的左半部分或右半部分来运行不同的操作。所以当你触摸左半边时一个Action,当你触摸右半边时另一个Action。我想我可以制作一个覆盖一半屏幕的透明按钮图像并使用thiscode触摸时运行一个Action,但我不认为这是要走的路。有没有更好的方法来检测触摸的位置? 最佳答案 覆盖touchesEnded:withEvent或touchesBegan:withEvent:方法来执行此操作:-(void)touchesEnded:(NSSet*)toucheswithEvent:(UIEvent*)event{UITo