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:

instagram viewer
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)

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.5

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):
randomize_speed_and_direction()
position += direction * speed * delta

func 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ä.