【发布时间】:2018-07-05 23:42:02
【问题描述】:
我在屏幕上有一个精灵节点,玩家可以左右移动。我知道如何使用 touchesMoved 使其左右移动,但是,如果玩家触摸某个位置,则节点会捕捉到该位置。 例如,如果节点在屏幕左侧,玩家触摸屏幕右侧,节点会立即移动到触摸位置。我不想要这种行为。我只想在玩家向左或向右移动手指时移动节点,而不是在他们触摸某个位置时移动。下面是我目前使用的代码。在 touchesBegan 或 touchesEnded 函数中没有任何代码会影响 playerNode x 位置。
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches
{
if game.state == .game
{
let position = touch.location(in: playableArea)
game.playerNode.position.x = position.x
}
}
}
我怎样才能阻止这种行为发生,并且只有当玩家的手指向左或向右移动时节点才会移动?
【问题讨论】:
标签: swift sprite-kit skspritenode touchesmoved