Ajoutez une atmosphère et des mécanismes de jeu uniques avec le lever et le coucher du soleil.

Un cycle jour-nuit peut ajouter un élément immersif à vos jeux, ajouter de la variété aux visuels et créer des mécanismes intéressants. Des jeux comme Minecraft, Animal Crossing et Don't Starve utilisent cette technique efficacement, et vous pourriez envisager de l'ajouter à vos propres jeux, en particulier ceux comportant un élément en temps réel.

Heureusement, dans Godot 4, réaliser un cycle jour-nuit est plus facile que jamais.

Configuration du jeu Godot

Avant de vous lancer dans la mise en œuvre du cycle jour-nuit, établissez les bases de votre jeu. Commencez par créer un nouveau projet 2D dans Godot 4. Configurez votre projet avec les paramètres de projet nécessaires.

Le code utilisé dans cet article est disponible dans ce Dépôt GitHub et son utilisation est gratuite sous la licence MIT.

Maintenant, créez un personnage de joueur. Dans votre scène, ajoutez un CaractèreCorps2D. À l'intérieur, ajoutez un

instagram viewer
CollisionForme2D avec une forme de rectangle et un Sprite2D. Cela représentera visuellement votre personnage.

Pour permettre au joueur de se déplacer, vous pouvez utiliser le code GDScript suivant. Attachez ce script à votre nœud de personnage :

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Ce code permettra au joueur de se déplacer vers la gauche, la droite, le haut et le bas à l'aide des touches fléchées. Vous pouvez aussi ajouter quelques ennemis pour que votre joueur esquive. Utiliser CorpsStatique2D des nœuds pour ces ennemis et ajustez leurs formes et positions en conséquence.

Ajouter une minuterie pour le cycle jour et nuit

Pour créer un cycle jour-nuit, vous avez besoin d'une minuterie qui fonctionne en continu, en alternant les phases jour et nuit. Ce chronomètre sera chargé de suivre le passage du temps dans votre jeu.

Ajoutez un nœud Timer à votre scène Godot. Vous pouvez le faire en cliquant avec le bouton droit dans le panneau Scène, en choisissant Ajouter un nœud, puis en recherchant Minuteur dans la bibliothèque de nœuds.

Renommez le nœud Timer en quelque chose de significatif comme Minuterie JourNuit pour plus de clarté. Configurez les propriétés du nœud Timer dans le panneau Inspecteur. Plus précisément, définissez le Temps d'attente propriété à 0 (c'est le délai initial avant le démarrage de la minuterie) et vérifiez le Un tir propriété pour que la minuterie se répète.

Maintenant, ajoutez un code GDScript qui gère le cycle jour-nuit :

extends Node2D

var day_duration = 30# Duration of the day in seconds
var night_duration = 30# Duration of the night in seconds

var is_day = true

func _ready():
# Start the timer when the scene loads
$DayNightTimer.start()

func _on_DayNightTimer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false

# Add your code here for night-specific actions or visual changes
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true

# Add your code here for day-specific actions or visual changes

Dans le _prêt fonction, démarrez le Minuterie JourNuit lorsque la scène se charge pour relancer le cycle jour-nuit. Le _on_DayNightTimer_timeout La fonction s'exécutera chaque fois que la minuterie atteint zéro, c'est-à-dire lorsqu'il est temps de passer du jour à la nuit.

En suivant ces étapes, vous disposerez d'une minuterie jour-nuit fonctionnelle qui fait la transition entre le jour et la nuit, vous permettant d'ajouter des éléments de jeu dynamiques et des changements visuels à votre jeu Godot en fonction de l'heure de la journée.

Adapter l'arrière-plan pour le jour et la nuit

Pour compléter votre cycle jour-nuit, vous avez besoin d’un moyen de représenter visuellement les transitions entre le jour et la nuit. Vous pouvez utiliser un CouleurRect nœud pour créer un arrière-plan approprié pour le jour et la nuit. Cette approche permet des transitions plus fluides et un meilleur contrôle sur les visuels.

Dans votre scène Godot, ajoutez un CouleurRect nœud. Ce nœud vous servira d'arrière-plan qui change de couleur pour représenter le jour et la nuit. Renommer le CouleurRect nœud à quelque chose de significatif comme FondRect. Positionnez-le comme calque d’arrière-plan, en vous assurant qu’il couvre toute la fenêtre.

Dans le panneau Inspecteur, définissez le Couleur propriété à votre couleur d’arrière-plan initiale, qui doit représenter le jour. Par exemple, vous pouvez utiliser Couleur (0,5, 0,5, 0,8) pour un ciel diurne bleu clair.

Maintenant, mettez à jour votre code GDScript pour fonctionner avec le CouleurRect nœud:

func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false

# Add your code here for night-specific actions or visual changes

# Update the background color to indicate day
$BackgroundRect.color = Color(0.5, 0.5, 0.8) # Light blue for day
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true

# Add your code here for day-specific actions or visual changes

# Update the background color to indicate night
$BackgroundRect.color = Color(0, 0, 0) # Black for night

Mettez à jour la couleur du FondRect nœud pour refléter l’heure de la journée. Par exemple, réglez-le sur noir lors de la transition vers la nuit, créant ainsi un arrière-plan sombre. Lors de la transition vers le jour, réglez-le sur bleu clair.

Effets sonores pour le cycle jour-nuit

Les effets sonores peuvent jouer un rôle crucial dans l’amélioration de l’immersion et du réalisme de votre cycle jour-nuit dans Godot. Ils fournissent des signaux auditifs aux joueurs, rendant la transition entre le jour et la nuit plus captivante. Vous pouvez facilement ajoutez des effets sonores à votre jeu Godot.

Avant de commencer, assurez-vous de disposer de ressources audio (fichiers son) qui représentent les sons du jour et de la nuit. Par exemple, vous pourriez entendre des gazouillis d’oiseaux pendant la journée et des criquets ou des hiboux pour la nuit.

Dans votre scène Godot, ajoutez deux AudioStreamPlayer2D nœuds et nommez-les de manière appropriée. Vous pouvez les nommer quelque chose comme $DaytimeSounds et $Sons nocturnes.

Maintenant, mettez à jour le code GDScript pour gérer les transitions sonores entre le jour et la nuit :

func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false

# Play daytime sounds
$NighttimeSounds.stop() # Stop nighttime sounds
$DaytimeSounds.play() # Start daytime sounds

else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true

# Play nighttime sounds
$DaytimeSounds.stop() # Stop daytime sounds
$NighttimeSounds.play() # Start nighttime sounds

Lorsque la minuterie jour-nuit expire, ce code vérifie à quelle phase il doit passer et joue les sons appropriés qui correspondent.

N'hésitez pas à personnaliser votre effets sonores libres de droits pour correspondre au thème et à l'atmosphère de votre jeu. Vous pouvez également superposer plusieurs pistes audio ou utiliser des effets audio (réverbération, écho, etc.) pour créer une expérience auditive plus riche.

Rendez vos jeux Godot plus attrayants avec un cycle jour-nuit

La mise en œuvre d'un cycle jour-nuit dans votre jeu Godot peut améliorer considérablement l'immersion et l'engagement des joueurs. Il ajoute de la profondeur à votre monde de jeu, introduit des éléments de jeu dynamiques et permet une narration créative.

N'oubliez pas d'adapter le cycle jour-nuit au thème et aux mécanismes uniques de votre jeu, et n'hésitez pas expérimenter différents effets visuels et de gameplay pour créer un jeu vraiment captivant expérience.