友人と私が作成しているゲームでは、レーダーを作っています。私たちはすでに基本レーダーを作っていますが、すべてが適切な位置に表示されているという意味で、レーダーにローテーションを追加しようとしています。この回転は、0度から始まる北向きのローカルプレーヤーの角度に基づいており、360度時計回りに北に戻っています。キャンバスに原点を中心に回転する
私はキャンバス上のすべてのポイント(これらは他のプレーヤー、アイテムなど)をローカルプレーヤーの角度からどのように回転させるのだろうかと思っていました。私たちは、プレーヤーが前進するたびに、レーダーで直接上に移動するようにしています。回転の度合いが何であっても、プレーヤーは常に前方に歩いている間に常にレーダーを「上らせる」べきです。
このように各プレーヤーに基本的なローテーションを試しました。 var baseX = x - localX、baseY =(canvas.height-y) - localY; var localAngle = toRadians(プレイヤー[0]。回転);
var newX = baseX * Math.cos(localAngle) - baseY * Math.sin(localAngle);
var newY = baseX * Math.sin(localAngle) + baseY * Math.cos(localAngle);
newX += localX;
newY += localY;
私が常にレーダーを「上って」いないということは、私が探していた場所に依存しているということです。ありがとうございました。
ようこそStackOverflow!私たちがコーディングの問題を解決するためには、実際に**あなたのコードを表示する必要があります。 ** **関連性の低いすべてのコード**を[**最小限で完全で検証可能な例**](http://stackoverflow.com/help/mcve)に表示するように質問を更新してください。詳細については、[**よくある質問をどうやるか**](http://stackoverflow.com/help/how-to-ask)に関するヘルプ記事を参照して、サイトの[**ツアー**](http://stackoverflow.com/tour):) –
私が試したことを追加しましたが、私は何を求めているのか正確には分からないので、コードを提供するのは少し難しいです。 –