Kirjautuminen

Haku

Tehtävät

Koodit: QB: Bittitasoskrollaus

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)

Kommentit

Dj Wolf [20.08.2002 09:22:17]

#

'skrollauksen' LOL!
T. Pilkun nussijat Ry

HtH [20.08.2002 17:44:55]

#

Mikäs tossa 'skrollaus' sanassa on vikana?

Jaakko [07.11.2002 21:07:50]

#

Tolla sais vaikka hienon scrollbarin johonkin peliin.

Dude [27.09.2007 17:53:00]

#

Ihan hieno viritelmä. Tuolla vois ehkä teherä jonku tasohyppelypelin. Tosin saattais tulla hiras.

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta