我试图使用以下公式预测物体(球)的移动位置
t = 1秒的计算
y = VelocityY * t + 0.5*Gravity*t2
x = VelocityX * t
以下代码:
+(CGVector) getTrajectoryPointWithInitialPosition:(CGVector) initialPosition andInitialVelocity:(CGVector) initialVelocity andSteps: (CGFloat)n andSceneLayer: (SKScene*) sceneLayer
{
// Put data into correct units
CGFloat t = 1.0 / 60.0;
// m/s
CGVector stepVelocity = CGVectorMake(t * initialVelocity.dx, t * initialVelocity.dy);
// m/s^2
CGVector stepGravity = CGVectorMake(t * t * sceneLayer.physicsWorld.gravity.dx, t * t * sceneLayer.physicsWorld.gravity.dy);
initialPosition = CGVectorMake(initialPosition.dx + n * stepVelocity.dx,
initialPosition.dy + n * stepVelocity.dy + 0.5 * (n*n+n) * stepGravity.dy);
return CGVectorMake(initialPosition.dx + n * stepVelocity.dx,
initialPosition.dy + n * stepVelocity.dy + 0.5 * (n*n) * stepGravity.dy);
}
然后我使用以下
发射球(静止/非动态)CGVector aVelocity = CGVectorMake(initialVelocity.dx*17.5, initialVelocity.dy*17.5);
[ball.physicsBody setVelocity:aVelocity];
我无法弄清楚的是:
球的initialVelocity和轨迹预测是一样的。如果它是相同的,为什么将球的initialVelocity乘以17.5得到球的运动和从上面获得的预测轨迹匹配。看起来它跟随预测的路径,但我不明白为什么将球速度乘以17.5会使球
![乘以17.5之前] http://i.imgur.com/bKkPGmh.png - 乘以17.5之前 ![将速度乘以17.5后] http://i.imgur.com/Ae7sY4i.png - 乘以17.5