Adjon hozzá hangulatot és egyedi játékmenetet a nap kelésével és bukásával.

A nappali-éjszaka ciklus magával ragadó elemekkel gazdagíthatja játékait, változatossá teheti a látványvilágot, és érdekes mechanikát hozhat létre. Az olyan játékok, mint a Minecraft, az Animal Crossing és a Don’t Starve hatékonyan használják ezt a technikát, és érdemes lehet ezt a technikát hozzáadni a saját játékaidhoz, különösen a valós idejű elemekkel rendelkező játékokhoz.

Szerencsére a Godot 4-ben a nappal-éjszaka ciklus elérése egyszerűbb, mint valaha.

A Godot játék beállítása

Mielőtt belemerülne a nappal-éjszaka ciklus megvalósításába, állítsa be a játék alapjait. Kezdje egy új 2D projekt létrehozásával a Godot 4-ben. Állítsa be projektjét a szükséges projektbeállításokkal.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Most hozz létre egy játékos karaktert. A jelenetben adjon hozzá a CharacterBody2D. Belül adjunk hozzá a CollisionShape2D téglalap alakú és a Sprite2D. Ez vizuálisan reprezentálja karakterét.

A lejátszó mozgásának engedélyezéséhez a következő GDScript kódot használhatja. Csatolja ezt a szkriptet a karaktercsomóponthoz:

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)

Ez a kód lehetővé teszi a játékos számára, hogy a nyílbillentyűkkel balra, jobbra, fel és le mozogjon. Te is adjunk hozzá néhány ellenséget hogy a játékos kikerülje. Használat StaticBody2D csomópontokat ezeknek az ellenségeknek, és ennek megfelelően állítsa be alakjukat és pozíciójukat.

Adjon hozzá egy időzítőt a nappali és éjszakai ciklushoz

A nappali-éjszaka ciklus létrehozásához olyan időzítőre van szükség, amely folyamatosan fut, váltakozva a nappali és az éjszakai fázisok között. Ez az időzítő lesz felelős az idő múlásának követéséért a játékban.

Adjon hozzá egy Timer csomópontot a Godot jelenethez. Ezt úgy teheti meg, hogy jobb gombbal kattint a Jelenet panelen, és kiválasztja Csomópont hozzáadása, majd a keresést Időzítő a csomóponti könyvtárban.

Nevezze át az időzítő csomópontot valami értelmesre, például DayNightTimer az egyértelműség kedvéért. Konfigurálja az Időzítő csomópont tulajdonságait az Inspector panelen. Pontosabban állítsa be a Várakozási idő tulajdonság 0-ra (ez a kezdeti késleltetés az időzítő elindulása előtt), és ellenőrizze a Egy lövés tulajdonságot úgy, hogy az időzítő megismétlődik.

Most adjon hozzá egy GDScript-kódot, amely kezeli a nappal-éjszaka ciklust:

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

Ban,-ben _kész funkciót, indítsa el a DayNightTimer amikor a jelenet betöltődik, hogy beinduljon a nappal-éjszaka ciklus. A _on_DayNightTimer_timeout A funkció minden alkalommal futni fog, amikor az időzítő eléri a nullát, vagyis amikor elérkezik a nappali és az éjszaka közötti váltás ideje.

Ha követi ezeket a lépéseket, akkor működőképes nappali-éjszakai időzítője lesz, amely vált a nappal és az éjszaka között, lehetővé teszi, hogy dinamikus játékelemeket és vizuális változtatásokat adjon Godot játékához a napszaktól függően.

A háttér hozzáigazítása nappalhoz és éjszakához

A nappal-éjszaka ciklus kiegészítéséhez olyan módra van szüksége, amely vizuálisan ábrázolja a nappal és az éjszaka közötti átmenetet. Használhat beépített ColorRect csomópontot, hogy megfelelő hátteret hozzon létre nappal és éjszaka egyaránt. Ez a megközelítés simább átmeneteket és nagyobb irányítást tesz lehetővé a látványelemek felett.

A Godot-jelenetedben add hozzá a ColorRect csomópont. Ez a csomópont fog szolgálni a háttérként, amely megváltoztatja a színét a nappal és az éjszaka ábrázolásához. Nevezze át a ColorRect csomópont valami értelmes dologhoz, mint pl HáttérRect. Helyezze el háttérrétegként, ügyelve arra, hogy a teljes nézetablakot lefedje.

Az Inspector panelen állítsa be a Szín tulajdonságot a kezdeti háttérszínhez, amelynek nappali időt kell képviselnie. Például használhatja Szín (0,5, 0,5, 0,8) világoskék nappali égboltra.

Most frissítse a GDScript kódot, hogy működjön együtt a ColorRect csomópont:

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

Frissítse a színét HáttérRect csomópont, hogy tükrözze a napszakot. Például állítsa feketére, amikor éjszakai üzemmódba vált, így sötét hátteret hoz létre. Nappali váltáskor állítsa világoskékre.

Hangeffektusok a nappali-éjszakai ciklushoz

A hangeffektusok döntő szerepet játszhatnak a Godot-ban való nappal-éjszaka ciklus elmerülésének és valósághűségének fokozásában. Hallási jelzéseket adnak a játékosoknak, így lebilincselőbbé teszik a nappal és az éjszaka közötti átmenetet. Könnyen lehet adj hangeffektusokat Godot játékodhoz.

Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik a nappali és éjszakai hangokat reprezentáló hangforrásokkal (hangfájlokkal). Például előfordulhat, hogy nappal madárcsicsergés, éjszaka pedig tücskök vagy bagolyhuhogás.

A Godot-jelenetedben adj hozzá kettőt AudioStreamPlayer2D csomópontokat, és nevezze el őket megfelelően. Valami hasonló nevet adhatsz nekik $DaytimeSounds és $NighttimeSounds.

Most frissítse a GDScript kódot a nappali és éjszakai hangátmenetek kezeléséhez:

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

Amikor a nappali-éjszakai időzítő lejár, ez a kód ellenőrzi, hogy melyik fázisba kell átállnia, és lejátssza a megfelelő hangokat.

Nyugodtan testreszabhatja szerzői jog mentes hanghatások hogy illeszkedjen a játék témájához és hangulatához. Több hangsávot is rétegezhet, vagy hangeffektusokat (visszhang, visszhang stb.) használhat a gazdagabb hallási élmény megteremtéséhez.

Tedd Godot-játékaid vonzóbbá a nappali-éjszakai ciklussal

A nappal-éjszaka ciklus megvalósítása a Godot játékban jelentősen javíthatja a játékosok elmerülését és elköteleződését. Mélyebbé teszi játékvilágát, dinamikus játékelemeket vezet be, és kreatív történetmesélést tesz lehetővé.

Ne felejtse el a nappali-éjszaka ciklust a játék egyedi témájához és mechanikájához igazítani, és ne habozzon kísérletezni különböző vizuális és játékhatásokkal, hogy valóban magával ragadó játékot hozzon létre tapasztalat.