如何使用滑动手势移动精灵?

时间:2014-11-12 02:22:28

标签: ios xcode ipad

如何通过向左滑动向左移动精灵,向右滑动向右移动精灵,依此类推?

如果我向左滑动,我的精灵向左移动20点......我正在使用SpriteKit和Swift。

2 个答案:

答案 0 :(得分:3)

谢谢! @jonogilmour

我已经用这种方式解决了它:

let right = SKAction.moveByX(64, y: 0, duration: 0.6)
    let left = SKAction.moveByX(-64, y: 0, duration: 0.6)
    let up = SKAction.moveByX(0, y: 64, duration: 0.6)
    let down = SKAction.moveByX(0, y: -64, duration: 0.6)



    func swipedRight(sender:UISwipeGestureRecognizer){
        player.runAction(right)
    }
    func swipedLeft(sender:UISwipeGestureRecognizer){
        player.runAction(left)
    }
    func swipedUp(sender:UISwipeGestureRecognizer){
        player.runAction(up)
    }
    func swipedDown(sender:UISwipeGestureRecognizer){
        player.runAction(down)
    }


override func didMoveToView(view: SKView) {


        let swipeRight:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:"))
    swipeRight.direction = .Right
    view.addGestureRecognizer(swipeRight)

    let swipeLeft:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedLeft:"))
    swipeLeft.direction = .Left
    view.addGestureRecognizer(swipeLeft)

    let swipeUp:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedUp:"))
    swipeUp.direction = .Up
    view.addGestureRecognizer(swipeUp)

    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
    swipeDown.direction = .Down
    view.addGestureRecognizer(swipeDown)
............

答案 1 :(得分:1)

对于滑动,您可以使用UIGestureRecognizer,特别是UISwipeGestureRecognizer。这些都有详细记录,因此简单的Google搜索将为您提供所需的信息。然后,您需要在精灵上使用applyForce()applyImpulse()。同样,这些都有很好的文档记录,并且无法实现。

两者之间的区别在于冲动就像用球棒击球一样;脉冲一次施加到物体上,随着时间的推移逐渐减少。随着时间的推移不断施加力,就像汽车加速一样。在这种情况下,您可以在滑动时施加冲动并完成滑动,或者您可以在x_distance < 20方法中update()使用力并继续应用它。

相关问题