Aggiungi atmosfera e meccaniche di gioco uniche con l'alba e il tramonto del sole.

Un ciclo giorno-notte può aggiungere un elemento coinvolgente ai tuoi giochi, aggiungere varietà alla grafica e creare meccaniche interessanti. Giochi come Minecraft, Animal Crossing e Don't Starve utilizzano questa tecnica in modo efficace, ed è una tecnica che potresti prendere in considerazione di aggiungere ai tuoi giochi, in particolare quelli con un elemento in tempo reale.

Fortunatamente, in Godot 4, ottenere un ciclo giorno-notte è più facile che mai.

Impostazione del gioco Godot

Prima di immergerti nell'implementazione del ciclo giorno-notte, crea le basi per il tuo gioco. Inizia creando un nuovo progetto 2D in Godot 4. Configura il tuo progetto con le impostazioni di progetto necessarie.

Il codice utilizzato in questo articolo è disponibile in this Repositorio GitHub ed è gratuito per l'utilizzo con la licenza MIT.

Ora crea un personaggio giocante. Nella tua scena, aggiungi a CarattereCorpo2D. Al suo interno, aggiungi a

instagram viewer
CollisionShape2D con una forma rettangolare e a Sprite2D. Questo rappresenterà visivamente il tuo personaggio.

Per consentire al giocatore di muoversi, puoi utilizzare il seguente codice GDScript. Allega questo script al nodo del tuo personaggio:

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)

Questo codice consentirà al giocatore di spostarsi a sinistra, destra, su e giù utilizzando i tasti freccia. Puoi anche aggiungi alcuni nemici affinché il tuo giocatore possa schivarlo. Utilizzo Corpo statico2D nodi per questi nemici e regolarne la forma e la posizione di conseguenza.

Aggiungi un timer per il ciclo giorno e notte

Per creare un ciclo giorno-notte, è necessario un timer che funzioni continuamente, alternando le fasi diurne e notturne. Questo timer sarà responsabile del monitoraggio del passare del tempo nel tuo gioco.

Aggiungi un nodo Timer alla tua scena Godot. Puoi farlo facendo clic con il tasto destro nel pannello Scena, scegliendo Aggiungi nodo, quindi cercare Timer nella libreria dei nodi.

Rinominare il nodo Timer in qualcosa di significativo come GiornoNotteTimer per chiarezza. Configura le proprietà del nodo Timer nel pannello Ispettore. Nello specifico, imposta il Tempo di attesa proprietà su 0 (questo è il ritardo iniziale prima dell'avvio del timer) e controlla il file Un colpo proprietà in modo che il timer si ripeta.

Ora aggiungi un codice GDScript che gestisce il ciclo giorno-notte:

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

Nel _pronto funzione, avviare il GiornoNotteTimer quando la scena viene caricata per avviare il ciclo giorno-notte. IL _on_DayNightTimer_timeout la funzione verrà eseguita ogni volta che il timer raggiunge lo zero, ovvero quando è il momento di passare dal giorno alla notte.

Seguendo questi passaggi, avrai un timer giorno-notte funzionale che passa dal giorno alla notte, permettendoti di aggiungere elementi di gioco dinamici e modifiche visive al tuo gioco Godot in base all'ora del giorno.

Adattare lo sfondo per il giorno e la notte

Per completare il tuo ciclo giorno-notte, hai bisogno di un modo per rappresentare visivamente le transizioni tra giorno e notte. Puoi usare un built-in ColorRect nodo per creare uno sfondo adatto sia per il giorno che per la notte. Questo approccio consente transizioni più fluide e un maggiore controllo sulle immagini.

Nella tua scena Godot, aggiungi a ColorRect nodo. Questo nodo fungerà da sfondo che cambia colore per rappresentare il giorno e la notte. Rinominare il ColorRect nodo a qualcosa di significativo come SfondoRect. Posizionalo come livello di sfondo, assicurandoti che copra l'intera finestra.

Nel pannello Ispettore, imposta il file Colore proprietà al colore di sfondo iniziale, che dovrebbe rappresentare il giorno. Ad esempio, puoi usare Colore (0,5, 0,5, 0,8) per un cielo azzurro diurno.

Ora aggiorna il tuo codice GDScript per funzionare con il file ColorRect nodo:

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

Aggiorna il colore del SfondoRect nodo per riflettere l'ora del giorno. Ad esempio, impostalo su nero quando passi alla notte, creando uno sfondo scuro. Quando si passa al giorno, impostarlo su azzurro.

Effetti sonori per il ciclo giorno-notte

Gli effetti sonori possono svolgere un ruolo cruciale nel migliorare l'immersione e il realismo del tuo ciclo giorno-notte in Godot. Forniscono segnali uditivi ai giocatori, rendendo la transizione tra il giorno e la notte più accattivante. Puoi facilmente aggiungi effetti sonori al tuo gioco Godot.

Prima di iniziare, assicurati di disporre di risorse audio (file audio) che rappresentano i suoni del giorno e della notte. Ad esempio, potresti sentire il cinguettio degli uccelli durante il giorno e il grido dei grilli o dei gufi durante la notte.

Nella tua scena di Godot, aggiungine due AudioStreamPlayer2D nodi e nominarli in modo appropriato. Puoi nominarli in qualche modo $Suoni diurni E $Suoni notturni.

Ora aggiorna il codice GDScript per gestire le transizioni sonore tra il giorno e la notte:

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

Quando il timer giorno-notte scade, questo codice controlla a quale fase dovrebbe passare e riproduce i suoni appropriati per abbinarli.

Sentiti libero di personalizzare il tuo effetti sonori senza copyright per abbinare il tema e l'atmosfera del tuo gioco. Puoi anche sovrapporre più tracce audio o utilizzare effetti audio (riverbero, eco, ecc.) per creare un'esperienza uditiva più ricca.

Rendi i tuoi giochi Godot più coinvolgenti con un ciclo giorno-notte

L'implementazione di un ciclo giorno-notte nel tuo gioco Godot può migliorare significativamente l'immersione e il coinvolgimento dei giocatori. Aggiunge profondità al tuo mondo di gioco, introduce elementi di gioco dinamici e consente una narrazione creativa.

Ricorda di adattare il ciclo giorno-notte al tema e ai meccanismi unici del tuo gioco e non esitare sperimentare diversi effetti visivi e di gioco per creare un gioco davvero accattivante esperienza.