Ora che il tabellone è costruito, potrai posizionarvi le pedine, controllare se esiste una pedina in una particolare coordinata tile e rimuovere una pedina dal tabellone.
Inizia con lo scenario seguente. Data una tile_coordinate, determina se è presente una pedina al suo interno e, in caso positivo, recuperala. Procedi come segue:
Il tabellone contiene un array di pedine
creative_prop.Itera attraverso le pedine esistenti e ottieni la posizione di ciascuna pedina come coordinata tile.
Se è presente una pedina sulla coordinata tile indicata, recuperala.
In caso contrario, la funzione non riesce.
Determinare l'uguaglianza della coordinata tile
Questa operazione richiede di verificare se due tile_coordinate sono uguali. È necessario perché il tipo di dati della coordinata tile personalizzati non è un sottotipo del tipo confrontabile integrato di Verse. Di conseguenza bisogna definire manualmente cosa significa uguaglianza per due coordinate tile. Innanzitutto, crea una funzione AreTileCoordinatesEqual nel modulo DataTypes per determinare quanto segue:
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Questa funzione ha esito positivo se e solo se ogni componente delle due coordinate tile di input è uguale agli interi.
Ottenere una coordinata tile dell'oggetto scenografico
Lavorare con le pedine richiede di ottenere la posizione di una pedina come coordinata tile. A tal fine, scrivi anche una funzione di supporto per ottenere la posizione di un oggetto scenografico creativo come coordinata tile:
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):
Questa funzione ha esito positivo se e solo se la posizione nel mondo dell'oggetto scenografico creativo di input può essere convertita in coordinata tile sul tabellone di gioco. Utilizza anche la funzione ToTileCoordinate definita in precedenza per convertire una posizione del mondo in una posizione dello spazio tabellone.
Ottenere una pedina da una coordinata tile
Scrivi la funzione 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):
Questa funzione esegue i passaggi seguenti:
Itera tutte le pedine esistenti sul tabellone.
Ottiene la posizione della pedina come coordinata tile.
Se la posizione della pedina è la stessa della posizione di input, la memorizza come pedina trovata.
Assicura che sia stata trovata una sola pedina in quella posizione.
Restituisce quella Pedina.
La funzione ha esito positivo se e solo se è presente esattamente una pedina sulla coordinata tile di input e se quella pedina viene recuperata correttamente dall'array Pedine.
Impostare una pedina in corrispondenza della coordinata tile
Scrivi una funzione per posizionare una singola pedina sul tabellone. Per semplificare, utilizza gli oggetti creative_prop come pedine e un SM_Box_asset come mesh della pedina. Puoi sempre modificarli in seguito con oggetti personalizzati a tua scelta. Procedi come segue:
Il tabellone contiene un array di pedine
creative_prop.Data una
tile_coordinate, controlla se vi è già presente una pedina.Se non esiste alcuna pedina, posizionane una.
Scrivi la funzione 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):
Questa funzione esegue i passaggi seguenti:
Assicura che le coordinate tile di input siano sul tabellone.
Trova tutte le pedine sulle coordinata tile di input.
Assicura che non vengano trovate pedine.
Tenta di generare un oggetto scenografico nella posizione di input.
Questa funzione ha esito positivo se e solo se:
Non ci sono pedine sulla coordinata tile di input.
La coordinata tile di input si trova sul tabellone e può essere convertita in una posizione del mondo.
Rimuovere una pedina
Un'ultima funzione necessaria è la capacità di rimuovere una pedina dal tabellone. Questa funzione prende l'oggetto scenografico creativo e lo rimuove dal tabellone e dall'array Pedine di contabilità.
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):
Riepilogo
Per riassumere, questa pagina ti ha guidato attraverso i seguenti passaggi:
Posiziona una pedina sul tabellone.
Ottieni una pedina dal tabellone.
Rimuovi una pedina dal tabellone.
File
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):