我正在用 Swift 构建我的第一个游戏,我想知道如何同时处理多个屏幕精灵。我的游戏将精灵推到屏幕上addChild
连续的,所以同时有很多活跃的。我意识到我没有同时影响所有敌人的正确方法 - 就像我想同时影响所有敌方精灵的物理属性一样。到目前为止我创建了一个空数组var enemySprites = [enemyType1]()
年初GameScene
并且已经appending
精灵实例而不是使用addChild
将他们直接吸引到现场。但是,我无法简单地循环并将它们绘制到屏幕上:
for enemy in enemySprites{
addChild(enemy)
}
这段代码位于override func update(currentTime: CFTimeInterval)
函数,所以也许我只是放错了地方?任何关于如何解决这个问题的帮助都会很棒!
Sam,
下面是一些当你的生命值达到 0 时更新敌人的示例代码:
首先,我们在lives
属性,这样当你失去所有生命时我们可以调用一个函数:
var lives = 3 {
didSet {
if lives == 0 {
updateEnemies()
}
}
然后是一个枚举所有敌人并将每个敌人的速度更改为 (0, 0) 的函数:
func update enemies() {
enumerateChildNodesWithName("type1") {
node, stop in
let enemy = node as! SKSpriteNode
enemy.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)