非常に基本的な式を使用して、Xboxコントローラーのサムスティックに基づいてスプライト(宇宙船など)が向いている角度を計算します。つまり、サムスティックを使用して船を回転させます。
私の主な更新方法では:
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
私のメインの描画方法では:
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
ご覧のとおり、非常にシンプルなので、現在のラジアンをサムスティックから取り出してフロートに格納します shuttleAngle
これをシャトルを描画するための回転角度(ラジアン)引数として使用します。
どういうわけか、スプリントを回転させると、0、90、180、270度の角度でベタつく感じがします。それらの角度で解決したいと考えています。同様のメカニズムを使用するゲームで感じるようなスムーズで自然な回転は得られません。PS:私のXboxコントローラーは大丈夫です!
1
Atan2は最初にY値を取り、次にX値を取りませんか?msdn.microsoft.com/en-us/library/system.math.atan2.aspx。最初にxとyの値を交換する必要があります。また、補間によって値を緩和することを検討しましたか?toValueの-currentValueは/スピード
—
Sidar
すみません、私はnewShuttleAngle-oldShuttleAngle / speedを意味していました。
—
Sidar 2012
それは視覚的な方向にのみ影響し、それはテクスチャの画像がどのように方向付けられるかに完全に依存します-彼の問題に影響を与えたとは思えません。
—
ジョーシャナハン
これはWindowsですか?そう( - >プロジェクトオプション] - > [アプリケーション] - [プロジェクト]> [出力タイプ)をコンソールウィンドウを使用するようにプロジェクトを設定した場合や、あなたの角度を印刷
—
ジョー・シャナハン
shuttleAngle
見ることがあれば、それらの角度でそのスティック
すごいすごいSomeWritesReservedと他のみんな、私はこのサイトに本当に感銘を受けました、フィードバックはとても速いです!私の最初の投稿なので、助けてくれたすべての人に適切にクレジットするために私が何をする必要があるかを誰かに教えてもらえますか?
—
Hugh