Ahora que el tablero está construido, colocarás peones en el tablero, verificarás si existe un peón en una coordenada de cuadro en particular y eliminarás un peón del tablero.
Comienza 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 contiene una matriz de peones
creative_prop.Itera sobre los peones existentes y obtén la ubicación de cada peón como una coordenada de cuadro.
Si hay un peón en la coordenada de cuadro dada, recupéralo.
Si no lo hay, la función falla.
Determinación de la igualdad de coordenadas de cuadro
Esto requiere que tengas la capacidad de verificar si dos tile_coordinate son iguales. Esto es necesario porque nuestro tipo de datos de coordenadas de cuadro personalizado no es un subtipo del tipo integrado de Verse. Como resultado, es necesario definir manualmente lo que significa que dos coordenadas de cuadro sean iguales. Primero, crea una función AreTileCoordinatesEqual en el módulo DataTypespara determinar lo siguiente:
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Esta función se ejecuta correctamente si, y solo si, cada componente de las dos coordenadas de cuadro de entrada son iguales como números enteros.
Obtención de la coordenada de cuadro de la utilería
Trabajar con los peones requiere obtener la ubicación de un peón como una coordenada de cuadro. Para esto, debes escribir también una función auxiliar para obtener la ubicación de una utilería del modo Creativo como una coordenada de cuadro:
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 se ejecuta correctamente si, y solo si, la ubicación del entorno de la utilería del modo Creativo de entrada se puede convertir a una coordenada de cuadro en el tablero de juego. También utiliza la función ToTileCoordinate definida anteriormente para convertir una ubicación del entorno en una ubicación de espacio de tablero.
Obtención del peón de la coordenada de cuadro
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 cuadro.
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 se ejecuta correctamente si, y solo si, hay exactamente un peón en la coordenada de cuadro de entrada y ese peón se recupera con éxito de la matriz de peones.
Definición del peón en la coordenada de cuadro
Escribe una función para colocar un solo peón en el tablero. Para simplificar, usa objetos creative_prop como peones y un SM_Box_asset como malla de peones. Siempre puedes cambiar estos más adelante por objetos personalizados de tu elección. La idea es la siguiente:
El tablero contiene una matriz de peones
creative_prop.Dada una
tile_coordinate, verifica si ya hay un peón allí.Si no existe 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 del cuadro de entrada esté en el tablero.
Encuentra todos los peones que se encuentran actualmente en la coordenada del cuadro de entrada.
Garantiza que no se encuentren peones allí.
Intenta generar una utilería en la ubicación de entrada.
Esta función se ejecuta correctamente si, y solo si, se dan las siguientes condiciones:
No hay peones actualmente en la coordenada del cuadro de entrada.
La coordenada del cuadro de entrada está en el tablero y se puede convertir en una ubicación del entorno.
Eliminación de un peón
Una última función necesaria es la capacidad de eliminar un peón del tablero. Esta función toma la utilería del modo Creativo para eliminarla y, luego, la elimina del tablero y de la matriz de contabilidad de Peones.
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 llevó a través de los siguientes pasos:
Colocar un peón en el tablero.
Obtener un peón del tablero.
Eliminar un peón del tablero.
Archivos
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):