Partikkelijärjestelmät

Partikkelit elävät partikkelijärjestelmissä. Niinpä käyttääksesi partikkeleita pelissäsi sinun on luotava yksi tai useampi partikkelijärjestelmä. Voit luoda erilaisia partikkelijärjestelmiä (mutta pidä niiden lukumäärä mielellään pienenä). Jos pelissäsi on esimerkiksi palloja ja jokaisella pallolla on partikkeleista koostuva häntä, jokaisella pallolla on arvatenkin oma partikkelijärjestelmänsä. Helpoin tapa toimia partikkelijärjestelmien kanssa on luoda sellainen ja luoda sitten partikkeleita siihen käyttäen aiemmin määrittelemiäsi partikkelityyppejä. Kuten kuitenkin tulemme huomaamaan, partikkelijärjestelmissä voi olla lähettäjiä, jotka automaattisesti tuottavat partikkeleita, puoleensavetäjiä, jotka vetävät niitä puoleensa, ja tuhoajia, jotka tuhoavat niitä.

Kun partikkeleita lisätään partikkelijärjestelmään, ne päivitetään ja piirretään automaattisesti joka askeleella. Muuta ei tarvitse tehdä itse. Jotta partikkeleiden piirtäminen objektien instanssien taakse, eteen tai niiden väliin olisi mahdollista, jokaisella partikkelijärjestelmällä on syvyys, samanlainen kuin instansseilla ja tiilillä.

Partikkelijärjestelmät ovat luomisensa jälkeen olemassa aina. Jos siis vaihdat huonetta tai käynnistät pelin uudestaan, järjestelmät ja partikkelit jäävät olemaan. On siis parasta tuhota ne, kun et enää tarvitse niitä.

Seuraavat perusfunktiot käsittelevät partikkelijärjestelmiä:

part_system_create() Luo uuden partikkelijärjestelmän. Funktio palauttaa järjestelmän indeksin, jota on käytettävä seuraavissa kutsuissa, joilla asetetaan partikkelijärjestelmän ominaisuudet.
part_system_destroy(ind) Tuhoaa partikkelijärjestelmän ind. Kutsu tätä säästääksesi muistia, jos et enää tarvitse järjestelmää.
part_system_exists(ind) Palauttaa totuusarvon siitä, onko annettu partikkelijärjestelmä olemassa.
part_system_clear(ind) Palauttaa partikkelijärjestelmän ind asetukset oletuksiinsa, poistaen kaikki sen partikkelit, lähettäjät ja puoleensavetäjät.
part_system_draw_order(ind,oldtonew) Asettaa järjestyksen, jossa partikkelijärjestelmä piirtää partikkelit. Kun oldtonew on tosi, vanhimmat partikkelit piirretään ensin ja uudemmat partikkelit ovat näiden päällä (oletus). Muussa tapauksessa uusimmat partikkelit piirretään ensin. Tämä voi aiheuttaa melko erilaisia efektejä.
part_system_depth(ind,depth) Asettaa partikkelijärjestelmän syvyyden. Tämän avulla partikkelit saadaan ilmestymään instanssien taakse, eteen tai niiden väliin.
part_system_position(ind,x,y) Asettaa sijainnin, johon partikkelijärjestelmä piirretään. Tämä ei ole tavallisesti tarpeellista, mutta jos haluat luoda partikkeleita sijaintiin suhteessa liikkuvaan objektiin, voit asettaa sijainnin esim. mainittuun objektiin.

Kuten edellä on mainittu, partikkelijärjestelmä päivitetään ja piirretään automaattisesti. Joissain tapauksissa et kuitenkaan ehkä halua näin käyvän. Auttaaksesi asiaa voit asettaa automaattisen päivittämisen tai piirtämisen pois päältä ja päättää sitten itse, milloin partikkelijärjestelmä päivitetään tai piirretään. Tähän voit käyttää seuraavia funktioita:

part_system_automatic_update(ind,automatic) Määrittää, päivitetäänkö partikkelijärjestelmä automaattisesti (1) vai ei (0). Oletus on 1.
part_system_automatic_draw(ind,automatic) Määrittää, piirretäänkö partikkelijärjestelmä automaattisesti (1) vai ei (0). Oletus on 1.
part_system_update(ind) Tämä funktio päivittää kaikkien järjestelmän partikkeleiden sijainnin ja antaa lähettäjien luoda partikkeleita. Tätä täytyy kutsua vain, kun päivittäminen ei ole automaattista. (Joskus voi kuitenkin olla hyödyllistä kutsua tätä funktiota pari kertaa saadaksesi järjestelmän rullaamaan.)
part_system_drawit(ind) Tämä funktio piirtää järjestelmän partikkelit. Tätä täytyy kutsua vain, kun piirtäminen ei ole automaattista. Tätä funktiota tulisi kutsua jonkin objektin piirtotapahtumassa.

Seuraavat funktiot käsittelevät partikkelijärjestelmien partikkeleita:

part_particles_create(ind,x,y,parttype,number) Tämä funktio luo number-parametrin verran parametrin parttype tyyppisiä partikkeleita kohtaan (x,y) järjestelmässä.
part_particles_create_color(ind,x,y,parttype,color,number) Tämä funktio luo number-parametrin verran parametrien parttype tyyppisiä ja color värisiä partikkeleita kohtaan (x,y) järjestelmässä. Tämä on funktio on hyödyllinen vain, kun partikkelityyppi määrittelee yksittäisen värin (tai ei määrittele väriä ollenkaan).
part_particles_clear(ind) Tämä funktio poistaa kaikki partikkelit järjestelmästä.
part_particles_count(ind) Tämä funktio palauttaa partikkeleiden lukumäärän järjestelmässä.