Kérdés mi a célod:
1-a figura álló képernyő előtt mozog, ha jobb oldalt kisétál a képből akkor új képernyő jelenik meg és besétál bal oldalon. Szóval álló képernyők vannak.
2-a figura a képernyő közepén van (vízszintesen), és a pálya gördül mögötte finoman balra, ha a figura jobbra halad.
Lehetne még "minden irányban" mozgó pálya is, de az már nehezebb.
Vegyük a második esetet, ez a klasszikus "Mario Bros".
A képernyő felbontása mondjuk 320x200 (vagy 640x400 vagy ami éppen van). Ezt felosztod egy négyzethálóra, legyen ez mondjuk 20x20 az egyszerűség kedvéért.
Tehát a képernyőre kirajzolsz vízszintesen 20 grafikai elemet, függőlegesen is 20-at. Ehhez ugye egy 20x20-as tömböt használhatsz.
Ha nagyobb pályát akarsz, akkor készítesz mondjuk egy 200x20-as tömböt. Így 10 képernyő széles lehet a pálya. Kirajzolásnál tárolod (kiszámolod), hogy az aktuálisan kirajzolandó 20x20-as képernyő terület a "nagy" pályán hol helyezkedik el. Na az elemeket ettől a ponttól kezded venni.
Nagyából:
XK:=XMAP-10; for j:=0 to 9 do for i:=0 to 9 do begin elem:=[XK+i][j]; --elem kirajzolása (i*16 és j*10 koordinátákra) end;
Persze ha nem "ugrálni" akar a főszereplő akkor X irányba el is kell tolni a képet (főszereplőt) folyamatosan. Mondjuk a főszereplő koordinátáit számolod "pixelben", akkor XMAP=X/16, ha 16 pixel egy elem szélessége. Az osztás maradéka meg az az érték, amivel a hátteret balra kell tolni. (Emiatt vízszintesen nemis 20 hanem 21 elemet kell rajzolni.)
Így "tetszőleges" méretű pályát készíthetsz. Vigyázz, nehogy kifuss a tömbből írás/olvasás közben, mindíg ellenőrizd a koordinátákat.
ui: itt egy "tutorial" Mario játékok készítéséhez Pascalban:
Mariós tutorial Turbo Pascalhoz -fájl letöltése
Turbo Pascal kell hozzá, eléletileg benne van minden ami kell. Nincs befejezve a játék, de 16 lépésben bemutatja, hogy hogyan készül a játék, az egyszerű "tömb kirajzolás"-tól kezdve. Lehet másként is, de biztos van benne pár hasznos dolog.  |