Tutustu kuinka voit lisätä arvaamaton elementti peliisi.
Pelikehityksessä satunnaisuuden ja arvaamattomuuden elementit voivat vaikuttaa suuresti yleiseen pelikokemukseen. Yksi erityinen tapa esitellä tällainen elementti on satunnaisten liikkuvien kohteiden avulla, jotka lisäävät ylimääräistä vuorovaikutusta ja haastetta.
Jos työskentelet Godotin kanssa, voit saavuttaa tämän vaikutuksen käyttämällä GDScriptiä, Godotin alkuperäistä kirjoituskieltä.
Godot-pelisi perustaminen
Ennen kuin aloitat, määritä perus 2D-pelinäkymä Godot-pelimoottori. Luo uusi 2D-näkymä ja lisää a CharacterBody2D solmu pelaajahahmolle. The CharacterBody2D solmu on pääelementti, joka edustaa hahmoja, jotka voivat liikkua ja olla vuorovaikutuksessa ympäristönsä kanssa.
Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.
Lisää pelaajahahmoon kaksi lapsisolmua: a CollisionShape2D suorakaiteen muotoinen, ja a Sprite2D soittimen graafista esitystä varten.
Voit lisätä hahmoon liikkuvuutta käyttämällä seuraavaa GDScript-koodia:
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)
Määrittele muuttuja, nopeus, soittimesi liikenopeudelle. The _fysiikka_prosessi (delta) toiminto ohjaa hahmon liikettä vasteena pelaajan syötteisiin. Normalisoi hahmon nopeus ja suunta varmistaaksesi tasaisen liikkeen suunnasta riippumatta.
Staattisten objektien luominen StaticBody2D: llä
Luo seuraavaksi esineitä, joiden kanssa pelaaja voi olla vuorovaikutuksessa. Seuraava esimerkki havainnollistaa staattisen objektin luomista käyttämällä StaticBody2D solmu:
extends StaticBody2D
func _ready():
var collision_shape = CollisionShape2D.new()
collision_shape.shape = RectangleShape2D.new()
add_child(collision_shape)
Satunnaisen liikealgoritmin lisääminen staattisille objekteille
Nyt kun staattiset esineesi ovat valmiita, on aika lisätä peliisi satunnaisuutta. Voit tehdä tämän käyttämällä yksinkertaista satunnaisliikealgoritmia:
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
Määritä staattisen kohteen nopeus. Luo myös Vector2-suunta ja alusta se satunnaisilla arvoilla välillä -1 ja 1 molemmille akseleille.
Vuonna _fysiikka_prosessi (delta) funktio, lisää objektin sijaintia sen suunnan, nopeuden ja aikadeltan tulolla, jolloin se liikkuu suuntaan annetulla nopeudella.
Staattisten objektien satunnaiset sijainnit ja liikeradat
Voit lisätä satunnaisuutta ja arvaamattomuutta muuttamalla paitsi kohteiden nopeutta ja suuntaa, myös niiden alkusijainteja ja lentoratoja.
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
Tässä nopeus on satunnainen arvo välillä 50 ja 150. Objektin alkusijainti määräytyy satunnaisesti kuvaportin koon sisällä _valmis() toiminto ja kohteen sijainti päivitetään _fysiikka_prosessi (delta) toimivat kuten ennenkin.
Nopeuden, suunnan ja satunnaisuuden säätäminen
Voit suunnitella interaktiivisemman ja kiinnostavamman pelin muokkaamalla staattisten kohteiden liikkeen nopeutta, suuntaa ja satunnaisuutta. Voit luoda nämä säätimet GDScriptillä:
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()
Lisäominaisuudet satunnaisesti liikkuville objekteillesi
Vaikka perussatunnainen liike lisää arvaamatonta dynamiikkaa peliisi, voit lisätä lukemattomia lisäominaisuuksia parantaaksesi peliäsi entisestään. Joitakin esimerkkejä ovat:
Värin vaihtelu
Samalla tavalla kuin satunnaisoit kohteiden nopeuden ja suunnan, voit myös satunnaistaa niiden värit. Tämä voi lisätä peliisi elävämmän ja visuaalisesti houkuttelevamman näkökohdan. Voit tehdä tämän muuttamalla moduloida spriten omaisuutta.
sprite.modulate = Color(randf(), randf(), randf())
Koko vaihtelu
Kohteiden koon muuttaminen satunnaisesti lisää vaikeusastetta ja arvaamattomuutta. Pelaajien on jatkuvasti mukauduttava esineiden muuttuviin kokoihin. Voit muuttaa kohteen kokoa säätämällä sitä mittakaavassa omaisuus:
sprite.scale = Vector2(randf_range(0.5, 2.0), randf_range(0.5, 2.0))
Objektin kuteminen
Sen sijaan, että sinulla olisi kiinteä määrä satunnaisesti liikkuvia objekteja, voit toteuttaa järjestelmän, joka synnyttää uusia objekteja säännöllisin väliajoin tai tietyissä olosuhteissa. Tämä voi lisätä uuden vaikeustasoa, koska pelaajan on mukautettava strategiaansa, kun näytölle tulee lisää esineitä.
Objektin käyttöikä
Uusien kohteiden synnyttämisen lisäksi voit myös saada objektit tuhoamaan itsensä automaattisesti tietyn ajan kuluttua. Tämä voi estää näyttöä sotkeutumasta liikaa ja pitää pelin tuoreena.
Vuorovaikutuksia
Harkitse tiettyjen vuorovaikutusten lisäämistä soittimen ja liikkuvien kohteiden välille. Esimerkiksi törmäys tiettyihin esineisiin voi lisätä pelaajan pisteitä, muuttaa pelaajan nopeutta tai jopa muuttaa peliympäristöä. Voit myös anna pelaajan hypätä lavalla seistessä.
Parhaat käytännöt satunnaisten liikkuvien objektien lisäämiseen
Kun lisäät satunnaisia liikkuvia objekteja, on tärkeää ottaa huomioon muutamia parhaita käytäntöjä tasapainoisen ja mukaansatempaavan pelin varmistamiseksi:
Suorituskykynäkökohdat
Vaikka on houkuttelevaa lisätä mahdollisimman monta objektia, muista, että jokainen objekti lisää pelimoottorin laskentakuormaa. Testaa aina pelisi kohdelaitteistolla varmistaaksesi, että suorituskyky ei vaikuta negatiivisesti.
Tasapainottaa satunnaisuutta ja pelattavuutta
Vaikka satunnaiset esineet voivat lisätä hauskaa arvaamattomuutta, liiallinen satunnaisuus voi johtaa turhautumiseen. Muista testata laajasti löytääksesi oikean tasapainon haasteen ja nautinnon välillä.
Törmäykset ja reagointi
Varmista, että peli käsittelee pelaajan ja esineiden väliset törmäykset asianmukaisesti. Satunnaisesti liikkuvat esineet voivat aiheuttaa odottamattomia törmäysskenaarioita, joten suunnittele ne ja testaa huolellisesti.
Visuaalinen selkeys
Satunnaisesti liikkuvien kohteiden tulee erottua taustasta ja muista ei-vuorovaikutteisista elementeistä. Tämä auttaa pelaajia ymmärtämään nopeasti pelitilanteen ja suunnittelemaan toimintansa sen mukaan. Voit myös lisää äänitehosteita esineisiin, jotta ne erottuvat joukosta.
Satunnaisten liikkuvien esineiden vaikutus Godot-peliisi
Satunnaiset liikkuvat esineet voivat auttaa merkittävästi tekemään Godot-pelistäsi kiinnostavamman. Ne tuovat mukanaan arvaamattomuuden elementin, joka pitää pelaajat varpaillaan. Joka kerta kun pelaaja aloittaa pelin, se tervehtii häntä erilaisilla esinekokoonpanoilla, mikä lisää pelin uudelleenpelattavuutta.
Lisäksi, koska pelaajat eivät voi ennustaa liikkuvien esineiden reittiä, heidän on pysyttävä keskittyneenä ja reagoivana navigoidakseen peliympäristössä.