我试图使用UIGestureRecognizers能够在SpriteKit场景内移动一个sprite。到目前为止,它移动得很好,但只要我把手指从屏幕上移开,它就会停下来。我现在想做的事情是将手势结尾转换为精灵的轻弹式运动,这样它就继续朝着我根据该运动以一定程度的力量移动手指的方向。使用UIPanGestureRecognizer轻弹SpriteKit sprite
以下是我目前为止似乎适用于水平移动但仍在Y轴上以错误方向发送精灵的内容。
if (recognizer.state == UIGestureRecognizerStateEnded) {
CGPoint velocity = [recognizer velocityInView:self.view];
velocity = [self convertPointFromView:velocity];
[touchedNode.physicsBody applyForce:CGVectorMake(velocity.x, velocity.y)];
}
更新 - 更多关于当我滑动当前会发生什么。平移和释放所产生的效果会导致精灵以正确的方向行进,但会向下添加角度。向下滑动会导致行程向上移动,向上滑动会导致行程向下移动。
更新2 - 这可能是这个代码太简单了,我想要实现,我应该计算精灵在应用力之前应该移动多远,以便我可以根据它的运动给它一个特定的速度矢量?
它是如颠倒y方向一样简单吗? 'velocity.y * -1' –
这反转了我看到的效果。 –
是不是正确的? –