如何通过向左滑动向左移动精灵,向右滑动向右移动精灵,依此类推?
如果我向左滑动,我的精灵向左移动20点......我正在使用SpriteKit和Swift。
答案 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()
使用力并继续应用它。