Saya membuat game 2D. Saat ini ada helikopter terbang di sekitar, dikendalikan oleh pemain. Itu dikendalikan menggunakan tombol panah: ATAS, KIRI dan KANAN.
Kecepatan di sepanjang sumbu y adalah dy
, dan kecepatan di sepanjang sumbu x adalah dx
.
Fisika itu adalah sebagai berikut:
Setiap kali UP tidak ditekan , dy
akselerasi dalam akselerasi konstan, tanpa batas ke bawah. (Gravitasi). dx
tetap dalam nilai saat ini.
Ketika UP ditekan , dy
akselerasi dalam akselerasi konstan dari apa pun itu, hingga 4 (ke atas, hingga mencapai kecepatan 4). dx
tetap dalam nilai saat ini.
Ketika KIRI ditekan , dx
akselerasi dalam akselerasi konstan, dari apa pun itu saat ini, hingga -4 .
Ketika KANAN ditekan , dx berakselerasi dalam akselerasi konstan, dari apa pun saat ini, hingga 4 .
(Ketika KIRI atau KANAN ditekan dan UP tidak ditekan secara bersamaan, seperti yang saya katakan: dy
semakin menjadi lebih kecil dan lebih kecil, karena gravitasi mempengaruhi helikopter)
Semua ini membuat helikopter sering mengikuti lengkungan di udara, bukan garis lurus.
Ini menciptakan fisika yang tampaknya cukup realistis.
Pertanyaanku adalah:
Helikopter lawan, AI, harus bergerak menggunakan sistem fisika yang sama.
Katakanlah AI ingin mendapatkan dari tempatnya sekarang, ke titik B.
Jika tidak ada gravitasi dan tidak ada akselerasi bertahap dalam permainan, itu akan mudah. Saya hanya akan menggambar vektor dari posisi AI ke titik B, dan membuat AI mengikutinya.
Tetapi karena ada gravitasi dan percepatan bertahap, AI tidak pernah bisa bergerak dalam garis lurus (hampir). apa yang akan menjadi cara terbaik untuk membuat AI menuju ke titik B, seefisien mungkin?
Bagaimana saya bisa mempertimbangkan gravitasi ketika menggerakkan AI menuju tujuan tertentu?
(Jika lebih mudah dijelaskan, harap pertimbangkan titik B berada pada level yang sama pada sumbu y seperti AI, dan tidak diagonal untuk itu.)
Terima kasih