Saya membuat game strategi 2 dimensi, berbasis giliran menggunakan c ++ dan SFML-2.0. Gerakan berbasis jarak daripada berbasis grid, dengan beberapa potongan berbentuk segitiga berbeda yang, pada gilirannya, masing-masing dapat berputar di tempat atau bergerak maju.
Gerakan akan bekerja sedemikian rupa sehingga pemain memilih lokasi untuk potongan untuk bergerak, yang menghasilkan jalur potensial untuk potongan untuk mengambil. Setelah pemain mengonfirmasi keputusannya, karya tersebut akan bergerak di sepanjang jalan itu ke lokasi yang diinginkan. Jalur dibatasi oleh dua faktor: jarak, seberapa jauh sebuah karya dapat berjalan, memperhitungkan setiap belokan (jadi jika ada kurva, itu akan menjadi panjang di sepanjang kurva, dan tidak langsung dari titik ke titik); dan sudut kemudi, seberapa jauh potongan dapat berputar di titik (dan hingga setiap) saat bergerak (misalnya, dari -30 hingga 30 derajat).
Pertanyaan saya adalah, bagaimana saya harus menentukan kisaran lokasi potensial yang bisa dipilih pemain untuk dipindahkan?
Saya tidak sepenuhnya yakin persamaan dan / atau algoritma apa yang digunakan di sini. Rencana awal saya sangat rumit, sampai pada titik di mana hampir tidak mungkin untuk dilaksanakan, apalagi menjelaskan, dan saya pada titik ini benar-benar kehilangan dengan proyek terhenti.
Bagaimana saya bisa menentukan rentang unit yang bisa bergerak, dengan mempertimbangkan radius beloknya?
Misalnya, pada gambar di bawah ini. Garis merah, biru dan hijau semuanya akan memiliki panjang yang sama. Lingkaran ungu menunjukkan rentang gerakan yang dapat dipindahkan unit. (Bentuknya mungkin tidak akurat dan garis-garisnya mungkin sebenarnya tidak sama, tetapi Anda tahu)