perjantai 30. lokakuuta 2009

Monen saman objektin luominen

Aikoinaan aina ihmettelin, miten koodaamalla olisi mahdollista saada luotua monta samaa objektia, jotka kaikki käyttäytyvät samalla tavalla. Esimerkiksi tässä minun peliprojektissani panokset ja viholliset. Jokaisella objektilla kun pitää olla aivan omat muuttujat ilmoittamaan kaikkia sen objektin ominaisuuksia, esimerkiksi koordinaatteja, missä se milläkin hetkellä sijaitsee. Aikoinaan, kun vähän CoolBasiciakin kokeilin ja joskus, kun vasta vähän tiesin C-kielestä, osasin alustaa vain yksittäisiä muuttujia. Pistää vaikka   int jotain;  niin saa alustettua yhden muuttujan. Pitäisikö siis alustaa pitkät litaniat muuttujia tarpeeksi monelle objektille ja sitte jotenkin kivasti numerojärjestyksessä laskea kaikki tarpeelliset laskut niillä läpi? No, ei tietenkään.
Itse käytän erästä menetelmää, joka on omasta mielestäni varsin hyvä ja yksinkertainen, vaikka en oikeasti tiedäkkään, tehdäänkö nämä asiat yleisesti näin. C-kielessä voi kätevästi tehdä "objektin" strucktin avulla ja sitten alustaa monta tällaista strucktia käyttämällä indeksiä: jokumuuttuja[joku luku]. Ei tarvitse käyttää mitään pitkiä muuttujalitanioita ja jokaisen noista saa myös helposti laskettua käymällä loopissa kaikki indeksit läpi.
Tässä on esimerkkinä kuinka olen vihollisen tehnyt pelissäni:
     //vihulainen
     struct vihustr {
            int elossa;
            int tyyppi;
            float nopeus;
            float koko;
            float x;
            float y;
            int energia;
     };
     struct vihustr vihu[256];
Tuossa siis aluksi määritellään millainen vihu on ja sitten alustetaan 256 tällaista vihua. Sitten kaikki nämä voi helposti laskea läpi yhdessä loopissa.

Ei kommentteja:

Lähetä kommentti