Pridėkite atmosferą ir unikalią žaidimo mechaniką, kai kyla ir leidžiasi saulė.

Dienos ir nakties ciklas gali pridėti įtraukiančio elemento į jūsų žaidimus, suteikti vaizdų įvairovės ir sukurti įdomią mechaniką. Tokiuose žaidimuose kaip „Minecraft“, „Animal Crossing“ ir „Don't Starve“ ši technika naudojama efektyviai, todėl galite apsvarstyti galimybę ją įtraukti į savo žaidimus, ypač tuos, kuriuose yra realaus laiko elementas.

Laimei, „Godot 4“ dienos ir nakties ciklą pasiekti lengviau nei bet kada anksčiau.

„Godot“ žaidimo nustatymas

Prieš pasinerdami į dienos ir nakties ciklo įgyvendinimą, sukurkite savo žaidimo pagrindą. Pradėkite kurdami naują 2D projektą „Godot 4“. Nustatykite savo projektą naudodami reikiamus projekto nustatymus.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Dabar sukurkite žaidėjo personažą. Savo scenoje pridėkite a CharacterBody2D. Jo viduje pridėkite a CollisionShape2D su stačiakampio formos ir a Sprite2D. Tai vizualiai pavaizduos jūsų charakterį.

instagram viewer

Norėdami leisti grotuvui judėti, galite naudoti šį GDScript kodą. Pridėkite šį scenarijų prie savo simbolio mazgo:

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)

Šis kodas leis žaidėjui judėti į kairę, dešinę, aukštyn ir žemyn naudojant rodyklių klavišus. Tu taip pat gali pridėti keletą priešų kad jūsų žaidėjas galėtų išsisukti. Naudokite StaticBody2D mazgus šiems priešams ir atitinkamai pakoreguokite jų formas bei pozicijas.

Pridėkite dienos ir nakties ciklo laikmatį

Norėdami sukurti dienos ir nakties ciklą, jums reikia laikmačio, kuris veiktų nuolat, pakaitomis tarp dienos ir nakties fazių. Šis laikmatis bus atsakingas už žaidimo laiko stebėjimą.

Pridėkite laikmačio mazgą prie savo Godot scenos. Tai galite padaryti dešiniuoju pelės mygtuku spustelėdami skydelį Scena ir pasirinkę Pridėti mazgą, o tada ieškoma Laikmatis mazgų bibliotekoje.

Pervardykite laikmačio mazgą į kažką prasmingo, pvz Dienos nakties laikmatis dėl aiškumo. Konfigūruokite laikmačio mazgo ypatybes skydelyje Inspektorius. Tiksliau, nustatykite Laukti Laikas ypatybę į 0 (tai yra pradinė delsa prieš paleidžiant laikmatį) ir patikrinkite Vienas šūvis savybę, kad laikmatis kartotųsi.

Dabar pridėkite GDScript kodą, kuris valdo dienos ir nakties ciklą:

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

Viduje _paruošta funkciją, paleiskite Dienos nakties laikmatis kai scena įkeliama, kad būtų pradėtas dienos ir nakties ciklas. The _on_DayNightTimer_timeout funkcija veiks kiekvieną kartą, kai laikmatis pasieks nulį, tai yra tada, kai ateina laikas pereiti iš dienos į naktį.

Atlikę šiuos veiksmus, turėsite funkcionalų dienos ir nakties laikmatį, kuris perjungia dieną ir naktį, leidžia pridėti dinamiškų žaidimo elementų ir vizualinių pakeitimų į savo Godot žaidimą pagal paros laiką.

Fono pritaikymas dienai ir nakčiai

Kad papildytumėte dienos ir nakties ciklą, jums reikia būdo, kaip vizualiai pavaizduoti perėjimą tarp dienos ir nakties. Galite naudoti įmontuotą ColorRect mazgas, kad sukurtumėte tinkamą foną tiek dienai, tiek nakčiai. Šis metodas leidžia sklandžiau pereiti ir geriau valdyti vaizdus.

Savo Godot scenoje pridėkite a ColorRect mazgas. Šis mazgas bus jūsų fonas, kurio spalva keičiasi, kad atspindėtų dieną ir naktį. Pervardykite ColorRect mazgas į kažką prasmingo, pavyzdžiui BackgroundRect. Padėkite jį kaip fono sluoksnį, užtikrindami, kad jis apimtų visą peržiūros sritį.

Skydelyje Inspektorius nustatykite Spalva pradinę fono spalvą, kuri turėtų būti dienos metu. Pavyzdžiui, galite naudoti Spalva (0,5, 0,5, 0,8) šviesiai mėlynam dienos dangui.

Dabar atnaujinkite savo GDScript kodą, kad jis veiktų su ColorRect mazgas:

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

Atnaujinkite spalvą BackgroundRect mazgas, kad atspindėtų paros laiką. Pavyzdžiui, nustatykite juodą spalvą, kai pereinate prie nakties, kad sukurtumėte tamsų foną. Pereidami į dieną, nustatykite šviesiai mėlyną.

Garso efektai dienos ir nakties ciklui

Garso efektai gali atlikti lemiamą vaidmenį didinant dienos ir nakties ciklo „Godot“ panardinimą ir tikroviškumą. Jie suteikia žaidėjams klausos signalus, todėl perėjimas tarp dienos ir nakties tampa patrauklesnis. Galite lengvai pridėkite garso efektus į savo Godot žaidimą.

Prieš pradėdami įsitikinkite, kad turite garso išteklius (garso failus), kurie atspindi dienos ir nakties garsus. Pavyzdžiui, dieną galite girdėti paukščių čiulbėjimo garsus, o naktį – svirplių ar pelėdos kauksmą.

Savo Godo scenoje pridėkite du AudioStreamPlayer2D mazgus ir tinkamai juos pavadinti. Galite juos pavadinti panašiai $DaytimeSounds ir $NighttimeSounds.

Dabar atnaujinkite GDScript kodą, kad galėtumėte valdyti garso perėjimus tarp dienos ir nakties:

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

Pasibaigus dienos ir nakties laikmačio laikui, šis kodas patikrina, į kurią fazę jis turėtų pereiti, ir leidžia atitinkamus garsus, kad jie atitiktų.

Nedvejodami tinkinkite savo Garso efektai be autorių teisių kad atitiktų jūsų žaidimo temą ir atmosferą. Taip pat galite sluoksniuoti kelis garso takelius arba naudoti garso efektus (reverb, aidas ir kt.), kad sukurtumėte turtingesnę klausos patirtį.

Padarykite savo Godot žaidimus patrauklesnius su dienos ir nakties ciklu

Dienos ir nakties ciklo įgyvendinimas „Godot“ žaidime gali žymiai padidinti žaidėjo įsitraukimą ir įsitraukimą. Tai suteikia žaidimo pasaulio gilumo, dinamiškų žaidimo elementų ir leidžia kūrybiškai pasakoti istorijas.

Nepamirškite pritaikyti dienos ir nakties ciklo pagal unikalią žaidimo temą ir mechaniką, ir nedvejokite eksperimentuoti su skirtingais vaizdo ir žaidimo efektais, kad sukurtumėte tikrai patrauklų žaidimą patirtį.