Há algo que está me incomodando nesta questão, especificamente:
- A pergunta está sendo feita como se cada localização da grade tivesse uma altura.
- No entanto, a malha outline a altura dos 4 cantos de cada localização da grade (não o centro da grade em si).
Muito provavelmente cada quadrado da grade está sendo renderizado usando dois triângulos, portanto a altura (central) da grade é a média de apenas dois pontos (olhando as imagens – acho que são os pontos superior e inferior).
Supondo que tudo o que eu disse esteja correto, você poderia simplesmente calcular a média dos dois pontos corretos para a localização atual e fazer o mesmo para cada uma das oito direções, a fim de determinar o gradiente para cada movimento possível. No entanto, como você está usando apenas dois (dos quatro) pontos para determinar a altura de cada native da grade, suspeito que haverá alguns artefatos estranhos onde o jogo permitirá alguns movimentos que parecem não ser possíveis.
Indo direto ao ponto, dada a importância da altura do terreno para determinar quais rotas são transitáveis, consideraria repensar como os mapas são desenhados para que:
- A altura de cada quadrado da grade é exibida claramente.
- É óbvio quais direções são aceitáveis.
- Os “quadrados” da grade ainda estão claros.
Uma resposta possível pode ser dobrar o número de vértices horizontal e verticalmente, de forma que o centro de cada grade possa estar em um vértice e você terá 8 vértices intermediários (um para cada direção de movimento) entre a localização atual e o centro de cada um dos vértices. os quadrados adjacentes – o que permitirá suavizar as alturas desses pontos: o ponto intermediário é apenas a média do quadrado atual e adjacente.
Você também pode querer fazer o format do padrão de triângulo de maneira um pouco diferente, por exemplo, um único quadrado de grade “dobrado” pode ter 8 triângulos:
+--+--+
| "https://gamedev.stackexchange.com/"
| "https://gamedev.stackexchange.com/"
+--+--+
"https://gamedev.stackexchange.com/" |
"https://gamedev.stackexchange.com/" |
+--+--+
O “problema” com esta abordagem é que sua grade “Quadrados” agora tem 8 lados….