ios - Swift Sprite Kit 重新创建 SKSpriteNode`s

标签 ios swift sprite-kit

目前,我正在使用 Swift 开发 Sprite Kit 游戏。

在屏幕上,一开始,有 5 个平台。它们都是带有颜色的SKSpriteNode 的,看起来都一模一样。 随着玩家的移动,底部的平台在 Y 轴上移出屏幕,一个新生成的平台在屏幕顶部生成。

现在我很好奇,编写平台代码的最佳方式是什么? 我是否应该创建 5 个平台,当它们移出屏幕时,它们会再次出现在屏幕顶部? 或者我是否在屏幕顶部重新创建它们?平台没有限制。

平台还执行 SKActions,例如玩家到达平台后重新调整。

平台示例代码:

Platform = SKSpriteNode (color: SKColor.redColor(), size: CGSize(width: self.frame.size.width , height: 25))
Platform.position = CGPoint(x:self.frame.size.width / 2, y: 40)
Platform.zPosition = 1
addChild(Platform)

最佳答案

答案是肯定的:尽可能重复使用游戏对象。每次实例化一个对象都会产生一些开销。避免这种情况总是更好。

例如,只要超出屏幕底部边界,您就可以将 Platform.position 设置到屏幕顶部。这应该不难,尽可能重复使用游戏对象。

关于ios - Swift Sprite Kit 重新创建 SKSpriteNode`s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30599138/

相关文章:

ios - 如何检查 key 对中的 key 是否可用?

ios - UITextField inputView - IBActions 未触发

xcode - 解除分配旧的 SKscene Swift

升级到 5 后 iOS Facebook 登录不起作用

iOS 11 密码自动填充不会将密码保存到钥匙串(keychain)

ios - 无法从 uitablecell 打开 View Controller

ios - Swift 在运行时获取 `Scheme Name or Swift Compiler - Custome Flags` 值

ios - 四舍五入为偶数

ios - SKEffectNode 不会在 Swift 中使用自定义 CIFilter

iphone - SKLightNode 无法在真实设备上工作 [iPhone 5]