3

Swift と SpriteKit で横スクロール マリオのようなゲームを作成しています。現在プレーヤーを動かしていますが、クリックし続けると動きます。私が望んでいるのは、それを保持すると移動し、画面をすばやくクリックする必要がないことです. 前もって感謝します !!!!

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {


    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

                    if location.y > 400{

            move = true

        }else{


            if location.x < CGRectGetMidX(self.frame){
                player.physicsBody?.applyImpulse(CGVector(dx: -30, dy: 0))

                //tap somewhere above this to make character jump
                if(location.y > 250) {
                    player.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 200))
                }

            } else if location.x > CGRectGetMidX(self.frame){
                player.physicsBody?.applyImpulse(CGVector(dx: 30, dy: 0))

                //tap somewhere above this to make character jump

            }
        }

    }

    }



override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {


    move = false

}
4

3 に答える 3

0

以下のコードを使用することをお勧めします。単純です。タッチが終了したら、移動アクションを削除するだけです。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    if let touch = touches.first {

        let touchPoint = touch.location(in: self)

        let leftmoveAction = SKAction.move(to: CGPoint(x: player.position.x - 200, y: player.position.y), duration: 1)
        let rightMoveAction = SKAction.move(to: CGPoint(x: player.position.x + 200, y: player.position.y), duration: 1)

        if touchPoint.y > 80 {
        }else{
            print(touchPoint)
            if touchPoint.x < self.size.width / 2 {
                if player.position.x > 70 {
                    player.run(leftmoveAction)

                }
            }else{
                if player.position.x < 350 {
                player.run(rightMoveAction)
                }

            }

        }
    }
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {


    player.removeAllActions()
}
于 2018-08-18T10:52:00.053 に答える