Apprenez à afficher des boutons personnalisés dans des scènes distinctes pour agir comme de simples menus d'écran pour vos jeux.

Points clés à retenir

  • Les menus personnalisés de Godot peuvent améliorer l'engagement et l'expérience utilisateur en offrant une navigation facile et un accès rapide aux fonctionnalités du jeu.
  • Godot fournit un ensemble d'outils puissants pour créer des menus d'interface utilisateur personnalisés à l'aide de nœuds de contrôle dans le moteur de jeu.
  • Vous pouvez créer des menus tels que des menus de démarrage, des menus de pause et des écrans de jeu dans Godot en ajoutant des nœuds appropriés et en implémentant leurs fonctionnalités à l'aide de GDScript.

Les menus personnalisés peuvent grandement améliorer l'engagement et l'expérience utilisateur de votre jeu Godot. En créant des menus intuitifs et visuellement attrayants, vous pouvez offrir aux joueurs une navigation facile et un accès rapide aux diverses fonctionnalités du jeu.

Heureusement, Godot fournit un ensemble d'outils puissants pour créer des menus d'interface utilisateur personnalisés à l'aide de nœuds de contrôle.

instagram viewer

Configurer le jeu Godot

Pour commencer, créez une scène de jeu 2D dans le moteur de jeu Godot. Ajouter un KinematicBody2D nœud pour le personnage du joueur et attachez un CollisionShape2D nœud, définissez une forme de rectangle qui représente la zone de collision du joueur.

Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.

De plus, incluez un Sprite2D nœud pour afficher visuellement le personnage du joueur. Vous trouverez ci-dessous un extrait de code GDScript permettant de déplacer les joueurs :

étend KinematicBody2D

constante VITESSE = 200
const GRAVITE = 500
var vitesse = Vector2.ZERO

func _physics_process (delta):
var move_direction = 0

si Input.is_action_pressed("ui_right"):
move_direction += 1

si Input.is_action_pressed("ui_left"):
move_direction -= 1

vitesse.x = move_direction * SPEED
vitesse.y += GRAVITE * delta
vitesse = move_and_slide (vitesse, Vector2.UP)

Dans ce code, définissez une constante VITESSE pour contrôler la vitesse de déplacement du joueur. Mettre à jour la variable de vitesse en réponse à l'entrée de l'utilisateur et appeler move_and_slide() pour déplacer le joueur en tenant compte des collisions et de la gravité du jeu.

Créer un menu Démarrer

Pour créer un menu de démarrage dans Godot, ajoutez un nœud Control comme racine de la scène. Ajoutez un nœud Label en tant qu'enfant de ce nœud Control et définissez son texte sur Jeu simple. Vous pouvez personnaliser la police, la taille et la couleur de l'étiquette en fonction du style de votre jeu.

Après cela, ajoutez un nœud Button en tant qu'enfant du nœud Control. Définissez le texte du bouton sur Jouer au jeu. Écrire un code personnalisé pour le Jouer au jeu bouton pour gérer sa fonctionnalité :

étend le contrôle

func _ready() :
var playButton = $Button
playButton.connect("pressé", soi, "_on_PlayButton_pressed")

func _on_PlayButton_pressed() :
# Charger la scène du jeu
var gameScene = précharger("res://GameScene.tscn")

# Transition vers la scène du jeu
get_tree().change_scene (gameScene)

Ce code relie le pressé signal de la Bouton jouer au _on_PlayButton_pressed fonction. Cette fonction charge la scène de jeu en utilisant précharger() et en crée une instance. Il utilise ensuite change_scene() pour passer à la scène du jeu.

De même, vous pouvez ajouter un Sortie bouton que les joueurs peuvent utiliser pour quitter le jeu :

func _ready() :
var playButton = $Button
var exitButton = $Button2
playButton.connect("pressé", soi, "_on_PlayButton_pressed")
exitButton.connect("pressé", soi, "_on_ExitButton_pressed")

func _on_ExitButton_pressed() :
# Quitter le jeu
get_tree().quit()

Ce code relie le pressé signal du bouton de sortie au _on_ExitButton_pressed fonction. Cette fonction appelle arrêter() pour quitter le jeu.

Créer le menu de pause

Pour ajouter un menu de pause à votre jeu Godot, créez une nouvelle scène avec un nœud de contrôle comme racine du menu de pause. Concevoir les éléments visuels du menu, y compris une étiquette pour En pause et pour reprendre le jeu, revenir au menu principal et quitter le jeu.

Ajoutez la scène en tant que nœud enfant du jeu principal. Dans le script attaché au nœud Control, ajoutez le code suivant :

étend le contrôle

func _ready() :
$btnResume.connect("pressé", soi, "_on_resume_button_pressed")
$btnHome.connect("pressé", soi, "_on_menu_button_pressed")
$btnExit.connect("pressé", soi, "_on_exit_button_pressed")
pause_mode = nœud. PAUSE_MODE_PROCESS
get_tree().paused = faux
self.hide()

func _input (événement):
si événement.is_action_pressed("ui_cancel"):
sipas self.is_visible_in_tree() :
# Mettez le jeu en pause lorsque le menu de pause n'est pas visible
self.show()
get_tree().paused = vrai
autre:
# Réactiver le jeu lorsque le menu de pause est déjà visible
self.hide()
get_tree().paused = faux

func _on_resume_button_pressed() :
# Cachez le menu de pause et reprenez le jeu
self.hide()
get_tree().paused = faux

func _on_menu_button_pressed() :
# Revenez au menu principal
get_tree().change_scene("res://StartMenu.tscn")

func _on_exit_button_pressed() :
# Quitter le jeu
get_tree().quit()

Dans le _prêt() fonction, connectez le pressé signal des boutons de reprise, d'accueil et de sortie à leurs fonctions respectives: _on_resume_button_pressed(), _on_menu_button_pressed(), et _on_exit_button_pressed().

Met le pause_mode du nœud à Nœud. PAUSE_MODE_PROCESS. Cela permet au jeu de continuer à fonctionner pendant que le menu de pause est visible. Par défaut, masquez le menu de pause à l'aide de self.hide() Et mettre get_tree().mis en pause pour FAUX pour s'assurer que le jeu n'est pas mis en pause initialement.

Suivant, utiliser une instruction if dans le _entrée (événement) fonction pour vérifier si le ui_cancel l'action est enfoncée. Si le menu de pause n'est pas actuellement visible, vous pouvez mettre le jeu en pause en affichant le menu de pause et en réglant get_tree().mis en pause pour vrai.

Créer un écran Game Over

Pour implémenter un jeu sur écran dans Godot, créez une scène distincte appelée GameOver.tscn pour définir ses éléments et fonctionnalités d'interface utilisateur. Vous pouvez ajouter cette scène en tant que nœud enfant lorsque le joueur franchit les limites de l'écran, indiquant la fin du jeu.

Ouvrez une nouvelle scène dans Godot et ajoutez un nœud de contrôle comme racine de la scène. Dans le nœud Control, ajoutez un nœud Label pour afficher le Jeu terminé texte. Personnalisez la police, la taille et la couleur de l'étiquette en fonction du style visuel de votre jeu.

Ensuite, ajoutez des nœuds Button pour le Rejouer et Sortie options. Positionnez-les correctement sur l'écran.

Connectez les signaux des boutons à leurs fonctions respectives pour gérer les actions lorsque vous cliquez dessus. Par exemple, connectez le Rejouer bouton à une fonction appelée onPlayAgainPressed et le Sortie bouton à une fonction appelée onExitPressed.

Pour gérer la fonctionnalité des boutons, vous devez définir les fonctions correspondantes dans le code GDScript de la scène game over. Voici un exemple :

étend le contrôle

func _ready() :
$Button.connect("pressé", soi, "onPlayAgainPressed")
$Button2.connect("pressé", soi, "onExitPressed")

fonction surPlayAgainPressed() :
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)

fonction surExitPressed() :
get_tree().quit() # Fermez l'application de jeu

Une fois que vous avez configuré le GameOver.tscn scène et défini la fonctionnalité de bouton nécessaire, vous pouvez utiliser le code suivant dans la scène principale du jeu pour afficher l'écran de jeu :

étend KinematicBody2D

func _physics_process (delta):
# Vérifiez si le joueur a franchi les limites de l'écran
var screen_size = get_viewport_rect().size
si vitesse.y > screen_size.y ou vitesse.y < 0:
show_game_over_screen()

fonction show_game_over_screen() :
get_tree().change_scene("res://GameOver.tscn")

L'écran Game Over ressemblera à ceci, avec des boutons permettant au joueur de redémarrer ou de quitter :

Inclure des fonctionnalités supplémentaires

Lors de la création de menus d'interface utilisateur personnalisés dans Godot à l'aide de nœuds de contrôle, vous avez la possibilité d'ajouter diverses fonctionnalités pour améliorer la fonctionnalité et l'attrait visuel de vos menus. Voici quelques idées à considérer.

Transitions animées

Ajoutez des transitions fluides entre les différents écrans de menu, tels que des fondus, des diapositives ou des effets de mise à l'échelle. Vous pouvez y parvenir en modifiant les propriétés des nœuds de contrôle au fil du temps à l'aide d'interpolations ou de lecteurs d'animation.

Effets sonores

Implémentez des effets sonores pour fournir un retour audio lorsque le joueur appuie sur les boutons de menu. Vous pouvez jouer différents sons pour les clics de bouton, les transitions de menu ou d'autres interactions pour rendre les menus plus réactifs et attrayants.

Le système audio intégré de Godot facilite la lecture des sons aux moments appropriés.

Effets visuels

Utilisez des shaders ou des systèmes de particules pour ajouter des effets visuels à vos menus. Par exemple, vous pouvez appliquer un effet de lueur subtil aux boutons sélectionnés ou créer des effets de particules qui se déclenchent lorsque certaines actions de menu se produisent. Ces effets peuvent ajouter une sensation raffinée et immersive à votre interface utilisateur.

Musique de fond

Pensez à jouer musique de fond libre de droit spécifique à chaque écran de menu pour créer une ambiance plus immersive. Vous pouvez utiliser des flux audio ou des bus audio dans Godot pour gérer la musique de fond et assurer des transitions fluides entre les différentes pistes lorsque le lecteur navigue dans les menus.

Prise en charge de la localisation

Si vous envisagez de traduire votre jeu en plusieurs langues, envisagez d'ajouter la prise en charge de la localisation à vos menus d'interface utilisateur.

Fournir un mécanisme pour modifier dynamiquement le contenu textuel des étiquettes et des boutons en fonction de la langue sélectionnée. Les outils et ressources de localisation de Godot peuvent aider à gérer les éléments multilingues de l'interface utilisateur.

N'oubliez pas de tester et de parcourir vos menus avec de vrais utilisateurs pour vous assurer que les fonctionnalités supplémentaires améliorent l'expérience utilisateur globale et sont intuitives à naviguer. Faites attention aux considérations de performances, en particulier lors de l'utilisation d'animations et d'effets visuels, pour garantir des interactions d'interface utilisateur fluides et réactives.

Rendre les jeux Godot plus attrayants avec un menu d'interface utilisateur personnalisé

Les menus d'interface utilisateur personnalisés peuvent jouer un rôle crucial dans l'engagement des joueurs. Ils offrent une navigation intuitive, permettent un accès facile aux fonctionnalités du jeu et améliorent l'attrait visuel général de votre jeu.

Avec un peu de créativité et un peu de codage, vous pouvez concevoir des menus qui non seulement fournissent des fonctionnalités essentielles, mais captivent également les joueurs et améliorent leur expérience de jeu globale. Alors, commencez à explorer et à créer vos propres menus uniques pour que vos jeux Godot se démarquent de la foule.