Agora que o tabuleiro está construído, você colocará pawns nele, verificará se existe um pawn em uma coordenada específica de ladrilho e removerá um pawn do tabuleiro.
Comece com o seguinte cenário. Dado um tile_coordinate, determine se há um pawn lá e, se houver, recupere-o. A ideia é a seguinte:
O tabuleiro contém uma matriz de pawns
creative_prop.Percorra os pawns existentes e obtenha a posição de cada pawn como coordenadas de ladrilhos.
Se houver um pawn na coordenada de ladrilho fornecida, recupere-o.
Se não houver, a função falhará.
Determinar a igualdade das coordenadas de ladrilhos
É necessário que você tenha a capacidade de testar se duas tile_coordinates são iguais. Isso ocorre porque nosso tipo de dados de coordenadas de ladrilhos personalizados não é um subtipo do tipo comparável integrado do Verse. Como resultado, você precisa definir manualmente o que significa duas coordenadas de ladrilhos serem iguais. Primeiro, crie uma função AreTileCoordinatesEqual no módulo DataTypes para determinar o seguinte:
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Essa função tem sucesso se, e somente se, cada componente das duas coordenadas de entrada dos ladrilhos for igual como números inteiros.
Obter coordenada de ladrilho do adereço
Trabalhar com pawns requer obter a posição de um pawn como uma coordenada de ladrilho. Para essa finalidade, escreva também uma função auxiliar para obter a posição de um adereço do Modo Criativo como uma coordenada de ladrilho:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
Essa função terá sucesso se, e somente se, a posição no mundo do adereço do Modo Criativo de entrada puder ser convertida em coordenadas de um ladrilho no tabuleiro do jogo. Ele também usa a função ToTileCoordinate definida anteriormente para converter uma posição de mundo em uma posição no espaço do tabuleiro.
Obter pawn da coordenada de ladrilho
Escreva a função Getpawn:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
Essa função executa as seguintes etapas:
Percorre todos os pawns existentes no tabuleiro.
Obtém a posição do pawn como uma coordenada de ladrilho.
Se a posição do pawn for a mesma que a posição de entrada, ele é armazenado como um pawn encontrado.
Isso garante que apenas um único pawn tenha sido encontrado naquela posição.
Esse pawn é retornado.
Essa função tem sucesso se, e somente se, houver exatamente um pawn na coordenada de entrada de ladrilhos e esse pawn for recuperado com sucesso da matriz pawns.
Definir pawn na coordenada de ladrilho
Escreva uma função para colocar um único pawn no tabuleiro. Para simplificar, use objetos creative_prop como os pawns e use um SM_Box_asset como a malha do pawn. Sempre é possível alterá-los posteriormente para objetos personalizados de sua escolha. A ideia é:
O tabuleiro contém uma matriz de pawns
creative_prop.Dado uma
tile_coordinate, verifique se já há um pawn lá.Se não existir nenhum pawn, coloque um lá.
Escreva a função SetPawn:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
Essa função executa as seguintes etapas:
Garante que a coordenada de entrada do ladrilho esteja no tabuleiro.
Encontra todos os pawns atualmente na coordenada de ladrilho de entrada.
Garante que não sejam encontrados pawns lá.
Tenta gerar um adereço na posição de entrada.
Essa função tem sucesso se, e somente se:
Não houver pawns atualmente nas coordenadas do ladrilho de entrada.
A coordenada do ladrilho de entrada estiver no tabuleiro e puder ser convertida em uma posição do mundo.
Remover um pawn
Uma última função necessária é a capacidade de remover um pawn do tabuleiro. Essa função usa o adereço do Modo Criativo para remover e, em seguida, remove-o do tabuleiro e da matriz de pawns de contagem.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
Resumo
Em suma, esta página guia você pelas seguintes etapas:
Colocar um pawn no tabuleiro.
Pegar um pawn do tabuleiro.
Remover um pawn do tabuleiro.
Arquivos
using { /Verse.org/Simulation }
DataTypes<public> := module:
tile_coordinate<public> := class<concrete>:
@editable
Left<public>:int = 0
@editable
Forward<public>:int = 0
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):