Ahora que el tablero está construido, colocarás peones en el tablero, comprobarás si existe un peón en una coordenada de casilla concreta y eliminarás un peón del tablero.
Empieza con la siguiente situación. Dada una tile_coordinate, determina si hay un peón allí y, si lo hay, recupéralo. La idea es la siguiente:
El tablero tiene una matriz de peones
creative_prop.Itera a través de los peones existentes y obtén la ubicación de cada peón como una coordenada de casilla.
Si hay un peón en la coordenada de casilla dada, recupéralo.
Si no lo hay, la función falla.
Cómo determinar la igualdad de coordenadas de casillas
Esto requiere que tengas la capacidad de probar si dos tile_coordinate son iguales. Esto es necesario porque nuestro tipo de datos de coordenadas de casilla personalizado no es un subtipo del tipo comparable integrado en Verse. Como resultado, tienes que definir manualmente lo que significa que dos coordenadas de casilla sean iguales. Primero, crea una función AreTileCoordinatesEqual en el módulo DataTypespara determinar esto:
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Esta función tiene éxito si y solo si cada componente de las dos coordenadas de casilla de entrada son iguales como números enteros.
Cómo obtener coordenadas de casilla de elemento
Para trabajar con los peones es necesario obtener la ubicación de un peón como coordenada de casilla. Para ello, escribe también una función auxiliar que obtenga la ubicación de un elemento del modo Creativo como coordenada de casilla:
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):
Esta función tiene éxito si y solo si la ubicación del mundo del elemento del modo Creativo de entrada se puede convertir en una coordenada de casilla en el tablero de juego. También utiliza la función ToTileCoordinate definida previamente para convertir una ubicación del mundo en una ubicación de espacio de tablero.
Cómo obtener un peón a partir de las coordenadas de casilla
Escribe la función 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):
Esta función realiza los siguientes pasos:
Itera a través de todos los peones existentes en el tablero.
Obtiene la ubicación del peón como una coordenada de casilla.
Si la ubicación del peón es la misma que la ubicación de entrada, lo almacena como un peón encontrado.
Garantiza que solo se haya encontrado un peón en esa ubicación.
Devuelve ese peón.
Esta función tiene éxito si y solo si hay exactamente un peón en la coordenada de casilla de entrada y ese peón se recupera correctamente de la matriz de peones (Pawns).
Cómo establecer un peón en la coordenada de casilla
Escribe una función para colocar un solo peón en el tablero. Para simplificar, utiliza objetos creative_prop como peones y utiliza un SM_Box_asset como malla de peón. Siempre puedes cambiarlos más adelante por los objetos personalizados que prefieras. La idea es:
El tablero tiene una matriz de peones
creative_prop.Dada una
tile_coordinate, comprueba si ya hay un peón allí.Si no hay ningún peón, coloca uno allí.
Escribe la función 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):
Esta función realiza los siguientes pasos:
Garantiza que la coordenada de casilla de entrada se encuentra en el tablero.
Encuentra todos los peones que se encuentran actualmente en la coordenada de casilla de entrada.
Garantiza que no haya peones allí.
Intenta generar un elemento en la ubicación de entrada.
Esta función solo tiene éxito si se cumplen estos requisitos:
No hay ningún peón actualmente en la coordenada de casilla de entrada.
La coordenada de casilla de entrada se encuentra en el tablero y se puede convertir en una ubicación del mundo.
Cómo eliminar un peón
La última función necesaria es la de poder eliminar un peón del tablero. Esta función toma los elementos del modo Creativo que se van a eliminar y, a continuación, los elimina del tablero y de la matriz de contabilidad de peones (Pawns).
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):
Resumen
En resumen, esta página te ha guiado por los siguientes pasos:
Colocar un peón en el tablero.
Obtener un peón del tablero.
Quitar un peón del tablero.
.udatasmith
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):