Miten saan piirettyä tilemap kartan parhaiten ruutuun? Tai oikeastaan miten tilemap toimii? Olen vähän huono näissä grafiikka asioissa... Käytän delphixää. Voisiko joku antaa selostuksen...
delphistä en tiiä mutta kai c++ esimerkit kelpaa..
eli oletetaan että yksi tile/laatta on kooltaan 32x32 pikseliä. maailma minkä meinaat piirtää on taas vaikka 640x480 pikseliä eli 20x15 laattaa.
tarvitaan näköjään jonkunlainen taulukko. vaikka tämmönen:
#define WORLD_X 20 #define WORLD_Y 15 char maailma[WORLD_Y][WORLD_X];
nyt on tilaa maailmalle. sitten pelin alussa maailma-taulukkoon ladataan tiedot pelialueesta, joko kovakoodattuna tai tiedostosta.
// esimerkki taulukon alustamisesta kovakoodattuna int taulukko[2][3] = {0,0,1, 0,1,1};
seuraava kohta on kuvien lataaminen muistiin, mutta siitä en ala esimerkkiä nyt kirjottelemaan. pääsilmukassa maaston piirtäminen tapahtuu suunnilleen näin:
for(int iy=0; iy<WORLD_Y; iy++) { for(int ix=0; ix<WORLD_X; ix++) { Draw_Tile(ix*32, iy*32, maailma[iy][ix]); } }
Draw_Tile() -funktio piirtää sitten oikeanlaisen ruudun annetuille koordinaateille, eli siellä on vaikka switch -lause, joka tarkistaa kolmannen parametrin ja piirtää sen mukaan
jos tarvii scrollata nii homma on tietenkin vähän monimutkasempi..
Aihe on jo aika vanha, joten et voi enää vastata siihen.