我开始编写最简单的游戏纯粹是为了更好地理解 Xcode 环境中的 SpriteKit 和 swift 语言。我的游戏只是将屏幕上的精灵(对象)移动到我们用手指按下的位置,我是这样实现的:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
ZombieNode.run (SKAction.move(to: CGPoint(x: location.x, y: location.y), duration: 1))
}
}
这里一切正常,我们用手指按下按钮,精灵移动到那里,但问题是我将手指从精灵按下多远会改变它的速度,这是因为我通过这样的动作实现了它:
ZombieNode.run (SKAction.move(to: CGPoint(x: location.x, y: location.y), duration: 1))
这里一切都是顺理成章的,动作发生在 1 秒内,所以距离越远,速度越快——要在这段时间内通过,但我该如何改变呢?我需要确保无论距离如何都是相同的速度。请帮助,如何做到这一点?
您需要根据距离和所需速度确定持续时间。