Saya membuat game 2d di mana unit menembakkan panah satu sama lain. Saya tahu posisi penembak dan target serta kecepatan awal proyektil. Saya ingin tahu sudut proyektil untuk mendarat di target. Targetnya bisa pada ketinggian yang berbeda dari penembak.
Singkatnya saya tahu v0, R dan g dan saya perlu menemukan sudut (atau ketinggian?).
Saya membaca http://en.wikipedia.org/wiki/Projectile_motion , tetapi saya tidak dapat menemukan sesuatu yang berhubungan dengan apa yang saya butuhkan.
2d
projectile-physics
trajectory
korn3l
sumber
sumber
Jawaban:
Rumus untuk menemukan sudut adalah
di mana v adalah kecepatan peluncuran awal, g adalah konstanta gravitasi, x dan y adalah jarak dan tinggi target.
Dua akar persamaan ini memberi Anda dua sudut yang memungkinkan. Jika hasilnya imajiner maka kecepatan awal Anda tidak cukup besar untuk mencapai target (jika Anda ingin menghitung sudut jangkauan baca ini ). Terserah Anda sudut mana yang dipilih. Masuk akal untuk memilih jalur yang paling langsung yaitu sudut yang lebih kecil.
Anda dapat melihat GIF persamaan ini di bawah ini dengan nilai target yang berbeda dan kecepatan luncuran konstan.
Sumber dari artikel wikipedia ini
sumber
Awal tahun ini saya membuat penembak top down sederhana. Saya menggunakan metode berikut:
Jawaban sebelumnya: /programming/15364852/move-sprite-diagonally/15365570#15365570
Ini menghitung lintasan antara dua posisi.
sumber