Pievienojiet atmosfēru un unikālu spēles mehāniku ar saules lēkšanu un krišanu.

Dienas-nakts cikls var pievienot jūsu spēlēm iespaidīgu elementu, dažādot vizuālos attēlus un radīt interesantu mehāniku. Tādas spēles kā Minecraft, Animal Crossing un Don’t Starve izmanto šo paņēmienu efektīvi, un jūs varētu apsvērt iespēju to pievienot savām spēlēm, jo ​​īpaši tām, kurās ir reāllaika elements.

Par laimi, Godot 4 cikla dienas-nakts sasniegšana ir vienkāršāka nekā jebkad agrāk.

Godota spēles iestatīšana

Pirms iedziļināties cikla dienas-nakts ieviešanā, izveidojiet pamatu savai spēlei. Sāciet, izveidojot jaunu 2D projektu pakalpojumā Godot 4. Iestatiet projektu ar nepieciešamajiem projekta iestatījumiem.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Tagad izveidojiet spēlētāja varoni. Savā ainā pievienojiet a CharacterBody2D. Tā iekšpusē pievienojiet a CollisionShape2D ar taisnstūra formu un a Sprite2D. Tas vizuāli attēlos jūsu raksturu.

instagram viewer

Lai ļautu atskaņotājam pārvietoties, varat izmantot šādu GDScript kodu. Pievienojiet šo skriptu savam rakstzīmju mezglam:

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 kods ļaus spēlētājam pārvietoties pa kreisi, pa labi, uz augšu un uz leju, izmantojot bulttaustiņus. Jūs varat arī pievienojiet dažus ienaidniekus lai jūsu spēlētājs varētu izvairīties. Izmantot StaticBody2D mezglus šiem ienaidniekiem un attiecīgi pielāgojiet to formas un pozīcijas.

Pievienojiet taimeri dienas un nakts ciklam

Lai izveidotu dienas-nakts ciklu, ir nepieciešams taimeris, kas darbojas nepārtraukti, mainot dienas un nakts fāzes. Šis taimeris būs atbildīgs par spēles laika izsekošanu.

Pievienojiet savai Godo ainai taimera mezglu. To var izdarīt, panelī Scene noklikšķinot ar peles labo pogu un izvēloties Pievienot mezglu, un pēc tam meklē Taimeris mezglu bibliotēkā.

Pārdēvējiet taimera mezglu uz kaut ko nozīmīgu, piemēram, Dienasnakts taimeris skaidrības labad. Konfigurējiet taimera mezgla rekvizītus panelī Inspektors. Konkrēti, iestatiet Gaidīšanas laiks rekvizītu uz 0 (tā ir sākotnējā aizkave pirms taimera palaišanas) un pārbaudiet Viens kadrs rekvizītu, lai taimeris atkārtojas.

Tagad pievienojiet GDScript kodu, kas pārvalda dienas-nakts ciklu:

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

Iekš _gatavs funkciju, palaidiet Dienasnakts taimeris kad aina tiek ielādēta, lai sāktu dienas-nakts ciklu. The _on_DayNightTimer_timeout funkcija darbosies katru reizi, kad taimeris sasniegs nulli, proti, ir pienācis laiks pārslēgties no dienas uz nakti.

Veicot šīs darbības, jums būs funkcionāls dienas-nakts taimeris, kas pārslēdzas no dienas uz nakti, ļaujot pievienot dinamiskus spēles elementus un vizuālas izmaiņas savai Godot spēlei, pamatojoties uz diennakts laiku.

Fona pielāgošana dienai un naktij

Lai papildinātu dienas-nakts ciklu, jums ir nepieciešams veids, kā vizuāli attēlot pārejas starp dienu un nakti. Jūs varat izmantot iebūvēto ColorRect mezglu, lai izveidotu piemērotu fonu gan dienai, gan naktij. Šī pieeja nodrošina vienmērīgākas pārejas un lielāku kontroli pār vizuālajiem materiāliem.

Savā Godo ainā pievienojiet a ColorRect mezgls. Šis mezgls kalpos kā fons, kas maina krāsu, lai attēlotu dienu un nakti. Pārdēvēt ColorRect mezgls uz kaut ko nozīmīgu, piemēram BackgroundRect. Novietojiet to kā fona slāni, nodrošinot, ka tas aptver visu skata logu.

Inspektora panelī iestatiet Krāsa īpašību sākotnējai fona krāsai, kurai ir jāatspoguļo dienas laiks. Piemēram, jūs varat izmantot Krāsa (0,5, 0,5, 0,8) gaiši zilām dienas debesīm.

Tagad atjauniniet savu GDScript kodu, lai tas darbotos ar ColorRect mezgls:

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

Atjauniniet krāsu BackgroundRect mezgls, lai atspoguļotu diennakts laiku. Piemēram, pārejot uz nakti, iestatiet to uz melnu, izveidojot tumšu fonu. Pārejot uz dienu, iestatiet to gaiši zilā krāsā.

Skaņas efekti ciklam Diena-Nakts

Skaņas efektiem var būt izšķiroša nozīme, lai uzlabotu dienas-nakts cikla iedziļināšanos un reālismu Godo. Tie sniedz spēlētājiem dzirdes signālus, padarot pāreju starp dienu un nakti valdzinošāku. Jūs varat viegli pievienojiet skaņas efektus savai Godot spēlei.

Pirms sākat, pārliecinieties, vai jums ir audio resursi (skaņas faili), kas atspoguļo dienas un nakts skaņas. Piemēram, dienā var atskanēt putnu čivināšana, bet naktī – kriketa vai pūces dūkoņa.

Savā Godo ainā pievienojiet divus AudioStreamPlayer2D mezglus un nosauciet tos atbilstoši. Jūs varat tos nosaukt par kaut ko līdzīgu $DaytimeSounds un $NighttimeSounds.

Tagad atjauniniet GDScript kodu, lai pārvaldītu skaņas pārejas starp dienu un nakti:

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

Kad dienas-nakts taimera taimauts beidzas, šis kods pārbauda, ​​uz kuru fāzi tam jāpāriet, un atskaņo atbilstošas ​​skaņas.

Jūtieties brīvi pielāgot savu autortiesībām brīvi skaņas efekti lai atbilstu jūsu spēles tēmai un atmosfērai. Varat arī slāņot vairākus audio ierakstus vai izmantot audio efektus (reverb, atbalss utt.), lai radītu bagātīgāku dzirdes pieredzi.

Padariet savas Godot spēles saistošākas ar dienas-nakts ciklu

Dienas-nakts cikla ieviešana Godot spēlē var ievērojami uzlabot spēlētāju iedziļināšanos un iesaistīšanos. Tas piešķir jūsu spēļu pasaulei dziļumu, ievieš dinamiskus spēles elementus un ļauj radoši stāstīt stāstus.

Neaizmirstiet pielāgot dienas-nakts ciklu savas spēles unikālajai tēmai un mehānikai, un nevilcinieties eksperimentēt ar dažādiem vizuāliem un spēles efektiem, lai radītu patiesi valdzinošu spēli pieredze.