Swift Sprite Kit 重新创建 SKSpriteNode`s
Swift Sprite Kit recreating SKSpriteNode`s
目前,我正在与 Swift 一起开发 Sprite Kit 游戏。
屏幕上,一开始,有5个平台。都是SKSpriteNode's
有颜色的,长得一模一样。
当玩家移动时,底部平台在 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
设置到屏幕顶部。这应该不难,尽可能重复使用游戏对象。
目前,我正在与 Swift 一起开发 Sprite Kit 游戏。
屏幕上,一开始,有5个平台。都是SKSpriteNode's
有颜色的,长得一模一样。
当玩家移动时,底部平台在 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
设置到屏幕顶部。这应该不难,尽可能重复使用游戏对象。