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.