Lisage atmosfääri ja ainulaadset mängumehaanikat päikese tõusu ja langusega.

Päeva-öö tsükkel võib lisada teie mängudele kaasahaarava elemendi, muuta visuaalid mitmekesisemaks ja luua huvitavat mehaanikat. Sellised mängud nagu Minecraft, Animal Crossing ja Don’t Starve kasutavad seda tehnikat tõhusalt ning võiksite kaaluda selle lisamist oma mängudesse, eriti nendesse, millel on reaalajas element.

Õnneks on Godot 4-s päev-öö tsükli saavutamine lihtsam kui kunagi varem.

Godot' mängu seadistamine

Enne päeva-öö tsükli juurutamist looge oma mängu alus. Alustage Godot 4-s uue 2D-projekti loomisega. Seadistage oma projekt vajalike projektiseadetega.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Nüüd looge mängija tegelane. Lisage oma stseenis a CharacterBody2D. Selle sisse lisage a Kokkupõrkekuju2D ristküliku kujuga ja a Sprite2D. See esindab teie tegelast visuaalselt.

Mängija liikumise lubamiseks võite kasutada järgmist GDScripti koodi. Kinnitage see skript oma märgisõlmele:

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)

See kood võimaldab mängijal liikuda nooleklahvide abil vasakule, paremale, üles ja alla. Sa saad ka lisage mõned vaenlased et teie mängija saaks kõrvale hiilida. Kasuta StaticBody2D sõlmed nende vaenlaste jaoks ning kohandada vastavalt nende kuju ja asukohti.

Lisage päeva- ja öötsükli taimer

Päeva-öö tsükli loomiseks vajate taimerit, mis töötab pidevalt, vaheldumisi päeva- ja ööfaaside vahel. See taimer vastutab teie mängus aja möödumise jälgimise eest.

Lisage oma Godoti stseenile Taimeri sõlm. Seda saate teha paremklõpsates paneelil Stseen ja valides Lisa sõlmja seejärel otsides Taimer sõlme teegis.

Nimetage Taimeri sõlm ümber millekski tähenduslikuks, näiteks DayNight Timer selguse huvides. Konfigureerige Taimeri sõlme atribuudid paneelil Inspektor. Täpsemalt määrake Oodake aeg atribuudi väärtuseks 0 (see on esialgne viivitus enne taimeri käivitumist) ja kontrollige Üks lask omadus, nii et taimer kordab.

Nüüd lisage GDScripti kood, mis haldab päeva-öö tsüklit:

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

Aastal _valmis funktsioon, käivitage DayNight Timer kui stseen laaditakse, et käivitada päev-öö tsükkel. The _on_DayNightTimer_timeout funktsioon käivitub iga kord, kui taimer jõuab nulli, mis on siis, kui on aeg päeval ja ööl ümber lülituda.

Järgides neid samme, saate funktsionaalse päeva-öötaimeri, mis lülitub päeval ja öösel, võimaldab teil lisada oma Godoti mängule dünaamilisi mänguelemente ja visuaalseid muudatusi vastavalt kellaajale.

Tausta kohandamine päeva ja öö jaoks

Päeva-öö tsükli täiendamiseks vajate viisi, kuidas visuaalselt kujutada üleminekuid päeva ja öö vahel. Võite kasutada sisseehitatud ColorRect sõlme, et luua sobiv taust nii päeval kui öösel. See lähenemine võimaldab sujuvamaid üleminekuid ja suuremat kontrolli visuaalide üle.

Lisage oma Godot stseenis a ColorRect sõlm. See sõlm toimib teie taustana, mis muudab värvi, et tähistada päeva ja ööd. Nimeta ümber ColorRect sõlm millegi tähendusliku juurde BackgroundRect. Asetage see taustakihiks, tagades, et see katab kogu vaateava.

Määrake paneelil Inspektor Värv algse taustavärviga, mis peaks tähistama päevast aega. Näiteks võite kasutada Värv (0,5, 0,5, 0,8) helesinise päevataeva jaoks.

Nüüd värskendage oma GDScripti koodi, et see töötaks koos ColorRect sõlm:

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

Värskendage värvi BackgroundRect sõlm, et kajastada kellaaega. Näiteks määrake see öörežiimile üleminekul mustaks, luues tumeda tausta. Päevasele üleminekul seadke see helesiniseks.

Heliefektid päeva-öö tsükli jaoks

Heliefektid võivad mängida otsustavat rolli teie päeva-öö tsükli keelekümbluse ja realistlikkuse suurendamisel Godot's. Need annavad mängijatele kuuldavaid näpunäiteid, muutes ülemineku päeva ja öö vahel köitvamaks. Saate lihtsalt lisage oma Godoti mängule heliefekte.

Enne alustamist veenduge, et teil on päeva- ja ööheli esindavad heliressursid (helifailid). Näiteks võib päeval kuulda linnusäutsumist ja öösel kilkeid või öökulli hüüdeid.

Lisage oma Godot stseenis kaks AudioStreamPlayer2D sõlmed ja nimetage need sobivalt. Võite neile nimetada midagi sarnast $DaytimeSounds ja $NighttimeSounds.

Nüüd värskendage GDScripti koodi, et hallata heli üleminekuid päeva ja öö vahel:

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

Kui päev-öine taimer aegub, kontrollib see kood, millisesse faasi peaks üle minema, ja esitab sobivad helid.

Kohandage oma autoriõiguseta heliefektid et see sobiks teie mängu teema ja atmosfääriga. Rikkalikuma kuulmiskogemuse loomiseks saate ka mitut helirada kihistada või kasutada heliefekte (reverb, kaja jne).

Muutke oma Godoti mängud päeva-öö tsükliga kaasahaaravamaks

Päev-öö tsükli rakendamine oma Godoti mängus võib märkimisväärselt suurendada mängijate keelekümblust ja kaasatust. See lisab teie mängumaailmale sügavust, tutvustab dünaamilisi mänguelemente ja võimaldab loovalt jutustada.

Ärge unustage kohandada päeva-öö tsüklit vastavalt oma mängu ainulaadsele teemale ja mehaanikale ning ärge kõhelge katsetada erinevate visuaalsete ja mänguefektidega, et luua tõeliselt kütkestav mäng kogemusi.