Mempertimbangkan gambar di atas dengan ubin dibagi menjadi kotak 32x32, saya memiliki entitas yang ditandai untuk 'aggro' pemain terdekat yang mendekati itu. Saya ingin monster ini mengejar pemain secara ideal (dan terus mengejar pemain untuk sementara waktu). Saat ini, satu-satunya gerakan saya adalah interpolator sederhana saya untuk entitas jarak jauh dan ini berfungsi karena kesenjangan antara pembaruan gerakan agak kecil.
Saya tidak bisa berhasil memberi tahu klien bahwa monster itu ingin pindah ke posisi dia berada, karena hal itu akan menyebabkan entitas bergerak lebih cepat dari yang seharusnya (ini mungkin dapat diselesaikan dengan menggunakan beberapa matematika untuk interpolasi co. -Efficent) tetapi yang lebih penting itu tidak terlihat realistis dan dapat memotong dinding! Saya tidak ingin mensimulasikan seluruh gerakan di server jika dapat dihindari ... meskipun saya rasa saya bisa tetapi itu masih tidak akan menyelesaikan masalah kliping. Saya menduga solusinya melibatkan beberapa pencarian jalan dan mengirim pembaruan node periodik klien dan membiarkan mereka mensimulasikan gerakan tapi saya tidak yakin.
Terima kasih!
sumber
Sebenarnya ini mudah dilakukan. Arah gerakan akan menjadi posisi target dikurangi posisi saat ini. Yang perlu Anda lakukan adalah skala vektor ke kecepatan gerakan yang Anda inginkan. Ulangi setiap frame.
Anda perlu mensimulasikan gerakan di server. Bagaimana lagi Anda tahu bahwa semua pemain melihat perilaku yang sama?
Anda akan memerlukan beberapa pathfinding dasar. A * adalah standar. Anda bisa menghitung lintasan ke target dan kemudian mengikuti lintasan itu hanyalah kasus pengaturan vektor gerakan seperti di atas. (Atau Anda dapat menggunakan perilaku kemudi seperti pada jawaban Byte56, yang pada dasarnya hal yang sama dengan beberapa tambahan tambahan.)
sumber