Page 1 of 1

PyroMax - ilotulituskirjasto

Posted: Tue Aug 28, 2007 11:35 pm
by Dibalo
Tämä ei nyt ehkä vuodenaikaan juuri liity, eikä tästä sen enempää hyötyä ole, mutta laitetaan silti tänne. Jos vaikka aloittelevat koodarit innostuisivat tutkimaan koodia... ;) Tämä kätevä pikku kirjasto mahdollistaa eri tyyppisten ilotulitusesitysten luomisen, vaikka koodaustaidot olisivat liki nolla. Kirjasto perustuu dynaamiseen muistinhallintaan ja väkisinväännettyhin linkitettyihin listoihin (omiin sellaisiin). Näin olen saanut mahdollisimman joustavan ja nopean alustan teille pyromaaneilla (siitä nimikin ;) ).

PyroMax on äärettömän helppo käyttää: teidän tarvitsee muistaa vain viisi (5) komentoa:

Code: Select all

PYRO_CreateRocket
PYRO_AttachEffect
PYRO_InitAll
PYRO_UpdateAll
PYRO_ParseScript
Kirjaston käyttö on seuraava:
1) luo raketti ja anna sille ominaisuudet
2) lisää rakettiin efekti (panos)
3) toista kohtia 1 ja 2 niin pitkään kuin haluat
4) alusta systeemi PYRO_InitAll()-metodilla
5) päivitä systeemi PYRO_UpdateAll()-metodilla
6) nauti ilotulituksesta! :P


Seuraavassa esimerkki ohjelman koodista, joka luo n. 30 sekuntia ilotulitusta:

Code: Select all

SCREEN 800,600,0

Include "PyroMax.cb"


For i = 1 To 50

   // LUODAAN 50 RAKETTIA (kts. parametrit kirjaston funktioista
   // niissä ON hyvä dokumentaatio
   r = PYRO_CreateRocket(Rand(200,600), 600, Rand(70,110), Rand(50,170), Rand(255), Rand(255), Rand(255), Rand(1000,30000), Rand(500,1500), Rand(15,40), Rand(100,300))

   ec = Rand(1,5)
   // lisätään jokaiselle raketille 1-5 efektiä
   For a = 1 To ec
       PYRO_AttachEffect(r, Rand(30,70), Rand(50,170), Rand(255), Rand(255), Rand(400,1500), Rand(150, 500))
   Next a

Next i


// alustetaan systeemi
PYRO_InitAll()

Repeat
   
   // päivitetään systeemi
   PYRO_UpdateAll()
   __DEBUG_PrintStats(0,0)

DrawScreen
Forever

Ilotulitukset voi myös parsia tiedostosta PYRO_ParseScript(file$)-funktiolla. Todella yksinkertainen esimerkkitiedosto voi näyttää esimerkiksi tältä:

Code: Select all

// NEW ROCKET
//
//      # seuraavaksi lisätään kaikki raketin tiedot (tämä on kommentti)
//      R=124               # raketin väri
//      G=0
//      B=190
//      X=400              # raketin alkusijainti
//      Y=600
//      ANGLE=87           # raketin kulma
//      SPEED=170          # raketin nopeus
//      LAUNCH_TIME=1500    # millisekunteina PYRO_InitAll()-komennosta
//      EXP_TIMER=700       # räjähdysaika millisekunteina laukaisusta
//      POWER=20            # räjähdysvoima
//      TAIL=130            # raketin "hännän" pituus. tämän voi jättää pois, oletusarvo on 100
//
//      # raketin esittelyn sisällä voidaan (ja pitääkin) esitellä raketin käyttämät erikoiseffektit
//      NEW EFFECT
//          # taas säädetään asetukset kuntoon
//          R=251
//          G=25
//          B=106
//   SPEED=80
//          LIFE_TIME=400   # millisekunteina luonnista (isäntäraketin räjähdyksestä)
//          TAIL=210        # efektin "hännän" pituus. tämän voi jättää pois, oletusarvo on 150
//      END EFFECT
//
//      # häntiä voi luoda raketille niin paljon kuin haluaa
//      NEW EFFECT
//          R=85
//          G=210
//          B=75
//   SPEED=95
//          LIFE_TIME=200
//      END EFFECT
//
// END ROCKET
Tietysti nuo "//"-merkit tulee jättää alusta pois, sillä tämä koodi on otettu itse kirjaston esimerkeistä, joten CB-kommentit ovat pakollisia. Huomaathan, että skripti-tiedoissa kommentit lisätään #-merkillä. Jos käytät jotain muuta tapaa, parsija ilmoittaa virheen ja lopettaa ohjelman. Skripti-tiedostot voivat olla vaikka miten pitkiä. Skripti-tiedostoja voi myös parsia useamman kappaleen samaan systeemin, joten ilotulitus-datan ylläpitohelpottuu skriptien pysyessä pieninä.


Seuraavassa esimerkki skripti-tiedoston käyttämisestä kirjaston kanssa:

Code: Select all

SCREEN 800,600,0

Include "PyroMax.cb"

// parsitaan skripti systeemiin
PYRO_ParseScript("sample_pyro.ini")


// alustetaan systeemi
PYRO_InitAll()

Repeat
   
   // päivitetään systeemi
   PYRO_UpdateAll()
   __DEBUG_PrintStats(0,0)

DrawScreen
Forever

Mutta nyt kaikki tarpeellinen on kerrottu: voitte kokeilla itse! Paketti sisältää PyroMax.cb-kirjaston, joka pitää liittää omiin projekteihin mukaan. Lisäksi se sisältää kaksi esimerkkikoodia (kts. ylempää) sekä esimerkkiskriptin ("sample_pyro.ini").

Iloisia tulituksia! :)

Lataa PyroMax

Re: PyroMax - ilotulituskirjasto

Posted: Wed Aug 29, 2007 9:46 am
by temu92
Testasin ja oli ihan kybercool, se skriptitulitus varsinkin :D Jotenka plussaa sulle :mrgreen:

Re: PyroMax - ilotulituskirjasto

Posted: Thu Aug 30, 2007 9:26 am
by Nucreal
Heh, No eihän tässä montaa kuukautta Uuteen-vuoteen ole. :D Hienohan tuo.

Re: PyroMax - ilotulituskirjasto

Posted: Sat Nov 08, 2008 6:15 pm
by MikkoK141_Guest
Anteeksi kauhea nosto mutta onko kellään tätä tallessa jos on niin voisi uppia sen.

Re: PyroMax - ilotulituskirjasto

Posted: Sat Nov 08, 2008 6:38 pm
by Ruuttu
Apua?!? Latauslinkki ei toimi!

Muuten vaikuttaa erittäin mielenkiintoiselta, olisi kiva nähdä mitä itse koodista löytyy...

Re: PyroMax - ilotulituskirjasto

Posted: Sun Nov 09, 2008 6:47 pm
by MikkoK141_Guest
Dibalo Dibalo... Kaiva tämä koneesi uumenista ja upi uudestaan.

Re: PyroMax - ilotulituskirjasto

Posted: Sun Nov 09, 2008 9:51 pm
by JATothrim
:D Tunnen jo tämän kirjaston, taisit esitellä tämän vanhoilla foorumeilla joskus vuosi sitten? Pitää tehdä uudeksivuodeksi tunnin pyromaani skripti.. :P

Re: PyroMax - ilotulituskirjasto

Posted: Sun Nov 30, 2008 3:25 am
by Wingman
Linkki ykkösviestissä on jotenkin vanha/rikki :(

Re: PyroMax - ilotulituskirjasto

Posted: Thu Dec 18, 2008 6:51 pm
by Jani
Olisi melkein pakko päästä testaamaan, mutta kun ei voi. :(

Onko jollain tämä tietokoneensa syövereissä?

Re: PyroMax - ilotulituskirjasto

Posted: Thu Dec 18, 2008 8:44 pm
by Substance
Jani wrote:Onko jollain tämä tietokoneensa syövereissä?
Jep. Oleppas hyvä.