Estou criando um jogo que envolve elementos de jogabilidade "em queda". O problema é que não tenho certeza de como fazê-lo, de modo que os blocos se ajustem a algum tipo de grade; em outras palavras, não tenho certeza de como ele selecionará a célula mais próxima de sua posição.
Os blocos não estão encaixando continuamente em uma grade (ou seja, estão sujeitos à gravidade). Alguma dica?
mathematics
grid
JesseTG
fonte
fonte
Na minha pesquisa rápida, quando você está encaixando alguma geometria em uma grade:
Desde que todos os vértices do seu polígono (em sua posição final) coincidam com os vértices da grade (em outras palavras, se o que você está tentando ajustar se encaixa perfeitamente na grade), então
Você pode ajustar qualquer um dos vértices do polígono ao vértice da grade mais próximo e aplicar a mesma conversão a todos os outros. Você sempre terminará com a mesma posição resultante.
Isso significa que você pode simplesmente escolher um vértice e arredondar suas coordenadas ou, se estiver usando uma grade com lado maior que uma unidade, use a expressão de Austin:
cube.Position.XorYorZ = Math.round(cube.Position.XorYorZ / gridCubeWidth) * gridCubeWidth;
fonte
Math.ceil dá a sensação certa de encaixar os blocos nas grades corretas
fonte