草庐IT

Sprite-Kit

全部标签

ios - SpriteKit SKScene size.width 说 1024 docs 说它应该是 768

我将应用程序设置为仅纵向。当我在初始SKScene上println(self.size.width)时,它会给我1024。文档说“所以,场景初始化为1024的高度和768的宽度......”这里:https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html.为什么我的宽度是1024?宽度是完全基于手机的旋转还是始终相同? 最佳答案 是的,宽度可以基于设备的方向,但如果您只

ios - arc4random 和 arm64 与 swift

这个问题在这里已经有了答案:SwiftUIColorinitializer-compilererroronlywhentargetingiPhone5s(2个答案)关闭8年前。我正在尝试在sprite工具包中创建一个生成随机颜色的函数。这是我使用的代码:varhue=Float(arc4random()%256)/256.0;varsaturation=Float(arc4random()%128)/256.0+0.5;varbrightness=Float(arc4random()%128)/256.0+0.5;self.color=UIColor(hue:hue,saturatio

position - SKSpriteNode 上的 CGPoint x 无法正常工作(一半的节点超出屏幕)

我实际上正在使用SwiftSpriteKit开发游戏。我设置了一个SKSpriteNode的位置:skPart1.position=CGPointMake(0,100)所以节点应该从最左边的窗口边缘开始。|-------------------------||-------------------------||-------------------------||-------------------------||==========|--------------||==========|--------------||==========|--------------|但实际上我

ios - SpriteKit 中的平滑 Sprite 运动

您好,我正在使用SpriteKit在Swift中制作游戏,我想知道是否有办法让Sprite平滑移动。目前我在SKAction中使用moveTo方法,Sprite会在设定的时间段内到达目标位置——这意味着如果位置较远,Sprite会更快到达那里。我想知道是否有一种可靠的方法可以让Sprite加速到最大设定速度,然后在到达该位置时减速。感谢所有帮助。 最佳答案 使用勾股定理根据距离获得正确的持续时间以获得所需的速度。看这里:https://stackoverflow.com/a/19126642/431271就最后的减速而言,你可以像这

ios - 如何避免在 SpriteKit 中传递 currentTime?

我在开发我的应用程序时发现,我的一些节点需要访问传递给更新方法的currentTime以实现业务逻辑。不断地将this作为参数传递给所有可能需要它的初始化程序和方法似乎很麻烦。我想知道其他开发人员可能对这个问题有什么解决方案(是否有任何标准模式)。访问系统时间是一个选项,但可能会有一些开销,并且每次调用时都会有所不同。也许可以使用全局变量,但我想知道是否存在任何线程问题或在闭包中使用它的问题。选项? 最佳答案 好吧,我想你可以创建某种全局变量,例如:staticvar_currentTime:CFTimeInterval=0然后在您

ios - 调整使用 SKPhysicsBody 创建的 SpriteKit SKPhysicsBody 的大小(circleOfRadius :)

我正在构建一个SpriteKit“链式react”游戏,其中的圆圈在“爆炸”时会变大。我正在使用SKPhysicsBody(circleOfRadius:)初始值设定项来为圆圈创建物理体。不幸的是,这些物理体似乎不会随着圆变大而调整大小,而且它们没有我可以设置的公开的.radius属性。有什么方法可以在SpriteKit中调整物理体的大小,还是我需要每帧都创建一个新的物理体?(这就是我在下面所做的,代码运行良好,但感觉在更新循环中创建新的物理体真的很低效。)PS-我知道对于圆圈,我可以使用三角函数轻松进行准确的碰撞检测以获得距离,但我想使用SpriteKit碰撞检测来实现其他一些效果。

swift 1.2 : Method does not override any method from its superclass

在我的SKScene子类中,我实现了一个touchesBegan方法。此方法将NSSet更改为Set以使其与Swift1.2兼容(参见question)。overridefunctouchesBegan(touches:Set,withEventevent:UIEvent){//...}现在编译器给我一个错误:Methoddoesnotoverrideanymethodfromitssuperclass。我的代码——和任何Swift代码一样——在1.2中被破坏了,我已经修复了除了这个覆盖案例之外的所有问题。我在这里遗漏了什么吗? 最佳答案

ios - 使用 Spritekit 的简单 Gif 动画

我真的找不到一个简单的解决方案,我看到的每个示例都只显示了非常复杂的解决方案,但我想要的只是2-3个循环的图像,所以它看起来就像是动画。与Gif动画效果相同。现在我有这个来创建一个图像MonsterNode=SKSpriteNode(imageNamed:"MonsterNode_GameScene")但是我如何将MonsterNode变量设置为此类动画?我真的在寻找实现这一目标所需的最少代码。 最佳答案 主要思想是使用animateWithTextures来完成这项任务。您需要设置Sprite需要动画的所有帧以及每帧的显示时间。然

ios - 防止 SKNode 离开 View

我正在开发一个“太空入侵者”游戏,我已经实现了CMMotionManager来移动我的heroShip倾斜(游戏只能在横向运行),但由于某种原因我的船会移出视野,即使self.physicsBody=SKPhysicsBody(edgeLoopFromRect:self.frame)应该通过制造物理优势来防止这种情况发生。有什么想法吗?importSpriteKitimportCoreMotionclassGameScene:SKScene,SKPhysicsContactDelegate{letcollisionBulletCategory:UInt32=0x1,withEvente

ios - 使用 spritekit 检测释放快速滑动时的坐标

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion您好,如果有人可以帮助我,那就太好了!我需要获取滑动的坐标。我可以从locationInNode等获取初始触摸的坐标,但是我们如何获取滑动释放点的坐标?functouchesBegan(touches:Set,withEventevent:UIEvent