Swft: сделайте шар и поместите его внизу экрана вертикально.Затем перемещайте мяч вертикально, когда вы быстро нажимаете на него. - PullRequest
0 голосов
/ 17 сентября 2018

Эй, ребята! Я новичок здесь в стеке, и я также новый программист. Я пытаюсь научить себя быстрому, но я столкнулся с некоторыми проблемами. Я пытаюсь заставить шар двигаться вертикально только тогда, когда вы нажимаете на шар, поэтому, если вы нажмете на экран, а не на шар, он не поднимется. что у меня пока.

  //Function on vetical movement
func moveVertically (up:Bool) {
    let moveAction = SKAction.moveBy(x: 0, y: 3, duration: 0.50)
    let repeatAction = SKAction.repeatForever(moveAction)
    if up {
        player?.run(repeatAction)
    }else{
        let moveAction = SKAction.moveBy(x: 0, y: -3, duration: 0.01)
        let repeatAction = SKAction.repeatForever(moveAction)
        player?.run(repeatAction)
    }
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let touch = touches.first {
        let location = touch.previousLocation(in: self)
        let node = self.nodes(at: location).first

        if node?.name == "player"{
            moveVertically(up: true)
        }else {moveVertically(up: false)

    }

}

}

func createPlayer(){

        //create a ball
        let path = CGMutablePath()
        path.addArc(center: CGPoint.zero,
                    radius: 15,
                    startAngle: 0,
                    endAngle: CGFloat.pi * 2,
                    clockwise: true)
        let ball = SKShapeNode(path: path)
        ball.lineWidth = 1
        ball.fillColor = .blue
        ball.strokeColor = .white
        ball.glowWidth = 0.5
        //set the player to ball and manipulate the player position.
        player = ball
        player?.position = CGPoint(x: 0, y: (scene?.size.height)! / -2.5)



        self.addChild(player!)
    }

P.S. Я пытаюсь заставить шар двигаться вертикально, но также когда вы нажимаете на правую сторону мяча, он уходит влево и наоборот, но когда я говорю налево, я имею в виду идти вертикально вверх и влево.

...