在 Swift 的 spritekit 游戏中定义我的宇宙飞船运动



嗨,我是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() 检测触摸位置的变化,所以如果我单击不同的位置,宇宙飞船会移动我不想要的位置)

我想知道实现这一点的最佳方式是什么,谢谢。

您可以尝试检查用户按下的区域,并根据触摸的来源决定是否移动宇宙飞船。

最新更新