Saya membangun game dengan pemain dan rudal.
Saya ingin menembakkan rudal dari P1 ke P2. Rudal harus selalu membutuhkan waktu tepat lima detik untuk mencapai P2. Rudal juga harus melacak P2. Jika P2 bergerak lebih jauh, rudal harus mempercepat untuk memenuhi batasan waktu. Jika P2 bergerak ke kiri, misil harus bergerak ke kiri (dan mengubah kecepatan juga). Jika P2 bergerak lebih dekat ke P1, misil harus melambat.
Apakah ini mungkin? Apa cara terbaik untuk mencapai ini?
Saat ini saya tidak memiliki kelas Vector2D (ini sebenarnya bukan permainan, tetapi analoginya bekerja dengan baik), jadi jika memungkinkan, saya ingin solusi yang tidak memerlukannya.
Sunting: Ini sebenarnya bukan rudal juga. :)
Terima kasih!
Jawaban:
Hasil edit meyakinkan. :)
Oke, inilah loop pembaruan sederhana ...
Dengan asumsi ketika kita menembakkan rudal kita menginisialisasi
remainingFlightTime = 5f
kemudian ...sumber
Kenapa tidak lerp posisi dan memperbarui tujuan target saat itu berubah?
Anda mungkin harus melihat cara kerja lerping tetapi akan terlihat seperti ini:
dengan mengarahkan Anda pada dasarnya mengubah posisi suatu objek selama jangka waktu tertentu sehingga Anda dapat mengatakan bahwa Anda 50% jalan dari A ke B dan objek tersebut akan ditempatkan di sana. Lerping bersifat langsung sehingga Anda akan selalu bergerak menuju target (seperti yang Anda inginkan di komentar).
sumber