Ilmentymien luonti

Johdanto

Yksittäisen skenen luonti ja solmujen lisääminen siihen voi toimia pienelle projektille, mutta kun projektin koko ja monimutkaisuus kasvaa, solmujen määrästä muuttuu pian hallitsemattomaksi. Tämän ratkaisemiseksi Godot sallii projektin jakamisen useisiin skeneihin. Se tarjoaa sinulle tehokkaan työkalun, joka auttaa järjestelemään pelisi eri komponentit.

Kappaleessa Skenet ja solmut opit, että skene on kokoelma solmuja puurakenteeseen järjestettynä, niin että yksi solmu toimii puun juurena.

../../_images/tree.png

Voit luoda niin monta skenejä kuin haluat ja tallentaa ne levylle. Tähän tapaan tallennettuja skenejä kutsutaan ”Pakatuiksi skeneiksi” ja niillä on .tscn tiedostopääte.

../../_images/instancingpre.png

Kun skene on tallennettu, siitä voidaan luoda ilmentymä toiseen skeneen ikään kuin se olisi mikä tahansa muu solmu.

../../_images/instancing.png

Yllä olevassa kuvassa skene B lisättiin ilmentymänä skeneen A.

Esimerkki ilmentymien luonnista

Oppiaksesi kuinka ilmentymien luonti toimii, aloitetaan lataamalla esimerkkiprojekti: instancing.zip.

Pura tämä projekti minne haluat. Avaa sitten Godot ja lisää projekti projektinhallintaan ’Tuo’ (kuvassa ’Import’) painikkeella:

../../_images/instancing_import.png

Selaa purkamaasi kansioon ja avaa sieltä löytyvä ”project.godot” tiedosto. Tämän tehtyäsi uusi projekti ilmestyy projektiluetteloon. Muokkaa projektia painamalla ’Muokkaa’ painiketta.

Projekti sisältää kaksi skeneä: ”Ball.tscn” ja ”Main.tscn”. Palloskene käyttää RigidBody2D solmua tarjoamaan fysiikkamallinnusta ja pääskenessä on joukko esteitä, joihin pallo törmäilee (käyttäen StaticBody2D solmua).

../../_images/instancing_ballscene.png ../../_images/instancing_mainscene.png

Avaa Main skene ja valitse juurisolmu:

../../_images/instancing_mainroot.png

Haluamme lisätä ilmentymän Ball skenestä Main skenen alisolmuksi. Napsauta ”ketjun” muotoista painiketta (sen vihjetekstissä lukee ”Luo skenetiedostosta ilmentymän solmuksi.”) ja valitse Ball.tscn tiedosto.

../../_images/instancing_linkbutton.png

Pallo sijoitetaan ruutualueen vasempaan yläkulmaan (joka on (0, 0) kuvaruudun koordinaatteina). Napsauta ja vedä pallo jonnekin lähelle skenen ylä-keskiosaa:

../../_images/instancing_placeball.png

Napsauta ”Pelaa” ja katso, kun pallo putoaa ruudun alalaitaan:

../../_images/instancing_playbutton.png

Useat ilmentymät

You can add as many instances as you like to a scene, either by using the ”Instance” button again, or by clicking on the ball instance and pressing ”Duplicate” (Ctrl + D):

../../_images/instancing_multiball.png

Aja skene uudestaan ja katso pallojen putoavan.

../../_images/instancing_multiball.gif

Ilmentymien muokkaus

Open the Ball scene and add a PhysicsMaterial by opening the ”Physics Material Override” dropdown in the Inspector dock and selecting ”New PhysicsMaterial”.

../../_images/instancing_physicsmat1.png

Then, expand the material by clicking on it, and set the Bounce property to 1.

../../_images/instancing_physicsmat2.png

Paina ”Pelaa” ja huomaa kuinka pallojen ilmentymät ovat nyt paljon kimpoavampia. Koska pallojen ilmentymät perustuvat tallennettuun skeneen, muutokset tuohon skeneen vaikuttavat kaikkiin ilmentymiin.

Voit säätää myös yksittäisiä ilmentymiä. Aseta kimpoavuus takaisin arvoon 0 ja valitse sen jälkeen yksi pallon ilmentymä Main skenessä. Sellaiset resurssit kuten PhysicsMaterial ovat aina oletusarvoisesti jaettuja resurssien välillä, joten meidän täytyy tehdä siitä uniikki. Napsauta nuolta alas ja valitse ”Tee ainutlaatuinen”. Aseta sen Bounce arvoon 1 ja paina ”Pelaa”.

../../_images/instancing_property.png

Huomaa, että muokatun ominaisuuden viereen ilmestyy harmaa ”palauta” painike. Kun tämä painike on esillä, se tarkoittaa että olet muokannut ominaisuutta skeneilmentymässä ylikirjoittaaksesi sen tallennetussa skenessä olevan arvon. Vaikka ominaisuutta muutetaan alkuperäisessä skenessä, muokattu arvo jää voimaan. Palautuspainikkeen painaminen palauttaa ominaisuuden tallennetun skenen arvoon.

Lopputulos

Ilmentymien luonti voi olla hyödyllistä, kun haluat luoda useita kopioita samasta objektista. On myös mahdollista luoda ilmentymiä koodissa käyttämällä GDScriptiä, katso Skriptaus (jatkuu).