Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: C: Scrollaus

HtH [11.05.2002 10:09:29]

#

Elikkäh, tässäpä olisi C:lle scrollinkia... dblbuf on kuva ruutu, ja maailma on vähän, niinkuin isompi kuvaruutu, ja dblbuf on "ikkuna" siihen. Vaikea selittää... Helpointa olisi esittää homma kuvana, mutta kun ei tueta HTML komentoja, niin ei sitten... Suostuu kääntymään ainakin DJGPP:llä

#include <stdio.h> //getch, kbhit
#include <sys\movedata.h> //dosmemputl
#include <stdlib.h> //srand, rand, malloc
#include <time.h> //time

#define maailmaleveys 1000 //Määritelläään vakioita
#define maailmakorkeus 300

char *dblbuf; //Itse kuvaruutu
char *maailma; //Maailma

#define flip _dosmemputl(dblbuf, 64000/4, 0xA0000)
int main() { /*Pää ohjelma*/
dblbuf=(char *)malloc(64000);
maailma=(char *)malloc(maailmaleveys*maailmakorkeus);
srand(time(NULL));/*Alustetaan randomi generraattori*/
/*Piirretään 'maailmaan' sattumanvaraisesti pixeleitä*/
int temp, temp2;
for(temp2=0;temp2<maailmaleveys;temp2++)
for(temp=0;temp<maailmakorkeus;temp++) {
maailma[temp*maailmaleveys+temp2]=rand()%255;
}
textmode(0x13);
int x=0, y=0;
for(temp=0;temp<320*200;temp++)
dblbuf[temp]=0; /*Tyhjennetään ruutu*/
int suunta=0;
while(!kbhit()) {
for(temp=0; temp<150; temp++) /*Piirretään osa maailmasta ruudulle*/
for(temp2=0; temp2<150; temp2++) {
dblbuf[temp*320+temp2]=maailma[(y+temp)*maailmaleveys+x+temp2];
}
if(suunta==0) x++; //liikutellaan ruutua ympäri 'maailmaa'
if(x>maailmaleveys-320 && suunta==0) suunta=1;
if(suunta==1) y++;
if(y>maailmakorkeus-200 && suunta==1) suunta=2;
if(suunta==2) x--;
if(x<1 && suunta==2) suunta=3;
if(suunta==3) y--;
if(y<1 && suunta==3) suunta=0;
flip;
}
textmode(0x3);
return(0);
}

thefox [13.05.2002 19:04:29]

#

Yksi ainoa asia ihmetyttää.. miksi joka lause pitää aloittaa "Elikkäh" ?? :D
Ihan hyvä vinkki ;)

HtH [14.05.2002 15:32:01]

#

Elikkäh(:D) se on vain vähän minun puhe tyyliä....

siiZ [15.05.2002 20:35:02]

#

Tietääkö kukaan mist löytäis
qbasic oppaan siis ison sellasen
PliiZ kertokaa joku

--(oon vast alottelija--)

HtH [16.05.2002 17:08:18]

#

Tämä ei ole foorumi, mene 'keskustelu' osioon, ja kysy sielt

(nimetön) [13.10.2002 20:11:14]

#

tää valittaa et se ei löyä sys\movedata.h

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta