A Batalha de Coordenadas usa três espaços de coordenadas diferentes durante a jogabilidade:
Espaço do mundo: espaço de coordenadas usado para colocar objetos no mundo do jogo por meio de funções da API Verse.
Espaço do tabuleiro: espaço de coordenadas usado para posicionar objetos nos tabuleiros de jogo do jogador.
Espaço do minitabuleiro: espaço de coordenadas usado para mostrar aos jogadores uma visão do seu próprio tabuleiro.
Esses espaços de coordenadas se combinam para dar ao jogador uma visão precisa do estado atual do jogo e do desempenho da jogabilidade.
É necessário planejamento e reflexão para designar um gerenciamento abrangente de espaço de coordenadas. A maior parte do trabalho é converter entre os espaços de coordenadas para que você possa mapear vetores de forma confiável no espaço do mundo para coordenadas no tabuleiro do jogo e para coordenadas no minitabuleiro e vice-versa.
Você pode ver o espaço do tabuleiro representado como o tabuleiro de jogo no centro da imagem acima (1), e o espaço do minitabuleiro representado pelo minitabuleiro no canto superior esquerdo da imagem acima (2).
O espaço do mundo é o sistema de coordenadas persistente subjacente ao UEFN e às funções da API Verse. O UEFN usa o sistema de coordenadas tridimensional Left-Up-Forward (LUF).
Consulte mais informações sobre esse sistema de coordenadas na documentação Sistema de coordenadas Left-Up-Forward.
Espaços de coordenadas
Cada um dos espaços de coordenadas nesta experiência requer a conversão de posições em diferentes superfícies e tipos diferentes para posicionar adequadamente os objetos no mundo. Abaixo estão as descrições de cada um desses espaços. Isso é discutido com mais profundidade mais adiante neste tutorial.
Espaço do mundo
O espaço do mundo é o espaço padrão que o UEFN e o Verse usam para posicionar objetos no mundo do jogo. Este exemplo de jogo usa principalmente objetos creative_device. Como resultado, a classe Verse usada para representar posições no mundo do jogo para dispositivos é a transformação no módulo /UnrealEngine.com/Temporary/SpatialMath com a definição:
transform<public> := struct<concrete><computes>:
Scale<public>:vector3
Rotation<public>:rotation
Translation<public>:vector3
onde vector3 é definido como:
vector3<public> := struct<concrete><computes><persistable>:
X<public>:float
Y<public>:float
Z<public>:float
A transformação define onde um objeto está localizado (translação), em que direção ele está voltado (rotação) e seu tamanho (escala).
Qualquer objeto que deriva da classe creative_object tem acesso às funções da API Verse para:
GetTransform: obtém os dados de transformação atuais de um objeto.TeleportTo: move um objeto para o destino de entrada sem animação.MoveTo: anima o movimento para o destino de entrada.
A definição de transformação, juntamente com essas funções de API, fornecem tudo o que é necessário para definir onde um objeto está no mundo do jogo e colocá-lo lá.
Espaço do tabuleiro
Espaço do tabuleiro é o espaço usado para o tabuleiro principal do jogo na Batalha de Coordenadas, identificado pela chamada (1) na imagem acima. Esse espaço é usado para designar espaços ou ladrilhos no tabuleiro em relação ao centro do tabuleiro.
Espaço do minitabuleiro
O minitabuleiro mostra aos jogadores uma visualização do seu próprio tabuleiro. Marcadores de acerto indicam que um ladrilho do tabuleiro foi atacado e o inimigo destruiu um pawn com sucesso nesse ladrilho. Marcadores de erro indicam que um ladrilho do tabuleiro foi atacado e o inimigo não acertou nada. O minitabuleiro propriamente dito é uma malha estática posicionada em relação à câmera de jogabilidade para que apareça como parte da interface de usuário do jogo.
Etapas para criar
Para usar esses três espaços de coordenadas juntos para criar uma experiência de jogabilidade eficiente, você deve:
Definir uma representação de um ladrilho no espaço do tabuleiro.
Definir os limites do espaço do tabuleiro.
Definir onde o espaço do tabuleiro está localizado no espaço do mundo.
Converter entre o espaço do tabuleiro e o espaço do mundo.
Colocar um pawn no tabuleiro em uma posição específica.
Pegar um pawn do tabuleiro.
Remover um pawn do tabuleiro.
Colocar aleatoriamente todos os pawns no tabuleiro.
Definir uma representação de um ladrilho no espaço do minitabuleiro.
Definir os limites do espaço do minitabuleiro.
Definir onde o espaço do minitabuleiro está localizado no espaço do mundo.
Coloque um marcador no minitabuleiro.
Converter entre o espaço do minitabuleiro, o espaço do tabuleiro e o espaço do mundo.
Definir os movimentos do jogo.
Construir o loop do jogo.
Determinar quando uma condição de vitória é atendida.