在Swift中的Spritekit游戏中定义我的飞船运动

时间:2019-04-16 21:29:24

标签: ios swift sprite-kit

嗨,我是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()会检测触摸位置的变化,因此,如果我在其他位置单击,太空飞船将移动我不希望的位置)

我想知道实现此目标的最佳方法,谢谢。

1 个答案:

答案 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.