Les plateformes qui apparaissent et disparaissent périodiquement sont un élément essentiel des jeux de plateformes, comme les courses d'obstacles. Elles demandent aux joueurs d'ajuster leurs sauts pour atteindre la plateforme suivante. S'ils échouent, ils tombent et doivent recommencer leur parcours.
En suivant ce tutoriel, vous apprendrez à utiliser Verse dans l'Unreal Editor pour Fortnite (UEFN) afin de créer une plateforme qui apparaît et disparaît en boucle. Le script complet est inclus à la fin de ce tutoriel pour référence.

Fonctionnalités du langage Verse utilisées
loop: La plateforme est alternativement visible et invisible jusqu'à la fin du jeu. Cet exemple utilise l'expression Verselooppour exécuter ce comportement de façon continue.
API Verse utilisées
-
Sleep(): Avec la fonctionSleep(), vous pouvez choisir combien de temps la plateforme restera invisible et visible. -
Propriétés modifiables : deux propriétés d'appareil sont exposées à l'UEFN pour que vous puissiez les personnaliser dans l'éditeur : une référence
creative_proppour la plateforme et unToggleDelaypour l'appel de fonctionSleep().
Configuration du niveau
Le point de départ du présent tutoriel est le modèle de démarrage Verse. Pour commencer, initialisez un nouveau projet à partir de l'exemple de fonctionnalités Appareil Verse.
Dans cet exemple, nous utiliserons les accessoires et appareils suivants :
-
1 plaque d'apparition de joueur : cet appareil définit l'emplacement d'apparition du joueur au début du jeu.
-
3 x accessoires du mode Créatif : Verse vous permet d'appeler plusieurs comportements des accessoires du mode Créatif, comme
Hide()etShow(), pour basculer la visibilité de la plateforme et la collision. Ce tutoriel utilise l'Airborne Hoverplatform A comme plateforme avec laquelle le joueur interagit, mais vous pouvez en changer selon vos besoins.
Procédez comme suit pour configurer votre niveau :
-
Faites glisser une Airborne Hoverplatform A dans votre scène. Placez-la au-dessus du sol pour que le joueur tombe s'il ne saute pas à temps de la plateforme qui disparaît. Dans l'organiseur, nommez la plateforme LoopingDisappearingPlatform.
-
Copiez la plateforme deux fois, et placez les copies sur les côtés opposés de la première plateforme pour permettre au joueur d'ajuster son saut. Le joueur doit avoir juste assez de temps pour atteindre l'autre côté.
-
Déplacez le point d'apparition de joueur sur l'une des plateformes. C'est là que le joueur va apparaître au début de la partie. Votre configuration de niveau doit ressembler à ceci :
Créer l'appareil Verse
Cet exemple utilise un appareil créé avec Verse pour définir le comportement activant la visibilité de la plateforme. Procédez comme suit pour créer votre appareil Verse et le placer dans le niveau.
-
Créez un nouvel appareil Verse nommé looping_disappearing_platform en utilisant l'explorateur Verse. Consultez la rubrique Créer votre propre appareil avec Verse pour connaître la procédure détaillée.
-
Faites glisser l'appareil looping_disappearing_platform du navigateur de contenu jusqu'au niveau. Consultez la rubrique Créer votre propre appareil avec Verse pour connaître la procédure détaillée.
Modifier les propriétés de l'appareil dans l'UEFN
Cette section montre comment exposer deux propriétés d'appareil à l'UEFN afin de les personnaliser dans l'éditeur :
-
Une référence
creative_propà l'accessoire du mode Créatif que vous avez placé dans le niveau. -
Une constante
floatnomméeToggleDelay, pour stocker la durée pendant laquelle la plateforme doit être invisible/visible.
Procédez comme suit pour exposer ces propriétés à l'éditeur à partir de l'appareil looping_disappearing_platform que vous avez créé dans la section précédente.
-
Ouvrez l'explorateur Verse et double-cliquez sur looping_disappearing_platform.verse pour ouvrir le script dans Visual Studio Code.
-
À la définition de la classe
looping_disappearing_platform, ajoutez les champs suivants :-
Un
floatmodifiable nomméToggleDelay. Il représente le temps de bascule entre la visibilité et 'invisibilité de la plateforme. Initialisez cette valeur à2.0ou deux secondes.# Le temps d'attente avant l'activation de visibilité de la plateforme. @editable ToggleDelay : float = 2.0
Un
creative_propmodifiable nomméDisappearingPlatform. Il s'agit de la plateforme au sein du niveau qui disparaîtra et apparaîtra à intervalles réguliers. Vous allez l'instancier avec un archétypecreative_prop{}vide dans la mesure où votre code n'a pas encore de référence à cet objet dans le niveau. Vous assignerez ultérieurement cette référence à votre plateforme flottante.# Référence à la plateforme dans le niveau. @editable DisappearingPlatform:creative_prop = creative_prop{} -
-
Les champs de votre classe
looping_disappearing_platformdoivent maintenant ressembler à ceci :using { /Fortnite.com/Devices } using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/Diagnostics } # Consulter https://dev.epicgames.com/documentation/fr/uefn/create-your-own-device-in-verse pour apprendre à créer un appareil Verse. # Un appareil du mode Créatif conçu par Verse qui peut être placé dans un niveau looping_disappearing_platform := class(creative_device): # Le temps d'attente avant l'activation de visibilité de la plateforme. @editable ToggleDelay : float = 2.0 # Référence à la plateforme dans le niveau. @editable DisappearingPlatform:creative_prop = creative_prop{}L'attribut
@editableest utile pour exposer des valeurs commeToggleDelayà l'éditeur à partir de vos scripts. Il vous permet de personnaliser leurs valeurs dans l'UEFN sans avoir à recréer le code Verse chaque fois. Vous pouvez donc itérer rapidement et trouver les valeurs qui correspondent à votre expérience de jeu. -
Enregistrez le script dans Visual Studio Code et compilez-le pour mettre à jour l'appareil looping_disappearing_platform dans le niveau.
-
Dans le panneau Organiseur de l'UEFN, sélectionnez l'appareil looping_disappearing_platform pour ouvrir son panneau Détails.
-
Dans le panneau Détails, sous Looping Disappearing Platform :
-
Définissez DisappearingPlatform sur LoopingDisappearingPlatform (l'accessoire du mode Créatif que vous avez ajouté au niveau) en cliquant sur le sélecteur d'objet et en sélectionnant l'accessoire du mode Créatif dans le hublot ou en cherchant la LoopingDisappearingPlatform dans la barre de recherche.

-
Réglez ToggleDelay sur le nombre de secondes pendant lesquelles vous souhaitez que la plateforme soit visible/invisible. Cette valeur est de 2,0 par défaut, puisqu'il s'agit de la valeur que vous avez définie précédemment.
-
Afficher et masquer la plateforme
Maintenant que vous avez configuré le niveau et les appareils, vous pouvez ajouter la logique permettant d'afficher et de masquer la plateforme. Procédez comme suit pour ajouter ce comportement à l'appareil looping_disappearing_platform :
-
La classe
creative_propdispose de deux méthodes pour activer sa visibilité :Show()etHide(). De retour dans Visual Studio Code, àOnBegin(), appelezHide()puisShow()sur votreDisappearingPlatform.# S'exécute à l'activation de l'appareil dans une partie en cours. OnBegin<override>()<suspends>:void= # Rendez la plateforme invisible. DisappearingPlatform.Hide() # Rendez la plateforme visible. DisappearingPlatform.Show()Si vous exécutez ce code, la plateforme ne disparaît pas et ne réapparaît pas, car les appels à
Hide()etShow()se produisent immédiatement l'un après l'autre. -
Pour que la plateforme reste dans un état visible/invisible plus longtemps, vous devez ajouter un délai entre chaque appel à
Hide()etShow()en utilisantSleep(). La fonctionSleep()suspend l'exécution d'une routine, et vous spécifiez la durée (en secondes) de la suspension de l'exécution en transmettant un argumentfloatà la fonction. AppelezSleep()avant chaque appel àHide()etShow(), en transmettant leToggleDelaydéfini précédemment.# S'exécute à l'activation de l'appareil dans une partie en cours. OnBegin<override>()<suspends>:void= # Attendez le nombre de secondes indiqué par ToggleDelay. Sleep(ToggleDelay) # Rendez la plateforme invisible. DisappearingPlatform.Hide() # Attendez le nombre de secondes indiqué par ToggleDelay. Sleep(ToggleDelay) # Rendez la plateforme visible. DisappearingPlatform.Show()Si vous exécutez ce code, la plateforme sera invisible pendant deux secondes (la durée définie par
ToggleDelay) avant de devenir visible le reste du jeu.La fonction
Sleep()ne peut être appelée que dans un contexte asynchrone. La méthodeOnBegin()est déjà un contexte asynchrone puisqu'elle dispose du spécificateursuspends. Aucune autre action n'est donc nécessaire de votre part. Pour en savoir plus sur le spécificateursuspends, consultez la page Spécificateurs et attributs. -
Pour que la plateforme alterne entre visible et invisible tant que le jeu est en cours, vous pouvez utiliser l'expression
loop. Utiliserloopà répétition exécute le code de l'expressionloop, à moins que le code soit interrompu par unbreak. Dans cet exemple, vous voulez faire basculer la visibilité de la plateforme tant que le jeu est en cours, il n'est donc pas nécessaire d'ajouter une expressionbreakpour sortir de laloop. Ajoutez une expressionloopau début d'OnBegin()et placez le reste de votre code en retrait afin de le placer à l'intérieur de la boucle. Votre méthodeOnBegin()devrait ressembler à ceci :# S'exécute à l'activation de l'appareil dans une partie en cours. OnBegin<override>()<suspends>:void= loop: # Attendez le nombre de secondes indiqué par ToggleDelay. Sleep(ToggleDelay) # Rendez la plateforme invisible. DisappearingPlatform.Hide() # Attendez le nombre de secondes indiqué par ToggleDelay. Sleep(ToggleDelay) # Rendez la plateforme visible. DisappearingPlatform.Show() -
Enregistrez le script et cliquez sur Verse, puis sur Générer le code Verse pour compiler le code.
-
Cliquez sur Lancer la session dans la barre d'outils de l'UEFN pour tester le niveau.
Lorsque vous testez votre niveau, votre plateforme doit apparaître et disparaître toutes les deux secondes tant que le jeu est en cours.

Script complet
Le code suivant est le script complet pour faire disparaître et apparaître périodiquement en boucle.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Consulter https://dev.epicgames.com/documentation/fr/uefn/create-your-own-device-in-verse pour apprendre à créer un appareil Verse.
# Un appareil du mode Créatif conçu par Verse qui peut être placé dans un niveau
looping_disappearing_platform := class(creative_device):
# Le temps d'attente avant l'activation de visibilité de la plateforme.
@editable
ToggleDelay : float = 2.0
# Référence à la plateforme dans le niveau.
@editable
DisappearingPlatform:creative_prop = creative_prop{}
# S'exécute à l'activation de l'appareil dans une partie en cours.
OnBegin<override>()<suspends>:void=
loop:
# Attendez le nombre de secondes indiqué par ToggleDelay.
Sleep(ToggleDelay)
# Rendez la plateforme invisible.
DisappearingPlatform.Hide()
# Attendez le nombre de secondes indiqué par ToggleDelay.
Sleep(ToggleDelay)
# Rendez la plateforme visible.
DisappearingPlatform.Show()
À vous de jouer
À l'issue de ce tutoriel, vous avez appris à créer un appareil utilisant Verse qui permet de faire basculer la visibilité d'une plateforme pendant toute la durée d'une partie.
En vous servant de ce que vous venez d'apprendre, essayez d'effectuer les tâches suivantes :
-
Dupliquez la configuration, avec l'appareil et l'accessoire looping_disappearing_platform et essayez différents timings
ToggleDelaypour créer une plus longue série de plateformes. -
Appliquez les mêmes concepts pour appeler périodiquement des fonctions sur d'autres objets, tels que le déplaceur d'accessoire.