Bagaimana saya bisa membuat Fog of War yang gradien?


14

Saya membuat game RTS 2D top-down untuk tujuan pendidikan. Saat ini, saya benar-benar hanya menyalin desain / ide Starcraft. Saya sudah memutuskan saya mungkin harus menerapkan Fog Of War juga.

Harapan saya:

  • Area yang saat ini dieksplorasi (unit ada di sana) harus menyala.
  • Area yang sebelumnya dieksplorasi (unit ada di sana) harus lebih gelap tetapi tunjukkan hal - hal apa saja yang ada ketika unit Anda ada di sana.
  • Area yang tidak dieksplorasi (area yang belum pernah dikunjungi unit Anda) harus benar-benar hitam.
  • Harus ada perubahan gradien dari masing-masing jenis (misalnya dieksplorasi ke yang sebelumnya dieksplorasi) Lihat gambar di bawah ini.

gradien antara daerah visibilitas

Hanya detail kasarnya: Bagaimana saya melakukan ini?

Jawaban:


11

Anda harus menambahkan informasi lebih lanjut tentang bagaimana Anda menerapkan permainan, tetapi berikut ini beberapa saran:

  • Menyimpan bitmap seluruh peta, setiap kali area baru dieksplorasi cukup balikkan bit yang sesuai saat itu menjadi terlihat. Anda dapat melakukan hal yang sama untuk area yang terungkap.
  • Unit musuh ditarik hanya jika mereka berada di area terungkap. Anda harus mempertahankan status 'terakhir terlihat' untuk bangunan di area FOW.
  • Anda tidak perlu memperbarui visibilitas setiap frame - tergantung pada kecepatan unit maksimum Anda, 5 atau 10fps harus cukup.
  • Dengan asumsi Anda menggunakan ubin persegi, Anda hanya perlu 4 topeng untuk mendapatkan hasil yang Anda butuhkan: satu untuk ubin 'solid' (pingsan), satu gradien 'siku' dan satu 'sudut', dan satu 'tepi lurus' gradien. Anda dapat memperoleh yang lainnya dari ini menggunakan rotasi dan transparansi yang berbeda.

Semoga itu bisa membantu.


Selain itu, gunakan indeks spasial untuk menyimpan objek game Anda, sehingga Anda dapat dengan cepat menanyakan objek mana yang terlihat oleh pemain.
Kai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.