Adaugă atmosferă și mecanisme de joc unice cu răsăritul și căderea soarelui.
Un ciclu zi-noapte poate adăuga un element captivant la jocurile tale, poate adăuga varietate imaginilor și poate crea mecanisme interesante. Jocuri precum Minecraft, Animal Crossing și Don’t Starve folosesc această tehnică în mod eficient și este una pe care ați putea să o adăugați la propriile jocuri, în special cele cu un element în timp real.
Din fericire, în Godot 4, realizarea unui ciclu zi-noapte este mai ușor ca niciodată.
Configurarea jocului Godot
Înainte de a te scufunda în implementarea ciclului zi-noapte, stabilește fundația jocului tău. Începeți prin a crea un nou proiect 2D în Godot 4. Configurați-vă proiectul cu setările necesare pentru proiect.
Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.
Acum, creează un personaj jucător. În scena ta, adaugă un CharacterBody2D. În interiorul acestuia, adăugați a CollisionShape2D cu formă dreptunghiulară și a Sprite2D. Aceasta vă va reprezenta vizual personajul.
Pentru a permite jucătorului să se miște, puteți utiliza următorul cod GDScript. Atașați acest script la nodul caracterului dvs.:
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZEROif Input.is_action_pressed("ui_left"):
input_dir.x -= 1if Input.is_action_pressed("ui_right"):
input_dir.x += 1if Input.is_action_pressed("ui_up"):
input_dir.y -= 1if Input.is_action_pressed("ui_down"):
input_dir.y += 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
Acest cod va permite jucătorului să se deplaseze la stânga, la dreapta, în sus și în jos folosind tastele săgeți. Poti de asemenea adăugați niște dușmani pentru ca jucătorul tău să se eschiveze. Utilizare StaticBody2D noduri pentru acești inamici și ajustați-le formele și pozițiile în consecință.
Adăugați un cronometru pentru ciclul zi și noapte
Pentru a crea un ciclu zi-noapte, aveți nevoie de un cronometru care să ruleze continuu, alternând între fazele de zi și de noapte. Acest cronometru va fi responsabil pentru urmărirea trecerii timpului în jocul dvs.
Adăugați un nod Timer la scena Godot. Puteți face acest lucru făcând clic dreapta în panoul Scenă, alegând Adăugați nod, și apoi căutând Temporizator în biblioteca de noduri.
Redenumiți nodul Timer la ceva semnificativ, cum ar fi DayNightTimer pentru claritate. Configurați proprietățile nodului Timer în panoul Inspector. Mai exact, setați Timp de așteptare proprietate la 0 (aceasta este întârzierea inițială înainte de pornirea temporizatorului) și verificați O singura sansa proprietate astfel încât temporizatorul să se repete.
Acum, adăugați un cod GDScript care gestionează ciclul zi-noapte:
extends Node2D
var day_duration = 30# Duration of the day in seconds
var night_duration = 30# Duration of the night in secondsvar 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
În _gata funcția, porniți DayNightTimer când scena se încarcă pentru a porni ciclul zi-noapte. The _on_DayNightTimer_timeout Funcția va rula de fiecare dată când cronometrul ajunge la zero, care este momentul în care este timpul să treceți între zi și noapte.
Urmând acești pași, veți avea un cronometru funcțional zi-noapte care trece între zi și noapte, permițându-vă să adăugați elemente de joc dinamice și modificări vizuale la jocul Godot în funcție de ora din zi.
Adaptarea fundalului pentru zi și noapte
Pentru a vă completa ciclul zi-noapte, aveți nevoie de o modalitate de a reprezenta vizual tranzițiile dintre zi și noapte. Puteți folosi un încorporat ColorRect nod pentru a crea un fundal potrivit atât pentru zi, cât și pentru noapte. Această abordare permite tranziții mai fine și un control mai mare asupra imaginilor.
În scena Godot, adăugați a ColorRect nodul. Acest nod va servi drept fundal care își schimbă culoarea pentru a reprezenta ziua și noaptea. Redenumiți ColorRect nod la ceva semnificativ ca BackgroundRect. Poziționați-l ca strat de fundal, asigurându-vă că acoperă întreaga zonă de vizualizare.
În panoul Inspector, setați Culoare proprietate la culoarea de fundal inițială, care ar trebui să reprezinte ziua. De exemplu, puteți utiliza Culoare (0,5, 0,5, 0,8) pentru un cer albastru deschis de zi.
Acum, actualizați codul GDScript pentru a funcționa cu ColorRect nodul:
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
Actualizați culoarea BackgroundRect nod pentru a reflecta ora din zi. De exemplu, setați-l la negru atunci când treceți la noapte, creând un fundal întunecat. Când treceți la zi, setați-l la albastru deschis.
Efecte sonore pentru ciclul zi-noapte
Efectele sonore pot juca un rol crucial în îmbunătățirea imersiunii și realismului ciclului tău zi-noapte în Godot. Ele oferă indicii auditive jucătorilor, făcând tranziția dintre zi și noapte mai captivantă. Poți cu ușurință adaugă efecte sonore la jocul tău Godot.
Înainte de a începe, asigurați-vă că aveți resurse audio (fișiere de sunet) care reprezintă sunete de zi și de noapte. De exemplu, s-ar putea să aveți sunete de ciripit de păsări pentru ziua și de greieri sau zgomote de bufniță pentru noapte.
În scena Godot, adaugă două AudioStreamPlayer2D noduri și numiți-le corespunzător. Le poți numi așa ceva $DaytimeSounds și $NighttimeSounds.
Acum, actualizați codul GDScript pentru a gestiona tranzițiile de sunet între zi și noapte:
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
Când cronometrul zi-noapte expiră, acest cod verifică pentru a vedea în ce fază ar trebui să treacă și redă sunete potrivite pentru a se potrivi.
Simțiți-vă liber să vă personalizați efecte sonore fără drepturi de autor pentru a se potrivi cu tema și atmosfera jocului dvs. De asemenea, puteți suprapune mai multe piese audio sau puteți utiliza efecte audio (reverb, ecou etc.) pentru a crea o experiență auditivă mai bogată.
Faceți jocurile dvs. Godot mai captivante cu un ciclu zi-noapte
Implementarea unui ciclu zi-noapte în jocul Godot poate îmbunătăți semnificativ imersiunea și implicarea jucătorului. Adaugă profunzime lumii tale de joc, introduce elemente dinamice de joc și permite o povestire creativă.
Nu uitați să adaptați ciclul zi-noapte la tema și mecanica unică a jocului și nu ezitați pentru a experimenta diferite efecte vizuale și de joc pentru a crea un joc cu adevărat captivant experienţă.