Saya sedang menulis RTS berbasis ubin 2D. Dan saya ingin menambahkan fitur 'pseudo 3D' - jembatan di atas sungai.
Saya belum memulai pengkodean apa pun, hanya mencoba berpikir bagaimana ini cocok dengan model pendeteksian tabrakan. Sebuah kapal yang lewat di bawah jembatan dan sebuah unit yang bergerak di atas jembatan pada akhirnya akan menempati sel yang sama di peta. Bagaimana cara memperbaiki mereka dari tabrakan?
Apakah ada pendekatan umum untuk menyelesaikan masalah seperti itu? Atau saya perlu menerapkan dunia 3D untuk melakukan ini?
2d
3d
collision-detection
rts
aleguna
sumber
sumber
Jawaban:
Anda pada dasarnya harus membuat dimensi ketiga, meskipun dalam kasus paling sederhana ini dapat terdiri dari hanya dua nilai: "di tanah / di jembatan" dan "di air / di bawah jembatan".
Sebuah inspirasi dapat ditemukan dalam cara Advanced Strategic Command melakukannya: Unit-unit menempati tingkat ketinggian tertentu, hanya dapat bergerak pada tingkat ketinggian yang sesuai dengan tipenya kecuali ada fitur spesifik yang memungkinkan mereka melakukan sebaliknya (misalnya landasan pacu untuk pesawat terbang) dan mengubahnya biasanya memerlukan poin pergerakan, dengan penalti pada beberapa level ketinggian atau lainnya. Ubin dapat ditempati oleh sejumlah unit selama masing-masing berada pada tingkat ketinggian yang berbeda.
Dalam kasus ASC, levelnya adalah:
sumber
Anda dapat menambahkan atribut sederhana ke setiap ubin yang menentukan levelnya.
Jadi misalnya:
Sekarang Anda dapat mengurutkan ubin Anda tergantung pada nilai layer mereka dan menggambarnya di bawah -> atas! Ini akan membuatnya terlihat seperti Anda memiliki kedalaman tertentu dalam gim Anda. Sebagian besar mesin ubin mendukung ini. Hal keren lainnya yang dapat Anda tambahkan adalah transparansi pada tekstur Anda sehingga Anda dapat melihat hingga ke lapisan bawah.
Ini dapat dilakukan dengan air misalnya - bayangkan air di lvl 1 dan kemudian dasar laut di lvl 0. Jika tekstur air agak transparan, Anda akan dapat melihat dasar laut dari atas.
sumber