ここでは、物理エンジンを使用せずにある種の軌道を計算するのに苦労しています。
私が達成しようとしているのは、大砲を特定のポイントに移動することです。大砲の初期位置、大砲とタッチポイントの間の角度+移動したい距離があります。
ここでの目標は、開始点、角度、距離に基づいて出口点を計算することです。
スキーム:http ://dl.dropbox.com/u/39096612/testcase.png
それが私が指を動かしながら大砲を回転させる方法です(前ではなく後ろに):
CGPoint location = [touch locationInView:[touch view]];
CGFloat angle = CC_RADIANS_TO_DEGREES(ccpToAngle(ccpSub(cannon.position, location)));
angle += 90;
cannonRotation = angle;
通常はこれで完了しますが、私にはうまくいきません(私が間違っているかもしれません...)、ここで本当にあなたの助けが必要です。
ccp(x + distance * cos(a), y + distance * sin(a))