2
私はC++とCocos2d-xを使用していますが、スプライトを常にマウスカーソルに向けようとしています。私はこれを動作させることができたが、銃のバレルがカーソルを正確に見ていないことに気がついた。プレーヤーの中心はむしろだ。スプライトの位置と回転から位置オフセットを取得します。
私は、プレイヤーがカーソルに追従させるために、このコードを使用:
Vec2 playerPos = getPosition();
this->setRotation(-CC_RADIANS_TO_DEGREES((playerPos - targetPos).getAngle()) - 180);
次の私は、次のコードを使用してガンのノズルの位置をしようとするplayerPos
にオフセットを加算してみました:
Vec2 gunNozzlePos = getPosition() + Vec2(58, -10); // Added offset
this->setRotation(-CC_RADIANS_TO_DEGREES((gunNozzlePos - targetPos).getAngle()) - 180);
を
しかし、プレイヤーが回転した後は、銃のノズルに追従しません。ここで
は私の問題を示すGIFです:
私はガンのノズル位置を見つけるために、プレイヤーの回転を考慮に入れることができますどのように?
ありがとう!私はこのコードを試して、プレーヤーの中心で回転を行いましたが、あなたの答えのコードから 'gunNozzlePos'を取り出しました。この奇妙な結果が出ました。https://i.gyazo.com/4537125ff68cd6ee7ed106893b4dc46c.gif – Acidic
Wait Nevermind 、私はラジアンに変換しませんでした! – Acidic
私はそれを正しくしましたが、ドットは先端にあまり追いつかないが、それは非常に近い。 https://i.gyazo.com/0ff76e0da961dd8158b1ac853ed25bd8.gif – Acidic