嗨,我是Xcode和Swift的新手,现在我正在尝试设计一款游戏,其中一艘太空飞船是外星飞船的玩家。 我遇到了一个小问题,我试图将飞船的运动与飞船的发射区分开来。
基本上,我使用touchesBegan()函数来运行我的飞船发射的函数,并使用touchesMoved()函数来移动飞船的x位置。
这些是代码:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
pShoot()
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let location = touch.location(in: self)
spaceship.run(SKAction.moveTo(x: location.x, duration: 0.5))
}
}
我想做的是区分点击或触摸指示器以及按下和移动指示器,换句话说,我不想让太空船在被按下并在屏幕上移动时触发,并且我不希望太空船在我不断单击但位置不同时移动。 (touchesMoved()会检测触摸位置的变化,因此,如果我在其他位置单击,太空飞船将移动我不希望的位置)
我想知道实现此目标的最佳方法,谢谢。
答案 0 :(得分:0)
You could try checking the area that the user pressed and deciding whether or not to move the spaceship depending on the origin of the touch.