让精灵向各个方向移动
Posted
技术标签:
【中文标题】让精灵向各个方向移动【英文标题】:Make a sprite move in all directions 【发布时间】:2018-12-03 14:58:45 【问题描述】:@objc func handleSwipe(gesture: UIGestureRecognizer)
if let gesture = gesture as? UISwipeGestureRecognizer
switch gesture.direction
case .up:
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 110))
print("Swiped up")
case .down:
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: -110))
print("Swiped down")
case .right:
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 110, dy: 0))
print("Swiped right")
case .left:
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
ballPlayer.physicsBody?.applyImpulse(CGVector(dx: -110, dy: 0))
print("Swiped left")
default:
print("No such gesture")
我试图让我的精灵节点在所有方向上移动,包括对角线和 90 度到 45 度之间的每个角度。这就是我所拥有的,现在不知道该怎么做。有什么帮助吗?
【问题讨论】:
【参考方案1】:我认为UISwipeGestureRecognizer
不够灵活,无法满足您的需求。您可能需要使用 UIPanGestureRecognizer
获取从触摸事件开始到结束的向量
This tutorial on UIGestureRecognizer 应该有你要找的东西,特别是减速部分。
【讨论】:
看来我可以在 SpriteKit 中使用它,这就是我在我的应用程序中使用的。 应该可以和 SpriteKit 一起使用。 Here is a tutorial on UIPanGestureRecognizer with SpriteKit。请参阅结尾部分如何使用手势识别器。以上是关于让精灵向各个方向移动的主要内容,如果未能解决你的问题,请参考以下文章