Nello step precedente, abbiamo creato un PNG che può andare avanti, ruotare a sinistra e ruotare a destra quando riceve comandi. Ora, in questo step, imposteremo i tabelloni di gioco su cui il personaggio può muoversi.
Per questo gioco, il tabellone di gioco deve conoscere e gestire quanto segue:
Dimensione tile: quanto sono grandi i tile sul tabellone in modo che il personaggio sappia fino a che punto muoversi.
Telecamera: telecamera da utilizzare quando il personaggio raggiunge questo tabellone di gioco. A tale scopo, utilizziamo il dispositivo Telecamera a punto fisso.
Posizione iniziale: posizione in cui il personaggio deve iniziare sul tabellone. A tale scopo, utilizziamo un Oggetto scenografico Fortnite Creativo in modo da poterlo facilmente impostare come proprietà modificabile e ottenere la sua trasformazione.
Obiettivo finale: obiettivo finale verso cui il personaggio progredisce che segna la fine del tabellone. A tale scopo, utilizziamo un dispositivo Attivatore che segnala quando il personaggio lo calpesta.
Ostacoli: gli ostacoli impediscono al personaggio di raggiungere immediatamente l'obiettivo finale. Questi sono spiegati più dettagliatamente in Creazione di ostacoli.
Ognuno di questi viene tracciato nella class del tabellone. La classe ha lo specificatore concreto in modo che possa essere una proprietà modificabile in un dispositivo Verse e ogni membro della classe ha un attributo modificabile per modificare i propri valori da UEFN.
# This class represents the gameboard and how it behaves.
# This class has the concrete specifier so it can be an editable property on a Verse device.
gameboard<public> := class<concrete>:
# The size of each tile on the gameboard. By default set to
# the default Fortnite tile size of 512x512x384.
@editable
TileSize<public>:vector3 = vector3{X:=512.0, Y:=512.0, Z:=384.0}
# The fixed point camera that provides a top-down view of the gameboard
Ora che il tabellone di gioco è definito con le sue proprietà, aggiungiamo il suo comportamento:
Gestione dell'obiettivo finale: una volta impostato il tabellone, sottoscriviamo il
TriggeredEventdell'obiettivo finale. Utilizziamo un gestore di eventi e un evento personalizzato per segnalare pubblicamente che l'obiettivo finale è stato raggiunto quando il dispositivo trigger viene attivato dal personaggio. Per maggiori dettagli, vedi Interazioni dispositivo di programmazione.Tabellone di gioco iniziale: quando è l'inizio del tabellone, assegna il dispositivo telecamera a tutti i giocatori.
Tabellone di gioco finale: quando è la fine del tabellone, rimuovi il dispositivo telecamera da tutti i giocatori.
Quella che segue è la classe completa per gameboard:
# This class represents the gameboard and how it behaves.
# This class has the concrete specifier so it can be an editable property on a Verse device.
gameboard<public> := class<concrete>:
# The size of each tile on the gameboard. By default set to
# the default Fortnite tile size of 512x512x384.
@editable
TileSize<public>:vector3 = vector3{X:=512.0, Y:=512.0, Z:=384.0}
# The fixed point camera that provides a top-down view of the gameboard
Creazione di ostacoli
Gli ostacoli impediscono al personaggio di raggiungere immediatamente l'obiettivo finale. In questo gioco utilizziamo i dispositivi Barriera come ostacoli per impedire al personaggio di muoversi e bloccare i dispositivi trigger che disattivano le barriere.
La nostra definizione della classe obstacle include:
IsObstaclePassed: dati per la memorizzazione se le barriere sono attualmente attivate o disattivate. Tipo di logica perché ci sono solo due stati.
Barriere: dispositivi Barriera associati all'ostacolo. Ciò significa che è possibile avere più di un dispositivo barriera collegato a un trigger che li disattiva.
BarrierDissolves: sequenze cinematiche da riprodurre quando vengono superati gli ostacoli.
BarrierAppears: sequenze cinematiche da riprodurre quando gli ostacoli vengono reimpostati.
Attivatore: dispositivo Attivatore per il personaggio da raggiungere per disattivare l'ostacolo.
Di seguito è riportata la classe completa per la rappresentazione degli ostacoli e la classe dispone dello specificatore concreto in modo che possa essere una proprietà modificabile in un dispositivo Verse.
# An obstacle on the gameboard, with an associated set of
# Barrier devices, Trigger devices that deactivate the barriers,
# and Cinematic Sequence devices that play sequences for barriers dissolving and appearing for visual feedback on what is happening.
# This class has the concrete specifier so it can be an editable property on a Verse device.
obstacle := class<concrete>:
# Data for storing whether barriers are currently enabled/disabled.
var IsObstaclePassed:logic = false
# The array of barriers for this obstacle.
Aggiunta di tabelloni di gioco
Ora che il tabellone di gioco è definito, puoi aggiungere un array di questi tabelloni di gioco al tuo dispositivo Verse che vedrai più avanti in 6. Gestione del loop di gioco.
Nel progetto creato dal modello VKT - Verse Device Starter Games, cerca nell'Outliner il dispositivo Minigioco Verse Commander e selezionalo per aprire il relativo pannello Dettagli.
Nel pannello Dettagli sotto Tabelloni di gioco, vedrai cinque elementi che corrispondono ai tabelloni del gioco. Espandi questi elementi per vedere quali dispositivi, cinematiche e altre proprietà vengono utilizzati per il tabellone di gioco.
Puoi aggiungere tabelloni di gioco selezionando Aggiungi elemento per Tabelloni di gioco, per aggiungere più livelli al gioco.
Puoi rimuovere i tabelloni di gioco selezionando il menu a discesa accanto al tabellone di gioco che vuoi rimuovere, per rimuovere i livelli dal gioco.
Puoi anche riordinare i tabelloni di gioco per modificare l'ordine dei livelli nel gioco tenendo premuto l'elemento e trascinandoli prima o dopo altri elementi del tabellone.
Per testare livelli specifici, puoi riordinare i tabellini in modo che il livello che vuoi testare sia il primo dell'elenco.
Step successivo
Abbiamo definito i tabelloni di gioco e mostrato come aggiungerne quanti ne vuoi. Nello step successivo, imparerai come progettare i tabelloni per sviluppare puzzle divertenti e aggirare le limitazioni.