Kirjoittaja: Antti Laaksonen
Kirjoitettu: 19.08.2002 – 19.08.2002
Tagit: grafiikka, koodi näytille, vinkki
Tämä ohjelma luo jonkinlaisen skrollauksen SCREEN 7 -tilassa bittitasoja käyttäen. Koodia kehittämällä on verrattain helppo luoda 320x1400 pystyvieritys ja 2240x200 vaakavieritys ja nopeudenkin pitäisi olla kohtalainen QBasic huomioonottaen.
Koodissa tulevat tutuksi SCREEN 7:n kahdeksan bittitasoa, ainoa huono puoli tässä näyttötilassa on alhainen värimäärä, vain 16.
'Tämä ohjelma luo kohtalaisen skrollauksen SCREEN 7 -tilassa '(320x200, 16 väriä) bittitasojen ja GET/PUT-käskyjen avulla. ' 'Sanastoa: ' 'bittitaso SCREEN 7 sisältää 8 bittitasoa, joista jokainen ' vastaa yhtä näytöllistä grafiikkaa. Näyttötiloja ' voidaan vaihtaa SCREEN- ja PCOPY-komennoilla ' 'aktiivinen bittitaso bittitaso, johon grafiikkakomennot kohdistuvat ' 'näytettävä bittitaso bittitaso, joka näkyy sillä hetkellä näytöllä 'taulukoita, joiden avulla siirretään näytön osia DIM rivi(320) AS INTEGER DIM naytto(320 * 100) AS INTEGER 'aktiivinen bittitaso 0 'näytettävä bittitaso 1 SCREEN 7, 0, 0, 1 'ruutu täyteen eri värisiä kirjaimia FOR i = 1 TO 80 * 23 COLOR INT(RND * 15) + 1 PRINT CHR$(INT(RND * 30) + 50); NEXT 'kirjainten päälle ympyröitä FOR i = 1 TO 100 x% = INT(RND * 320) + 1 y% = INT(RND * 200) col% = INT(RND * 15) + 1 CIRCLE (x%, y%), INT(RND * 10) + 1, col% PAINT (x%, y%), col%, col% NEXT 'alkuarvot suunta = -2 y = 199 DO 'jos mennään ylöspäin IF SGN(suunta) = -1 THEN 'aktiivinen bittitaso 0 'näytettävä bittitaso 1 SCREEN 7, 0, 0, 1 'otetaan taulukkoon kaksi riviä y:n kohdalta GET (0, 199 - y)-(319, 199 - y + 1), rivi 'aktiivinen bittitaso 1 'näytettävä bittitaso 1 SCREEN 7, 0, 1, 1 'otetaan taulukkoon näyttö kahta ylimmäistä riviä 'lukuunottamatta GET (0, 2)-(319, 199), naytto 'piirretään äsken otettu kuva kahta pikseliä ylemmäs PUT (0, 0), naytto, PSET 'piirretään kaksi alimmaista riviä; bittitasossa 0 'otettu taulukko PUT (0, 197), rivi, PSET 'jos mennään alaspäin ELSE 'otetaan taulukkoon näyttö kahta alimmaista riviä 'lukuunottamatta GET (0, 0)-(319, 197), naytto 'piirretään äsken otettu kuva kahta pikseliä alemmas PUT (0, 2), naytto, PSET 'täytetään näytön ylimmät rivit, jottei kuva sotkeennu LINE (0, 0)-(319, 1), 0, BF END IF 'kasvatetaan/vähennetään y:tä ja tarkastetaan suunta y = y + suunta IF y < 1 THEN suunta = 2 IF y > 199 THEN EXIT DO 'pieni viive WAIT &H3DA, 8 LOOP WHILE INKEY$ <> CHR$(27)
'skrollauksen' LOL!
T. Pilkun nussijat Ry
Mikäs tossa 'skrollaus' sanassa on vikana?
Tolla sais vaikka hienon scrollbarin johonkin peliin.
Ihan hieno viritelmä. Tuolla vois ehkä teherä jonku tasohyppelypelin. Tosin saattais tulla hiras.