Dodajte poticaje za glavni put svoje igre ili sporedne zadatke, s nagrađujućim kolekcionarskim predmetima.

Dodavanje pojačanja i kolekcionarskih predmeta u igru ​​Godot može značajno poboljšati igračevo iskustvo, čineći je privlačnijom i uzbudljivijom. Pojačanja mogu dati posebne sposobnosti ili privremene prednosti igraču, dok kolekcionarski predmeti mogu poslužiti kao nagrade, povećavajući igračev rezultat ili pružajući druge pogodnosti.

Srećom, stvaranje pojačanja i kolekcionarskih predmeta u Godotu je jednostavno, zahvaljujući njegovom intuitivnom skriptnom jeziku i ugrađenom mehanizmu fizike.

Postavljanje igre Godot

Za početak stvorite 2D igru ​​u Godot game engine i postavite lik igrača. Napravite novu scenu i dodajte a CharacterBody2D čvor. Unutar CharacterBody2D, dodati CollisionShape2D s oblikom pravokutnika koji predstavlja igračevo područje sudara i a Sprite2D za prikaz karaktera igrača.

Kôd za ovaj demo dostupan je u GitHub spremište i besplatan je za korištenje pod MIT licencom.

instagram viewer

Sada napišite GDScript kod za rukovanje kretanjem igrača i sudarima s granicama zaslona. Evo kompletnog koda za kretanje igrača:

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
var velocity = Vector2()

if Input.is_action_pressed('ui_right'):
velocity.x += 1

if Input.is_action_pressed('ui_left'):
velocity.x -= 1

if Input.is_action_pressed('ui_down'):
velocity.y += 1

if Input.is_action_pressed('ui_up'):
velocity.y -= 1

velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)

Ovaj kod omogućuje igraču da se pomiče lijevo, desno, gore i dolje pomoću tipki sa strelicama. Također osigurava da se igrač ne kreće prebrzo normalizacijom vektora brzine i primjenom faktora brzine.

Osim toga, stvorite neprijateljske objekte s vlastitim područjima sudara i spriteovima. Za rukovanje kretanjem neprijatelja, možete koristiti sličan _fizički_proces funkcionirati kao igrač.

Stvaranje kolekcionarskih predmeta

Kolekcionarski predmeti neophodni su u mnogim igrama, a česta vrsta su novčići. Napravite kolekcionarski novčić koji povećava igračev rezultat za 20 bodova kada se sakupi.

Prvo stvorite novu scenu i dodajte Područje2D node kao kolekcionarski novčić. Unutar Područje2D, dodati CollisionShape2D s oblikom kruga koji predstavlja područje sudara i a Sprite2D prikazati novčić.

Zatim dodajte sljedeći GDScript kod skripti playera:

extends CharacterBody2D

var score = 0

func _on_area_2d_body_entered(body):
get_parent().get_node("Collectibles").queue_free()
score += 20

Ovaj kod koristi _na_području_2d_uneseno_tijelo signal za otkrivanje kada lik igrača uđe u područje sudara kolekcionarskog novčića. Ako otkrije lik igrača, oni skupljaju novčić (poziv na queue_free() uklanja ga sa scene) i povećava njihov rezultat za 20 bodova.

Stvaranje pojačanja

Pojačanja mogu dodati uzbuđenje vašoj igri pružajući igraču privremene prednosti ili sposobnosti. Stvorite pojačanje koje aktivira mjerač vremena od 10 sekundi kada se prikupi. Ako igrač dotakne neprijatelja unutar tog vremena, uništit će ga.

Da biste stvorili pojačanje, napravite novu scenu i dodajte Područje2D čvor. Unutar Područje2D, dodati CollisionShape2D s oblikom pravokutnika i a Sprite2D za prikaz napajanja.

Sada dodajte sljedeći kod u skriptu vašeg playera:

extends CharacterBody2D

var timer_duration = 10
var power_up_active = false

func _on_powerups_body_entered(body):
get_parent().get_node("Powerups").queue_free()
power_up_active = true

# Start the timer
await get_tree().create_timer(10.0).timeout
power_up_active = false

func _on_enemy_body_entered(body):
if power_up_active:
get_parent().get_node("Enemy").queue_free()
else:
queue_free()

Ovaj kod koristi _on_powerups_body_entered signal za otkrivanje kada lik igrača skupi snagu. Kada to učine, uklanja pojačanje sa scene i postavlja uključivanje_aktivno varijabla u istinito.

Funkcija konačno pokreće mjerač vremena pomoću čekati i stvoriti_timer, u trajanju od 10 sekundi. Za to vrijeme, ako lik igrača dotakne neprijatelja, uništit će ga.

Prikaz prikupljenih kolekcionarskih predmeta

Prikaz broja kolekcionarskih predmeta koje je igrač prikupio može dodati osjećaj postignuća i napretka. Da biste to učinili, počnite stvaranjem Označiti čvor i postavite ga u gornji lijevi kut zaslona.

Zatim dodajte sljedeći GDScript kod za ažuriranje teksta oznake kad god igrač skupi kolekcionarski predmet:

extends Label

func _ready():
self.text = "Collectibles: 0"

Na skripti Player.gd:

extends CharacterBody2D

var bar

func _ready():
bar = get_parent().get_node("Label")

func _physics_process(delta):
bar.text = "Collectibles: " + str(score / 20)

Ovaj kod ažurira tekst oznake s brojem dobivenih kolekcionarskih predmeta, koji možete izračunati dijeljenjem rezultata igrača s 20.

Uključujući dodatne značajke

Postoje razne druge značajke koje možete dodati svom sustavu pojačanja i kolekcionarskih predmeta kako biste dodatno poboljšali svoju igru. Evo nekoliko ideja:

Višestruke razine pojačanja

Umjesto samo jedne vrste pojačanja, možete uvesti različite razine pojačanja koja daju sve snažnije sposobnosti. Na primjer, možete nadograditi osnovno povećanje brzine u pojačanje super brzine koje čini igrača još bržim.

Kombinirana pojačanja

Stvorite kombinacije pojačanja koja nude jedinstvene i moćne učinke kada se skupe zajedno. Potaknite igrače da osmisle strategiju i eksperimentiraju s različitim kombinacijama pojačanja za maksimalnu prednost.

Ograničenje pojačanja

Implementirajte hlađenje ili ograničite koliko često igrač može prikupiti određeno pojačanje. Ovo dodaje element donošenja odluka za igrača, budući da mora odabrati pravi trenutak za aktiviranje pojačanja.

Kolekcionarske sorte

Dizajnirajte različite vrste kolekcionarskih predmeta s različitim nagradama. Neki kolekcionarski predmeti mogu pružiti dodatne živote, privremena poboljšanja ili otključati posebne značajke vaša platformska igra.

Najbolje prakse za implementaciju pojačanja i kolekcionarskih predmeta

Prilikom implementacije pojačanja i kolekcionarskih predmeta u igri Godot, razmotrite sljedeće najbolje prakse:

Testiranje ravnoteže i igre

Opsežno testirajte svoja pojačanja i kolekcionarske predmete kako biste bili sigurni da ne stvaraju neravnoteže u igri. Prilagodite učinke i nagrade kako biste igračima pružili pošteno i ugodno iskustvo.

Vizualne i audio povratne informacije

Koristite jasne i vizualno privlačne ikone ili duhove za predstavljanje pojačanja i kolekcionarskih predmeta. Dodatno, uključite odgovarajuće zvučni efekti bez autorskih prava kako bi pružili zadovoljavajuće povratne informacije kada ih igrači prikupe.

Korisničko sučelje (UI)

Dizajnirajte čisto i intuitivno korisničko sučelje koje prikazuje relevantne informacije o pojačanjima i kolekcionarskim predmetima. Prikažite preostalo vrijeme za aktivna pojačanja, broj prikupljenih kolekcionarskih predmeta i sve druge relevantne detalje.

Dosljednost

Osigurajte da su pojačanja i kolekcionarski predmeti u skladu s cjelokupnom temom i mehanikom vaše igre. Dosljednost u dizajnu i implementaciji pomaže u održavanju koherentnog iskustva igranja.

Spremi i učitaj

Ako vaša igra uključuje pojačanja ili kolekcionarske predmete koji traju kroz sesije igre, implementirajte sustav spremanja i učitavanja kako biste zadržali napredak igrača. To osigurava besprijekorno iskustvo i motivira igrače da se vrate igri.

Pridržavajući se ovih najboljih praksi, možete stvoriti dotjeran i privlačan sustav za pojačavanje i sakupljanje koji obogaćuje igranje vaše igre Godot, čineći je ugodnijom za igrače.

Učinite Godot igre privlačnijim uz pojačanja i kolekcionarske predmete

Dodavanje pojačanja i kolekcionarskih predmeta vašoj igri Godot može značajno povećati njezin angažman i mogućnost ponovnog igranja. Pojačanja daju igračima uzbudljive i privremene prednosti.

Pažljivim osmišljavanjem i implementacijom pojačanja i kolekcionarskih predmeta, možete stvoriti impresivnije i ugodnije iskustvo igranja za svoje igrače. Fleksibilnost i jednostavnost Godota olakšavaju razvojnim programerima igara stvaranje privlačnih pojačanja i kolekcionarskih predmeta koji poboljšavaju mehaniku njihove igre i užitak.