我正在尝试使用 UIGestureRecognizers 来在 SpriteKit 场景中移动精灵。到目前为止,它移动得很好,但只要我的手指离开屏幕,它就会停止。我现在要做的是将手势结束转换为精灵上的轻弹式运动,以便它继续沿我移动手指的方向,并基于该运动以一定程度的力移动。
这就是我到目前为止所拥有的,它似乎适用于水平运动,但在 Y 轴上一直以错误的方向发送精灵。
if (recognizer.state == UIGestureRecognizerStateEnded) {
CGPoint velocity = [recognizer velocityInView:self.view];
velocity = [self convertPointFromView:velocity];
[touchedNode.physicsBody applyForce:CGVectorMake(velocity.x, velocity.y)];
}
更新 - 更多关于我当前滑动时会发生什么。平移和释放产生的效果导致精灵以正确的方向行进,但添加了一个向下的角度。向下滑动会导致向上移动,向上滑动会导致向下移动。
更新 2 - 可能是这段代码对于我想要实现的目标来说太简单了,我应该计算精灵在施加力之前应该移动多远,这样我就可以根据它的移动给它一个特定的速度向量?