Teraz, gdy już masz skonstruowaną planszę, umieścisz na niej pionki, sprawdzisz, czy pionek istnieje na polu o określonych współrzędnych, i usuniesz pionka z planszy.
Zacznij od następującego scenariusza. Na podstawie podanej wartości tile_coordinate pola określ, czy pionek znajduje się na tym polu. Jeśli tak, uzyskaj go. Plan wygląda następująco:
Plansza przechowuje tablicę pionków
creative_prop.Przechodź iteracyjnie między istniejącymi pionkami i uzyskuj lokalizację każdego z nich jako współrzędne pola.
Jeśli na polu o podanych współrzędnych znajduje się pionek, uzyskaj go.
W przeciwnym razie działanie funkcji kończy się niepowodzeniem.
Określanie równości współrzędnych pól
Ta czynność wymaga umiejętności sprawdzenia, czy dwie wartości tile_coordinate są równe. Jest to konieczne, ponieważ niestandardowy typ danych współrzędnych pola nie jest podtypem wbudowanego podobnego typu z Verse. W efekcie musisz ręcznie zdefiniować, co oznacza fakt, że współrzędne dwóch pól są równe. Najpierw utwórz funkcję AreTileCoordinatesEqual w module DataTypes, aby określić następujące kwestie:
using { /Verse.org/Simulation }
DataTypes<public> := module:
...
UtilityFunctions<public> := module:
...
Działanie tej funkcji kończy się powodzeniem tylko wtedy, gdy każdy komponent współrzędnych jednego pola wejściowego jest równy odpowiedniemu komponentowi współrzędnych drugiego pola wejściowego (jako liczba całkowita).
Uzyskiwanie współrzędnych pola rekwizytu
Praca z pionkami wymaga uzyskiwania ich lokalizacji jako współrzędnych pola. W tym celu także napisz funkcję pomocniczą, która będzie uzyskiwać lokalizację rekwizytu trybu kreatywnego jako współrzędne pola:
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):
Działanie tej funkcji kończy się powodzeniem tylko wtedy, gdy lokalizację w świecie wejściowego rekwizytu trybu kreatywnego można przekonwertować na współrzędne pola na planszy. Jest również wykorzystywana zdefiniowana wcześniej funkcja ToTileCoordinate, która służy do konwertowania lokalizacji w świecie na lokalizację w przestrzeni planszy.
Uzyskiwanie pionka ze współrzędnych pola
Napisz funkcję 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):
Ta funkcja wykonuje następujące czynności:
Przechodzi iteracyjnie między wszystkimi pionkami istniejącymi na planszy.
Uzyskuje lokalizację pionka jako współrzędne pola.
Jeśli lokalizacja pionka jest taka sama jak lokalizacja wejściowa, zapisuje ją jako znalezionego pionka.
Dzięki temu uzyskuje się pewność, że w danej lokalizacji został znaleziony tylko jeden pionek.
Zwraca tego jednego pionka.
Działanie tej funkcji kończy się powodzeniem tylko wtedy, gdy podane współrzędne pola wejściowego ma dokładnie jeden pionek i gdy zostanie on pomyślnie pobrany z tablicy pionków.
Ustawianie pionka na polu o podanych współrzędnych
Napisz funkcję do umieszczania pojedynczego pionka na planszy. Aby nie komplikować sprawy, użyj obiektów creative_prop jako pionków i zasobu SM_Box_asset jako siatki pionka. Zawsze możesz je później zamienić na wybrane obiekty niestandardowe. Plan wygląda następująco:
Plansza przechowuje tablicę pionków
creative_prop.Na podstawie podanej wartości
tile_coordinatesprawdź, czy na tym polu znajduje się pionek.Jeśli na tym polu nie ma pionka, umieść go tam.
Napisz funkcję 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):
Ta funkcja wykonuje następujące czynności:
Sprawdza, czy współrzędne pola wejściowego znajdują się na planszy.
Znajduje wszystkie pionki umieszczone na polu wejściowym o podanych współrzędnych.
Sprawdza, czy nie ma tam żadnych pionków.
Próbuje spawnować rekwizyt w lokalizacji wejściowej.
Działanie tej funkcji kończy się powodzeniem tylko wtedy, gdy:
Obecnie na polu wejściowym o podanych współrzędnych nie ma żadnego pionka.
Współrzędne pola wejściowego znajdują się na planszy i można je przekonwertować na lokalizację w świecie.
Usuwanie pionka
Ostatnią potrzebną funkcją jest funkcja do usuwania pionka z planszy. Ta funkcja przyjmuje rekwizyt trybu kreatywnego do usunięcia, a następnie usuwa go z planszy i tablicy ewidencyjnej 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):
Podsumowanie
Podsumowując, na tej stronie zaprezentowano następujące kroki:
Umieść pionka na planszy.
Uzyskaj pionka z planszy.
Usuń pionka z planszy.
Pliki
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):