Saya menggunakan rumus yang sangat mendasar untuk menghitung sudut apa yang harus saya hadapi (spaceship misalnya) yang didasarkan pada thumbstick pengontrol Xbox yaitu Anda menggunakan thumbstick untuk memutar kapal.
Dalam metode pembaruan utama saya:
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
Dalam metode draw utama saya:
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
Seperti yang Anda lihat itu cukup sederhana, saya mengambil radian saat ini dari thumbstick dan menyimpannya dalam pelampung shuttleAngle
dan kemudian menggunakan ini sebagai argumen sudut rotasi (dalam radian) untuk menggambar pesawat ulang-alik.
Untuk beberapa alasan ketika saya memutar sprint rasanya lengket pada sudut 0, 90, 180 dan 270 derajat. Ia ingin puas dengan sudut itu. Itu tidak memberi saya rotasi yang halus dan alami seperti yang saya rasakan dalam game yang menggunakan mekanik yang sama. PS: Pengontrol Xbox saya baik-baik saja!
shuttleAngle
untuk melihat apakah itu melekat pada sudut tersebut