オブジェクトを操作しようとしています。別のオブジェクト、たとえば地球に近づくと、地球に元のオブジェクトを重力で引っ張ってもらいたいと思います。私は使用することになっていることを知っているCCBezierTo
ので、これは数学の質問であるため、プログラミングの質問ではありません。
数学的には、ベジェ曲線の3つのポイント(1、2、および終了)をどのように把握し、その距離に応じて重みを付けることができますか(遠くにある=引っ張りが少ない)。私はすでに距離を変数にマッピングしています。
月の周りをスリングショットする宇宙船を考えてみてください。
コード:
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(projectile.position.x + 10, projectile.position.y + 20);
bezier.controlPoint_2 = ccp(projectile.position.x + 20, projectile.position.y + 40);
bezier.endPosition = ccp(projectile.position.x + 30, projectile.position.y+60);
id bezierAction = [CCBezierTo actionWithDuration:1 bezier:bezier];
[projectile stopAllActions];
[projectile runAction: bezierAction];