Odkrijte, kako svojemu igranju dodati nepredvidljiv element.
Pri razvoju iger lahko elementi naključnosti in nepredvidljivosti močno prispevajo k splošni izkušnji igranja. Poseben način za uvedbo takega elementa so naključni premikajoči se predmeti, ki dodajo dodatno plast interakcije in izziva.
Če delate z Godotom, lahko ta učinek dosežete z GDScriptom, Godotovim izvornim skriptnim jezikom.
Nastavitev igre Godot
Preden začnete, nastavite osnovno 2D igro igralni motor Godot. Ustvarite novo 2D sceno in dodajte a CharacterBody2D vozlišče za lik igralca. The CharacterBody2D vozlišče je glavni element za predstavitev likov, ki se lahko premikajo in komunicirajo s svojim okoljem.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Liku igralca dodajte dve podrejeni vozlišči: a CollisionShape2D s pravokotno obliko in a Sprite2D za grafično predstavitev igralca.
Če želite liku dodati mobilnost, lahko uporabite naslednjo kodo GDScript:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Definiraj spremenljivko, hitrost, za hitrost gibanja vašega igralca. The _physics_process (delta) funkcija nadzoruje gibanje lika kot odgovor na vnose igralca. Normalizirajte hitrost in smer lika, da zagotovite dosledno gibanje ne glede na smer.
Ustvarjanje statičnih objektov s StaticBody2D
Nato ustvarite predmete, s katerimi lahko igralec komunicira. Naslednji primer prikazuje ustvarjanje statičnega objekta z uporabo Statično telo2D vozlišče:
extends StaticBody2D
func _ready():
var collision_shape = CollisionShape2D.new()
collision_shape.shape = RectangleShape2D.new()
add_child(collision_shape)
Dodajanje algoritma naključnega gibanja za statične objekte
Zdaj, ko so vaši statični predmeti pripravljeni, je čas, da svoji igri dodate naključnost. Če želite to narediti, lahko uporabite preprost algoritem naključnega gibanja:
extends StaticBody2D
var speed = 100
var value = randf_range(-1, 1)
var direction = Vector2(value, value).normalized()
func _physics_process(delta):
position += direction * speed * delta
Določite hitrost vašega statičnega objekta. Ustvarite tudi smer Vector2 in jo inicializirajte z naključnimi vrednostmi med -1 in 1 za obe osi.
V _physics_process (delta) funkcija, poveča položaj predmeta za zmnožek njegove smeri, hitrosti in časovne delte, zaradi česar se premakne v smeri z dano hitrostjo.
Naključni položaji in trajektorije za statične objekte
Naključnost in nepredvidljivost lahko povečate tako, da ne spreminjate le hitrosti in smeri predmetov, temveč tudi njihove začetne položaje in trajektorije.
extends StaticBody2D
var speed = randf_range(50, 150)
var value = randf_range(-1, 1)
var direction = Vector2(value, value).normalized()func _ready():
var val1 = randf_range(0, get_viewport().size.x)
var val2 = randf_range(0, get_viewport().size.y)
position = Vector2(val1, val2)
func _physics_process(delta):
position += direction * speed * delta
Tu je hitrost naključna vrednost med 50 in 150. Začetni položaj predmeta je naključno določen znotraj velikosti vidnega polja v _pripravljen() funkcijo in položaj predmeta se posodobi v _physics_process (delta) deluje tako kot prej.
Prilagoditev hitrosti, smeri in naključnosti
Z manipulacijo hitrosti, smeri in naključnosti gibanja statičnih predmetov lahko oblikujete bolj interaktivno in privlačno igranje. Te kontrolnike lahko ustvarite s pomočjo GDScript:
extends StaticBody2D
var speed = randf_range(50, 150)
var value = randf_range(-1, 1)
var direction = Vector2(value, value).normalized()
var speed_variation_rate = 0.5
var direction_variation_rate = 0.5func _ready():
var val1 = randf_range(0, get_viewport().size.x)
var val2 = randf_range(0, get_viewport().size.y)
position = Vector2(val1, val2)func _physics_process(delta):
randomize_speed_and_direction()
position += direction * speed * deltafunc randomize_speed_and_direction():
if randf() < speed_variation_rate:
speed = randf_range(50, 150)
if randf() < direction_variation_rate:
direction = Vector2(value, value).normalized()
Dodatne funkcije za vaše naključno premikajoče se predmete
Medtem ko osnovno naključno gibanje vaši igri doda nepredvidljivo dinamiko, obstaja nešteto dodatnih funkcij, ki jih lahko dodate, da še izboljšate svojo igro. Nekateri primeri vključujejo:
Barvna variacija
Podobno kot ste naključno določili hitrost in smer predmetov, lahko naključno določite tudi njihove barve. To lahko vaši igri doda bolj živahen in vizualno privlačen vidik. To lahko storite tako, da spremenite modulirati lastnost sprite.
sprite.modulate = Color(randf(), randf(), randf())
Sprememba velikosti
Naključno spreminjanje velikosti predmetov doda še eno stopnjo težavnosti in nepredvidljivosti. Igralci se bodo morali nenehno prilagajati spreminjajočim se velikostim predmetov. Velikost predmeta lahko spremenite tako, da ga prilagodite lestvica lastnina:
sprite.scale = Vector2(randf_range(0.5, 2.0), randf_range(0.5, 2.0))
Drstenje predmetov
Namesto določenega števila naključnih premikajočih se predmetov bi lahko implementirali sistem, ki ustvarja nove predmete v rednih intervalih ali pod določenimi pogoji. To bi lahko dodalo novo stopnjo težavnosti, saj bo moral igralec prilagoditi svojo strategijo, ko se na zaslonu pojavi več predmetov.
Življenjska doba predmeta
Poleg ustvarjanja novih predmetov lahko nastavite tudi, da se predmeti po določenem času samodejno uničijo. To lahko prepreči, da bi zaslon postal preveč natrpan, in ohranja svežino igranja.
Interakcije
Razmislite o dodajanju posebnih interakcij med igralcem in premikajočimi se predmeti. Na primer, trk z določenimi predmeti lahko poveča igralčev rezultat, spremeni igralčevo hitrost ali celo spremeni okolje igre. Lahko tudi omogočite igralcu, da skoči ko stoji na ploščadi.
Najboljše prakse za dodajanje naključno premikajočih se predmetov
Ko dodajate naključne premikajoče se predmete, je pomembno upoštevati nekaj najboljših praks, da zagotovite dobro uravnoteženo in privlačno igro:
Upoštevanje učinkovitosti
Čeprav je skušnjava dodati čim več predmetov, ne pozabite, da vsak predmet poveča računsko obremenitev motorja igre. Svojo igro vedno preizkusite na ciljni strojni opremi, da zagotovite, da to ne bo negativno vplivalo na zmogljivost.
Uravnoteženje naključnosti in igralnosti
Medtem ko lahko naključni predmeti dodajo zabavno nepredvidljivost, lahko preveč naključnosti povzroči frustracijo. Bodite prepričani, da obsežno testirate, da dosežete pravo ravnovesje med izzivom in užitkom.
Trki in odziv
Zagotovite, da igra ustrezno obravnava trke med igralcem in predmeti. Naključno premikajoči se predmeti lahko povzročijo nepričakovane scenarije trčenja, zato jih načrtujte in temeljito preizkusite.
Vizualna jasnost
Naključno premikajoči se predmeti morajo izstopati iz ozadja in drugih neinteraktivnih elementov. To pomaga igralcem, da hitro razumejo situacijo v igri in ustrezno načrtujejo svoja dejanja. Lahko tudi dodajte zvočne učinke na svoje predmete, da bodo izstopali.
Vpliv naključno premikajočih se predmetov na vašo igro Godot
Naključno premikajoči se predmeti lahko bistveno prispevajo k temu, da bo vaša igra Godot bolj privlačna. Uvedejo element nepredvidljivosti, ki drži igralce na trnih. Vsakič, ko igralec začne igro, ga bo ta pozdravila z drugačno konfiguracijo predmetov, kar bo povečalo možnost ponovnega igranja.
Poleg tega, ker igralci ne morejo predvideti poti premikajočih se predmetov, morajo ostati osredotočeni in odzivni, da lahko krmarijo po okolju igre.