Maintenant que le plateau est construit, vous allez placer des pions dessus, vérifier si un pion existe à une coordonnée de carré particulière, puis retirer un pion du plateau.
Commencez par le scénario suivant. Avec une tile_coordinate, déterminez si un pion est présent et, si c'est le cas, récupérez-le. L'idée est la suivante :
Le plateau contient une matrice de pions
creative_prop.Parcourez les pions existants et obtenez chaque emplacement de pion en tant que coordonnée de carré.
Si un pion se trouve à la coordonnée de carré donnée, récupérez-le.
S'il n'existe aucun pion, la fonction échoue.
Déterminer l'égalité des coordonnées de carré
Pour cela, vous devez être en mesure de déterminer si deux tile_coordinate sont égales. En effet, notre type de données de coordonnées de carré personnalisées n'est pas un sous-type du type comparable intégré à Verse. Par conséquent, vous devez définir manuellement ce que signifie le fait d'obtenir deux coordonnées de carré de valeurs égales. Commencez par créer une fonction AreTileCoordinatesEqual dans le module DataTypes pour déterminer ceci :
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Cette fonction réussit si et seulement si chaque composante des deux coordonnées de carré d'entrée est égale, en tant qu'entier.
Obtenir les coordonnées de carré de l'accessoire
Pour travailler avec les pions, vous devez obtenir l'emplacement du pion sous la forme d'une coordonnée de carré. À cette fin, écrivez également une fonction d'aide pour obtenir l'emplacement d'un accessoire du mode Créatif en tant que coordonnée de carré :
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):
Cette fonction réussit si et seulement si l'emplacement dans le monde de l'accessoire du mode Créatif d'entrée peut être converti en une coordonnée de carré sur le plateau de jeu. Elle utilise également la fonction ToTileCoordinate précédemment définie pour convertir un emplacement du monde en emplacement d'espace du plateau.
Obtenir un pion à partir de la coordonnée de carré
Écrivez la fonction 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):
Cette fonction exécute les tâches suivantes :
Elle itère sur tous les pions existants sur le plateau.
Elle permet d'obtenir l'emplacement du pion sous la forme d'une coordonnée de carré.
Si l'emplacement du pion est le même que celui de l'entrée, elle l'enregistre en tant que pion trouvé.
Elle permet de s'assurer qu'un seul pion a été trouvé à cet emplacement.
Elle renvoie ce pion.
Cette fonction réussit si et seulement si il y a exactement un pion à la coordonnée de carré d'entrée et que ce pion est correctement récupéré auprès de la matrice de pions.
Définir le pion à la coordonnée de carré
Écrivez une fonction pour placer un pion unique sur le plateau. Pour simplifier l'opération, utilisez des objets creative_prop comme pions et une ressource SM_Box_asset comme maillage de pion. Vous pouvez toujours les convertir ultérieurement en objets personnalisés de votre choix. L'idée est la suivante :
Le plateau contient une matrice de pions
creative_prop.Étant donné une
tile_coordinate, vérifiez s'il existe déjà un pion.Si aucun pion n'existe, placez-en un à cet emplacement.
Écrivez la fonction 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):
Cette fonction exécute les tâches suivantes :
Elle vérifie que les coordonnées du carré d'entrée se trouve sur le plateau.
Elle recherche tous les pions actuellement aux coordonnées du carré d'entrée.
Elle s'assure qu'aucun pion n'est présent à cet emplacement.
Elle tente de faire apparaître un accessoire à l'emplacement d'entrée.
Cette fonction réussit si et seulement si :
Aucun pion ne se trouve actuellement aux coordonnées du carré d'entrée.
Les coordonnées du carré d'entrée se trouvent sur le plateau et peuvent être converties en emplacement dans le monde.
Retirer un pion
Une dernière fonction nécessaire est la possibilité de retirer un pion du plateau. Cette fonction prend l'accessoire du mode Créatif à retirer, puis le retire du plateau et de la matrice de pions de comptabilité.
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):
Résumé
En résumé, cette page vous a guidé à travers les étapes suivantes :
Placer un pion sur le plateau.
Obtenir un pion sur le plateau.
Retirer un pion du plateau.
.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):