スプライトの P2 ボディ フォースを更新して、特定の方向の定数値に等しくしたいと考えています。極座標を使えば簡単です。必要な大きさと方向を設定するだけです。ただし、フェイザー ポイントでは、ポイントの座標を直接設定する唯一の関数 (Phaser.Point#set) はデカルト座標しかサポートしていないようです。
自分で極座標からデカルト座標に変換することなく、フェイザー ポイントを一連の極座標に設定する簡単な方法はありますか?
スプライトの P2 ボディ フォースを更新して、特定の方向の定数値に等しくしたいと考えています。極座標を使えば簡単です。必要な大きさと方向を設定するだけです。ただし、フェイザー ポイントでは、ポイントの座標を直接設定する唯一の関数 (Phaser.Point#set) はデカルト座標しかサポートしていないようです。
自分で極座標からデカルト座標に変換することなく、フェイザー ポイントを一連の極座標に設定する簡単な方法はありますか?
残念なことに、このタスクにはコンストラクターがないため、setMagnitude()とrotate( ) を組み合わせて使用します。補足として、これを行うためのユーティリティ メソッドを作成することをお勧めします。これにより、極座標で Point をインスタンス化するたびに (1 回の) 簡単な呼び出しのみが必要になります。
function pointFromPolar(r, t, degrees) {
return new Phaser.Point(1,0).setMagnitude(r).rotate(0,0,t,degrees);
}
r
は大きさで、t
角度はラジアンです。degrees
が true の場合、はt
実際には度単位です。