Saya membuat game yang melibatkan elemen gameplay "blok jatuh". Masalahnya adalah, saya tidak begitu yakin bagaimana cara membuatnya sehingga blok-blok akan masuk ke beberapa jenis kisi, dengan kata lain, saya tidak yakin bagaimana ia akan mengambil sel terdekat ke posisinya.
Blok tidak secara terus menerus gertakan ke kisi (yaitu mereka tunduk pada gravitasi). Ada tips?
mathematics
grid
JesseTG
sumber
sumber
Dalam penelitian singkat saya, ketika Anda memotret beberapa geometri ke kisi:
Selama semua simpul poligon Anda (pada posisi terakhirnya) bertepatan dengan simpul kisi (dengan kata lain, jika apa yang Anda coba pasang pas di kisi), maka
Anda dapat mengambil salah satu simpul dari poligon Anda ke simpul grid terdekat, dan menerapkan terjemahan yang sama ke yang lainnya. Anda akan selalu berakhir dengan posisi hasil yang sama.
Ini berarti Anda cukup memilih titik dan memutarnya koordinatnya, atau, jika Anda menggunakan kisi dengan sisi lebih besar dari satu unit, gunakan ekspresi Austin:
cube.Position.XorYorZ = Math.round(cube.Position.XorYorZ / gridCubeWidth) * gridCubeWidth;
sumber
Math.ceil memberikan nuansa yang tepat untuk memasang blok ke kisi kanan
sumber