Lisää tunnelmaa ja ainutlaatuista pelimekaniikkaa auringon nousun ja laskun avulla.

Päivä-yö-sykli voi lisätä peleihin mukaansatempaavan elementin, monipuolistaa visuaalista sisältöä ja luoda mielenkiintoista mekaniikkaa. Pelit, kuten Minecraft, Animal Crossing ja Don't Starve, käyttävät tätä tekniikkaa tehokkaasti, ja voit harkita sen lisäämistä omiin peleihin, erityisesti niihin, joissa on reaaliaikainen elementti.

Onneksi Godot 4:ssä päivä-yö-syklin saavuttaminen on helpompaa kuin koskaan.

Godot-pelin perustaminen

Ennen kuin sukellat päivä-yö-syklin toteutukseen, luo pelisi perusta. Aloita luomalla uusi 2D-projekti Godot 4:ssä. Määritä projektisi tarvittavilla projektiasetuksilla.

Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.

Luo nyt pelaajahahmo. Lisää kohtaukseesi a CharacterBody2D. Lisää sen sisään a CollisionShape2D suorakaiteen muotoinen ja a Sprite2D. Tämä edustaa hahmoasi visuaalisesti.

Voit sallia soittimen liikkumisen käyttämällä seuraavaa GDScript-koodia. Liitä tämä skripti hahmosolmuun:

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)

Tämän koodin avulla pelaaja voi liikkua vasemmalle, oikealle, ylös ja alas nuolinäppäimillä. Voit myös lisää vihollisia jotta pelaaja voi väistää. Käyttää StaticBody2D solmut näille vihollisille ja säädä niiden muotoja ja paikkoja vastaavasti.

Lisää ajastin päivä- ja yöjaksolle

Päivä-yö-jakson luomiseksi tarvitset ajastimen, joka käy jatkuvasti vuorotellen päivä- ja yövaiheiden välillä. Tämä ajastin on vastuussa ajan kulumisen seuraamisesta pelissäsi.

Lisää Ajastinsolmu Godot-kohtaukseen. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella Scene-paneelia ja valitsemalla Lisää solmuja etsi sitten Ajastin solmukirjastossa.

Nimeä ajastinsolmu uudelleen jollakin merkityksellisellä tavalla, kuten DayNight Timer Selvyydeksi. Määritä ajastinsolmun ominaisuudet Tarkastaja-paneelissa. Aseta erityisesti Odotusaika ominaisuus arvoon 0 (tämä on alkuviive ennen ajastimen käynnistymistä) ja tarkista Yksi laukaus ominaisuutta niin, että ajastin toistaa.

Lisää nyt GDScript-koodi, joka hallitsee päivä-yö-sykliä:

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

Vuonna _valmis toiminto, käynnistä DayNight Timer kun kohtaus latautuu käynnistääkseen päivä-yö-syklin. The _on_DayNightTimer_timeout toiminto toimii aina, kun ajastin saavuttaa nollan, jolloin on aika siirtyä päivän ja yön välillä.

Seuraamalla näitä vaiheita saat toimivan päivä-yö-ajastimen, joka vaihtaa päivän ja yön välillä, jonka avulla voit lisätä dynaamisia pelielementtejä ja visuaalisia muutoksia Godot-peliisi kellonajan mukaan.

Taustan mukauttaminen päivälle ja yölle

Täydentääksesi päivä-yö-sykliäsi, tarvitset tavan esittää visuaalisesti päivän ja yön väliset siirtymät. Voit käyttää sisäänrakennettua ColorRect solmu luoda sopiva tausta sekä päivälle että yölle. Tämä lähestymistapa mahdollistaa sujuvammat siirtymät ja paremman visuaalisen hallinnan.

Lisää Godot-kohtaukseen a ColorRect solmu. Tämä solmu toimii taustana, joka vaihtaa väriä edustamaan päivää ja yötä. Nimeä uudelleen ColorRect solmu johonkin merkitykselliseen, kuten BackgroundRect. Aseta se taustatasoksi varmistaen, että se peittää koko näkymän.

Määritä Tarkastaja-paneelissa Väri alkuperäistä taustaväriä, jonka pitäisi edustaa päiväsaikaa. Voit esimerkiksi käyttää Väri (0,5, 0,5, 0,8) vaaleansiniselle päivätaivaalle.

Päivitä nyt GDScript-koodisi toimimaan ColorRect solmu:

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

Päivitä väri BackgroundRect solmu vastaamaan vuorokaudenaikaa. Aseta se esimerkiksi mustaksi siirtyessäsi yökäyttöön ja luo tumman taustan. Kun siirryt päiväkäyttöön, aseta se vaaleansiniseksi.

Äänitehosteet päivä-yö-sykliin

Äänitehosteilla voi olla ratkaiseva rooli päivä-yö-syklisi uppoamisessa ja realistisuuden parantamisessa Godotissa. Ne tarjoavat pelaajille kuulomerkkejä, mikä tekee siirtymisestä päivän ja yön välillä kiehtovampaa. Voit helposti lisää äänitehosteita Godot-peliisi.

Ennen kuin aloitat, varmista, että sinulla on ääniresurssit (äänitiedostot), jotka edustavat päivä- ja yöääniä. Saatat esimerkiksi kuulla lintujen sirkutusta päivällä ja sirkat tai pöllön huutoa yöllä.

Lisää Godot-kohtaukseen kaksi AudioStreamPlayer2D solmut ja nimeä ne asianmukaisesti. Voit nimetä ne jollain tavalla $DaytimeSounds ja $NighttimeSounds.

Päivitä nyt GDScript-koodi hallitaksesi äänen siirtymiä päivän ja yön välillä:

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

Kun päivä-yö-ajastin aikakatkaisee, tämä koodi tarkistaa, mihin vaiheeseen sen pitäisi siirtyä, ja toistaa sopivat äänet.

Voit vapaasti muokata omaa tekijänoikeusvapaat äänitehosteet vastaamaan pelisi teemaa ja tunnelmaa. Voit myös kerrostaa useita ääniraitoja tai käyttää äänitehosteita (kaiku, kaiku jne.) luodaksesi rikkaamman kuulokokemuksen.

Tee Godot-peleistäsi kiinnostavampia päivä-yö-syklillä

Päivä-yö-syklin toteuttaminen Godot-pelissäsi voi merkittävästi parantaa pelaajien uppoamista ja sitoutumista. Se lisää pelimaailmaasi syvyyttä, tuo dynaamisia pelielementtejä ja mahdollistaa luovan tarinankerronta.

Muista räätälöidä päivä-yö -sykli pelisi ainutlaatuisen teeman ja mekaniikan mukaan, äläkä epäröi kokeilla erilaisia ​​visuaalisia ja pelitehosteita luodaksesi todella kiehtovan pelin kokea.