我正在制作我的第一场比赛,它将与马里奥相似。 (使用swift)
已经开始制造他们需要左右移动并响应碰撞的一些敌人,我可以为我的玩家节点执行此操作,因为我从SKScene更新函数调用了player.update()函数,
override func update(currentTime: NSTimeInterval)
{
player.update()
}
我的问题是:
对于enemyX,如何让节点更新,因为SKSpriteNode没有可以覆盖的默认更新功能,而且来自我的游戏场景
我不想写一些像:
override func update(currentTime: NSTimeInterval)
{
player.update()
enemyX.update()
enemyY.update()
enemy001.update()
...
enemy100.update
}
你明白我的意思,我怎么解决这个问题,SKSpriteNode需要成为一个不同的类吗?
也许是行动?
let moveLeft = SKAction.moveByX( 200, y:0, duration: 5)
self.runAction(moveLeft, completion: {
print("----> move left Complete")
})
感谢。
答案 0 :(得分:1)
你继承了SKSpriteNode
和该类中的更新方法。然后在场景中的更新方法中,你完全按照你的说法进行操作
player.update()
enemy.update()
等
除非你的敌人的行为非常简单,否则不建议使用SKAction。