フォーラムを掃除した後、これを見つけることができませんでした。こんな感じで実装したいのですが・・・主人公は常に向いている方向に動きます。プレイヤーが画面に触れると、キャラクターはそのタッチした場所の方を向くようになり、体が別の方向に動くはずです。
次のように、キャラクターをタッチ位置に向けることができます。
CGPoint diff = ccpSub(location, self.position);
CGFloat targetAngle = atan2f(diff.y, diff.x);
self.body->a = targetAngle;
私はこれらの線に沿ったものが欲しいです。キャラクターが向いている現在の角度を取得します。その角度を単位ベクトルに変換します。その単位ベクトルに max_velocity を掛けて、キャラクターに適用します。これは(理論的には)一定の速度でキャラクターが向いている方向にキャラクターを動かすはずですか?
これは私が欲しいものを私に与えるようです:
cpVect rotatedVel = cpvmult(ccpForAngle(self.body->a), MAX_VELOCITY);
self.body->v = cpvlerpconst(self.body->v, rotatedVel, ACCELERATION * dt);
今必要なのは、時間をかけてゆっくりとキャラクターの方向を回転させる方法だけです。どうすればそれを行うことができますか?