使用普通的游戏应用程序设置和集成游戏玩法套件。在场景加载时,我添加了以下内容:
然后在更新函数中,我添加了:
这个程序正常运行,精灵按照预期移动,但似乎还有一个精灵在原始位置上。我错过了什么?肯定不需要在每次更新时删除并重新添加。
self.hero = SKShapeNode.init(rectOf: CGSize.init(width: 10, height: 10), cornerRadius: 1)
if let hero = self.hero {
let pos = CGPoint.init(x: -50, y: -90)
hero.lineWidth = 5
hero.position = pos
}
self.addChild(self.hero!)
然后在更新函数中,我添加了:
if let hero = self.hero {
let moveAction = SKAction.moveTo(x: 12, duration: 1)
hero.run(moveAction)
}
这个程序正常运行,精灵按照预期移动,但似乎还有一个精灵在原始位置上。我错过了什么?肯定不需要在每次更新时删除并重新添加。
self.addChild(self.hero!)
这一行的地方。也许这行代码被多次调用,你只是复制了它(类似于重用TableViewCell时常见的错误,人们每次都会添加一个新的控件)。 - mueschalet hero = self.hero
,这可能导致您的应用程序每次都重新创建hero。 - Eric