Dodajte atmosferu i jedinstvenu mehaniku igranja s izlaskom i zalaskom sunca.

Ciklus dan-noć može dodati imerzivni element vašim igrama, dodati raznolikost vizualnim elementima i stvoriti zanimljive mehanike. Igre kao što su Minecraft, Animal Crossing i Don’t Starve učinkovito koriste ovu tehniku, a možda biste je mogli dodati u svoje igre, posebno one s elementom stvarnog vremena.

Srećom, u Godotu 4, postizanje ciklusa dan-noć lakše je nego ikada.

Postavljanje igre Godot

Prije nego što se upustite u implementaciju ciklusa dan-noć, postavite temelje za svoju igru. Započnite stvaranjem novog 2D projekta u Godotu 4. Postavite svoj projekt s potrebnim postavkama projekta.

Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.

Sada stvorite lik igrača. U svoju scenu dodajte a CharacterBody2D. Unutar njega dodajte a CollisionShape2D s oblikom pravokutnika i a Sprite2D. To će vizualno predstaviti vaš lik.

Da biste igraču omogućili kretanje, možete koristiti sljedeći GDScript kod. Priložite ovu skriptu svom čvoru lika:

instagram viewer
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)

Ovaj kod će omogućiti igraču da se pomiče lijevo, desno, gore i dolje pomoću tipki sa strelicama. Također možete dodajte neke neprijatelje kako bi vaš igrač mogao izbjeći. Koristiti StaticBody2D čvorove za te neprijatelje i prilagodite njihove oblike i položaje u skladu s tim.

Dodajte mjerač vremena za dnevni i noćni ciklus

Za stvaranje dnevno-noćnog ciklusa potreban vam je mjerač vremena koji neprekidno radi, izmjenjujući dnevne i noćne faze. Ovaj mjerač vremena bit će odgovoran za praćenje protoka vremena u vašoj igri.

Dodajte Timer čvor vašoj Godot sceni. To možete učiniti tako da desnom tipkom miša kliknete ploču Scene i odaberete Dodaj čvor, a zatim traženje Timer u biblioteci čvorova.

Preimenujte čvor Timer u nešto smisleno poput DayNightTimer radi jasnoće. Konfigurirajte svojstva Timer čvora na ploči Inspector. Konkretno, postavite Vrijeme cekanja svojstvo na 0 (ovo je početna odgoda prije pokretanja mjerača vremena) i provjerite One Shot svojstvo tako da se mjerač vremena ponavlja.

Sada dodajte GDScript kod koji upravlja ciklusom dan-noć:

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

u _spreman funkciju, pokrenite DayNightTimer kada se scena učita da bi se pokrenuo ciklus dan-noć. The _on_DayNightTimer_timeout funkcija će se pokrenuti svaki put kada mjerač vremena dosegne nulu, što je kada je vrijeme za prijelaz između dana i noći.

Slijedeći ove korake, imat ćete funkcionalni tajmer dan-noć koji prelazi između dana i noći, što vam omogućuje dodavanje dinamičnih elemenata igranja i vizualnih promjena u vašu igru ​​Godot ovisno o dobu dana.

Prilagodba pozadine za dan i noć

Kako biste upotpunili svoj ciklus dan-noć, potreban vam je način da vizualno predstavite prijelaze između dana i noći. Možete koristiti ugrađeni ColorRect čvor za stvaranje prikladne pozadine i za dan i za noć. Ovaj pristup omogućuje glatkije prijelaze i veću kontrolu nad vizualnim elementima.

U svojoj Godot sceni dodajte a ColorRect čvor. Ovaj čvor će služiti kao vaša pozadina koja mijenja boju kako bi predstavljala dan i noć. Preimenuj ColorRect čvor na nešto smisleno poput BackgroundRect. Postavite ga kao pozadinski sloj, pazeći da pokriva cijeli okvir za prikaz.

Na ploči inspektora postavite Boja svoju početnu boju pozadine, koja bi trebala predstavljati dan. Na primjer, možete koristiti Boja (0,5, 0,5, 0,8) za svijetloplavo dnevno nebo.

Sada ažurirajte svoj GDScript kod za rad s ColorRect čvor:

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

Ažurirajte boju BackgroundRect čvor koji odražava doba dana. Na primjer, postavite ga na crno kada prelazite na noć, stvarajući tamnu pozadinu. Prilikom prijelaza na dan, postavite je na svijetloplavu.

Zvučni efekti za ciklus dan-noć

Zvučni efekti mogu igrati ključnu ulogu u poboljšanju uživljavanja i realizma vašeg dnevno-noćnog ciklusa u Godotu. Oni daju slušne znakove igračima, čineći prijelaz između dana i noći zadivljujućim. Možete lako dodajte zvučne efekte svojoj igri Godot.

Prije nego počnete, provjerite imate li audio izvore (zvučne datoteke) koji predstavljaju dnevne i noćne zvukove. Na primjer, možete čuti cvrkut ptica tijekom dana, a cvrčke ili hukanje sove tijekom noći.

U svoju Godot scenu dodajte dva AudioStreamPlayer2D čvorove i prikladno ih imenovati. Možete ih nazvati nekako $DaytimeSounds i $NighttimeSounds.

Sada ažurirajte GDScript kod za upravljanje prijelazima zvuka između dana i noći:

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

Kada tajmer dan-noć istekne, ovaj kod provjerava u koju fazu treba prijeći i reproducira odgovarajuće zvukove koji odgovaraju.

Slobodno prilagodite svoje zvučni efekti bez autorskih prava kako bi odgovarao temi i atmosferi vaše igre. Također možete slojeviti više zvučnih zapisa ili koristiti audio efekte (reverb, echo, itd.) za stvaranje bogatijeg slušnog iskustva.

Učinite svoje Godot igre privlačnijim s ciklusom dan-noć

Implementacija ciklusa dan-noć u igri Godot može značajno poboljšati uživljavanje i angažman igrača. Dodaje dubinu vašem svijetu igre, uvodi dinamične elemente igranja i omogućuje kreativno pripovijedanje.

Ne zaboravite prilagoditi ciklus dan-noć jedinstvenoj temi i mehanici svoje igre i nemojte oklijevati eksperimentirati s različitim vizualnim efektima i efektima igranja kako bi se stvorilo doista zadivljujuće igranje iskustvo.