Saya mencoba membuat mesin fisika 2d sederhana saat ini, dan saya mengalami beberapa masalah mencari tahu bagaimana memasukkan momentum ke dalam pergerakan pesawat ruang angkasa.
Jika saya bergerak ke arah tertentu pada kecepatan tertentu, saya saat ini dapat memperbarui posisi kapal saya dengan mudah (Posisi + = Arah * Kecepatan). Namun, jika kapal berputar sama sekali, dan saya menghitung ulang arah (berdasarkan sudut baru yang dihadapi kapal), dan mempercepat ke arah itu, bagaimana saya bisa memperhitungkan momentum untuk mengubah "garis" yang dilalui kapal? Saat ini kapal berubah arah secara instan dan berlanjut pada kecepatan saat ini di arah baru ketika saya menekan tombol dorong. Saya ingin ini menjadi gerakan memutar yang lebih bertahap sehingga memberi kesan bahwa kapal itu sendiri memiliki massa.
Jika sudah ada posting bagus tentang topik ini saya minta maaf, tetapi tidak ada yang muncul dalam pencarian saya. Beri tahu saya jika ada informasi lain yang diperlukan, tetapi saya berharap seseorang dapat dengan mudah memberi tahu saya bagaimana saya dapat melemparkan kecepatan * massa ke pembaruan lingkaran permainan saya.
Jawaban:
Sepertinya Anda memiliki Posisi dan Arah sebagai vektor dan Kecepatan sebagai skalar?
Jika demikian, ubah Velocity menjadi vektor juga dan kemudian lakukan sesuatu seperti ini:
Arah menjadi vektor satuan panjang yang memberikan judul kapal Anda. Daya menjadi jumlah dorongan yang ingin Anda tambahkan (Nol saat tidak diperlukan akselerasi) ElapsedTime adalah waktu di antara permainan Anda Perbarui panggilan untuk menjaga gerakan tetap lancar bahkan ketika framerate Anda berubah
Jika Anda ingin tahu lebih banyak tentangnya, Anda dapat melihat Integrasi Euler
sumber
Alih-alih memanipulasi kecepatan secara langsung, tambahkan variabel lain: akselerasi , yang lambat laun mengubah kecepatan :
Dari fisika klasik ( hukum gerak Newton ):
dimana:
(Catatan m adalah satu-satunya nilai skalar; F, a, v, dan p adalah semua vektor 2D atau 3D)
Juga, sebenarnya ada dua arah:
Saya menjawab pertanyaan terkait pada StackOverflow: 2D pergerakan angkasa Spaceship . Ada beberapa kode sampel dalam jawaban itu.
sumber