Kirjoittaja: Antti Laaksonen
Kirjoitettu: 11.03.2002 – 11.03.2002
Tagit: grafiikka, koodi näytille, vinkki
Monissa peleissä käytetään tummennusefektiä, eli näytön kuvaa tummennetaan hiljalleen, kunnes se lopulta on täysin musta. Sama onnistuu myös QBasicilla palettia vaihtamalla, ja tämä esimerkki näyttää, kuinka se tapahtuu käytännössä.
SCREEN 13
CIRCLE (50, 50), 20, 1
CIRCLE (130, 70), 40, 2
CIRCLE (80, 80), 60, 3
SLEEP
'tummennusefekti
FOR i = 1 TO 63
FOR j = 1 TO 189
OUT (&H3C7), j
'alkuperäiset värit muuttujiin
r = INP(&H3C9): g = INP(&H3C9): b = INP(&H3C9)
'uusien värien laskeminen
r = ABS(r - 1): g = ABS(g - 1): b = ABS(b - 1)
OUT (&H3C8), j
'uudet värit käyttöön
OUT (&H3C9), r: OUT (&H3C9), g: OUT (&H3C9), b
NEXT j
PALETTE 0, 0
NEXT ionnistuuko muilla screeneillä?
yllättävän hyvä
Entäs miten tuo saadaan toimimaan toisinpäin??
EDIT: Höh. Tuli oikosulku! Tietty STEP -1:sellä!
QB64:lla:
Desktop = _SCREENIMAGE
MaxX = _WIDTH(Desktop)
MaxY = _HEIGHT(Desktop)
_FREEIMAGE (Desktop)
SCREEN _NEWIMAGE(MaxX, MaxY, 32)
_FULLSCREEN
FOR z = 255 TO 1 STEP -1
GOSUB PiirraYmpyrat
_DISPLAY
_DELAY .01
NEXT z
END
PiirraYmpyrat:
CIRCLE (MaxX / 2, 200), 100, _RGB(z, 0, 0)
CIRCLE (MaxX / 2, MaxY / 2), 100, _RGB(0, z, 0)
CIRCLE (MaxX / 2, MaxY - 200), 100, _RGB(0, 0, z)
RETURN