Apakah ada cara mudah yang masuk akal untuk menerapkan gerakan bebas dalam game isometrik berbasis ubin? Berarti pemain tidak akan langsung melompat dari satu ubin ke ubin lain atau tidak "bentak" ke kotak (misalnya, jika gerakan di antara ubin diaktifkan tetapi Anda akan dikunci dari melakukan apa pun sebelum animasi selesai). Saya benar-benar pemula dengan segala sesuatu yang berkaitan dengan pemrograman game, tetapi dengan bantuan situs ini dan beberapa sumber daya lainnya, cukup mudah untuk melakukan hal-hal dasar, tetapi saya belum dapat menemukan sumber daya yang berguna untuk masalah khusus ini. .
Saat ini saya telah mengimprovisasi sesuatu yang dekat dengan ini: http://jsfiddle.net/KwW5b/4/ (gerakan WASD). Gagasan untuk gerakan ini adalah menggunakan peta mouse untuk mendeteksi ketika pemain telah pindah ke ubin yang berbeda dan kemudian membalikkan offset, dan sebagian besar itu berfungsi dengan benar (setiap sudut membuat pemain pindah ke lokasi yang salah: lihat http: //www.youtube.com/watch?v=0xr15IaOhrI , yang mungkin karena saya tidak bisa mendapatkan peta lengkap mouse berfungsi dengan baik), tapi saya tidak punya ilusi bahwa itu bahkan dekat dengan solusi yang baik / waras. Lagi pula, sebagian besar hanya untuk menunjukkan hal seperti apa yang ingin saya terapkan.
sumber
Jawaban:
Pertama-tama saya sarankan Anda mengubah arah dari: W - atas-kiri S - kanan bawah A - kiri bawah D - kanan atas
menjadi lebih intuitif: W - up S - down A - kiri D - kanan
Adapun keprihatinan Anda, saya sarankan Anda membuat dua fungsi, satu menerjemahkan koordinat ubin isometrik ke dalam koordinat kotak, dan yang kedua sebaliknya. Dengan begitu Anda bisa memisahkan MVC dan itu akan membuat hidup Anda lebih mudah saat menghitung ubin aktif:
sumber
Jika saya mengerti, Anda ingin pemain memindahkan ubin ke ubin tetapi tanpa melompat. Kamu bisa:
1- Mulai dengan ubin t0 dan offset 0
2- Saat pemain pindah ke ubin t1 set offset = - (t1 - t0)
3- Dalam pembaruan pemain, jika offset bukan 0, penurunan menggunakan waktu pembaruan dan kecepatan pemain.
4- Yo dapat menggunakan offset == 0 periksa untuk mengetahui kapan pemain ada di ubin.
Dengan ini Anda mendapatkan pemain yang bergerak bebas di peta tetapi tetap berpegang pada ubin.
sumber