Partikkelien puoleensavetäjät (Attractors)
Lähettäjien ohella partikkelijärjestelmät voivat sisältää myös puoleensavetäjiä.
Puoleensavetäjä vetää partikkeleita puoleensa tai työntää niitä poispäin itsestään.
Partikkelijärjestelmä voi sisältää useita puoleensavetäjiä. On kuitenkin suositeltavaa, että
käytät niitä suhteellisen vähän, sillä ne hidastavat partikkelien käsittelyä. Puoleensavetäjillä
on seuraavanlaisia ominaisuuksia:
- x,y
osoittavat puoleensavetäjän sijainnin.
- force
osoittaa puoleensavetäjän vetovoiman suuruuden. Se, miten voima toimii, riippuu seuraavista
parametreista.
- dist
osoittaa suurimman etäisyyden, jonka alueella puoleensavetäjä vaikuttaa.
Se vaikuttaa vain partikkeleihin, jotka ovat tätä arvoa lähempänä sitä eli puoleensavetäjän
vaikutuspiirissä.
- kind
osoittaa puoleensavetäjän tyypin. Seuraavat arvot ovat olemassa:
- ps_force_constant
osoittaa, että voima on jatkuvasti samansuuruinen, etäisyydestä huolimatta.
- ps_force_linear
osoittaa lineaarisesti kasvavaa voimaa. Suurimmalla etäisyydellä voima on 0, kun taas
attraktorin kohdalla se on yhtäkuin sille annettu arvo.
- ps_force_quadratic
osoittaa, että voima kasvaa neliönä.
- additive
osoittaa, lisätäänkö voima nopeuteen ja suuntaan jokaisella askeleella (true), vai sovelletaanko
sitä vain partikkelin sijaintiin (false).
Kun lisäys on voimassa, partikkeli kiihtyy kohti puoleensavetäjää,
mutta lisäyksen ollessa pois päältä, se liikkuu tasaisella nopeudella.
Puoleensavetäjiä voi määrittää seuraavilla funktioilla. Huomaa, että
jokaiselle niistä on ilmoitettava partikkelijärjestelmän indeksi, johon ne kuuluvat, ensimmäiseksi
argumentikseen.
part_attractor_create(ps)
Luo uuden puoleensavetäjän annettuun partikkelijärjestelmään ja palauttaa sen indeksin.
Tätä indeksiä on käytettävä kaikissa allaolevissa kutsuissa asettaaksesi juuri tämän tietyn
puoleensavetäjän ominaisuudet.
part_attractor_destroy(ps,ind)
Tuhoaa puoleensavetäjän ind partikkelijärjestelmästä.
Kutsu tätä, jos et enää tarvitse puoleensavetäjää, säästääksesi tilaa.
part_attractor_destroy_all(ps)
Tuhoaa kaikki luodut puoleensavetäjät partikkelijärjestelmästä.
part_attractor_exists(ps,ind)
Palauttaa, onko ilmoitettu puoleensavetäjä olemassa partikkelijärjestelmässä.
part_attractor_clear(ps,ind)
Palauttaa puoleensavetäjän, jonka indeksi on ind, sen alkuperäisiin asetuksiin.
part_attractor_position(ps,ind,x,y)
Asettaa puoleensavetäjän, jonka indeksi on ind, sijaintiin (x,y).
part_attractor_force(ps,ind,force,dist,kind,additive)
Asettaa voiman parametrit puoleensavetäjälle ind.