Pridajte atmosféru a jedinečné herné mechanizmy s východom a pádom slnka.

Cyklus deň a noc môže pridať pohlcujúci prvok do vašich hier, dodať rozmanitosť vizuálom a vytvoriť zaujímavú mechaniku. Hry ako Minecraft, Animal Crossing a Don’t Starve využívajú túto techniku ​​efektívne a je to jedna z tých, ktoré by ste mohli zvážiť pridanie do svojich vlastných hier, najmä tých s prvkami v reálnom čase.

Našťastie v Godot 4 je dosiahnutie cyklu deň-noc jednoduchšie ako kedykoľvek predtým.

Nastavenie hry Godot

Predtým, ako sa pustíte do implementácie cyklu deň-noc, vytvorte základ pre svoju hru. Začnite vytvorením nového 2D projektu v Godot 4. Nastavte svoj projekt s potrebnými nastaveniami projektu.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Teraz vytvorte postavu hráča. Vo svojej scéne pridajte a CharacterBody2D. Vnútri pridajte a CollisionShape2D s tvarom obdĺžnika a a Sprite2D. To bude vizuálne reprezentovať vašu postavu.

instagram viewer

Ak chcete, aby sa prehrávač mohol pohybovať, môžete použiť nasledujúci kód GDScript. Pripojte tento skript k uzlu postavy:

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)

Tento kód umožní hráčovi pohybovať sa doľava, doprava, nahor a nadol pomocou kláves so šípkami. Môžete tiež pridať nejakých nepriateľov aby sa váš prehrávač vyhol. Použite StaticBody2D uzly pre týchto nepriateľov a podľa toho upravte ich tvary a pozície.

Pridajte časovač pre denný a nočný cyklus

Na vytvorenie cyklu deň-noc potrebujete časovač, ktorý beží nepretržite, striedavo medzi dennou a nočnou fázou. Tento časovač bude zodpovedný za sledovanie plynutia času vo vašej hre.

Pridajte do svojej Godotovej scény uzol časovača. Môžete to urobiť kliknutím pravým tlačidlom myši na panel Scene a výberom Pridať uzola potom hľadať Časovač v knižnici uzlov.

Premenujte uzol Timer na niečo zmysluplné, napr DayNightTimer kvôli prehľadnosti. Nakonfigurujte vlastnosti uzla Timer na paneli Inspector. Konkrétne nastavte Čas čakania vlastnosť na 0 (toto je počiatočné oneskorenie pred spustením časovača) a skontrolujte Jeden výstrel vlastnosť, aby sa časovač opakoval.

Teraz pridajte kód GDScript, ktorý riadi cyklus deň-noc:

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

V _pripravený funkciu, spustite DayNightTimer keď sa scéna načíta, aby sa naštartoval cyklus deň-noc. The _on_DayNightTimer_timeout funkcia sa spustí vždy, keď časovač dosiahne nulu, čo je čas na prechod medzi dňom a nocou.

Ak budete postupovať podľa týchto krokov, získate funkčný časovač deň/noc, ktorý prepína medzi dňom a nocou, čo vám umožní pridať dynamické herné prvky a vizuálne zmeny do vašej hry Godot na základe dennej doby.

Prispôsobenie pozadia pre deň a noc

Na doplnenie vášho denno-nočného cyklu potrebujete spôsob, ako vizuálne znázorniť prechody medzi dňom a nocou. Môžete použiť vstavaný ColorRect uzol na vytvorenie vhodného pozadia pre deň aj noc. Tento prístup umožňuje plynulejšie prechody a väčšiu kontrolu nad vizuálmi.

Vo svojej scéne Godot pridajte a ColorRect uzol. Tento uzol bude slúžiť ako pozadie, ktoré mení farbu, aby predstavovalo deň a noc. Premenujte ColorRect uzol na niečo zmysluplné, napr BackgroundRect. Umiestnite ho ako vrstvu pozadia a uistite sa, že pokrýva celý výrez.

Na paneli Inšpektor nastavte Farba na pôvodnú farbu pozadia, ktorá by mala predstavovať denný čas. Môžete napríklad použiť Farba (0,5, 0,5, 0,8) pre svetlomodrú dennú oblohu.

Teraz aktualizujte svoj kód GDScript, aby fungoval s ColorRect uzol:

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

Aktualizujte farbu BackgroundRect uzol odrážať čas dňa. Napríklad pri prechode do noci ho nastavte na čiernu, čím vytvoríte tmavé pozadie. Pri prechode na deň nastavte svetlomodrú.

Zvukové efekty pre cyklus deň-noc

Zvukové efekty môžu hrať kľúčovú úlohu pri zvyšovaní pohltenia a realizmu vášho cyklu deň-noc v Godot. Poskytujú hráčom sluchové podnety, vďaka čomu je prechod medzi dňom a nocou pútavejší. Môžete ľahko pridajte zvukové efekty do svojej hry Godot.

Skôr ako začnete, uistite sa, že máte zvukové zdroje (zvukové súbory), ktoré predstavujú denné a nočné zvuky. Cez deň môžete napríklad počuť štebotanie vtákov a v noci húkanie cvrčkov alebo sovy.

Vo svojej Godot scéne pridajte dve AudioStreamPlayer 2D uzly a vhodne ich pomenovať. Môžete ich pomenovať nejako podobne $DaytimeSounds a $NighttimeSounds.

Teraz aktualizujte kód GDScript, aby ste spravovali zvukové prechody medzi dňom a nocou:

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

Keď uplynie časový limit denného a nočného časovača, tento kód skontroluje, do ktorej fázy by mal prejsť, a prehrá vhodné zvuky, aby sa zhodovali.

Neváhajte a prispôsobte si svoje zvukové efekty bez autorských práv aby zodpovedali téme a atmosfére vašej hry. Môžete tiež vrstviť viacero zvukových stôp alebo použiť zvukové efekty (reverb, echo atď.), aby ste vytvorili bohatší zvukový zážitok.

Urobte svoje hry Godot pútavejšími vďaka cyklu deň-noc

Implementácia cyklu deň a noc vo vašej hre Godot môže výrazne zlepšiť ponorenie a zapojenie hráča. Dodáva hĺbku vášmu hernému svetu, zavádza dynamické herné prvky a umožňuje kreatívne rozprávanie príbehov.

Nezabudnite prispôsobiť cyklus dňa a noci jedinečnej téme a mechanike vašej hry a neváhajte experimentovať s rôznymi vizuálnymi a hernými efektmi, aby ste vytvorili skutočne podmanivé hry skúsenosti.