Tein tässä nopeasti tällaisen paisumis tai leviämis efektin, en kyllä tiedä miltä se teidän mielestänne näyttää :). Ohjelman pitäisi olla aika selkeä. kuva muuttuu lopuksi aika sotkuksi mutta mitä väliä...
DEFINT A-Z 'nopeuttaa hieman ohjelmaa
RANDOMIZE TIMER 'arpoo parempia satunnaislukuja
SCREEN 13 'vaihdetaan näyttötila
'*** vaihdetaan palettia
OUT &H3C8, 0
For n = 0 To 63
OUT &H3C9, n
OUT &H3C9, 0
OUT &H3C9, 0
Next n
OUT &H3C8, 63
For n = 0 To 63
OUT &H3C9, 63 - n
OUT &H3C9, n
OUT &H3C9, 0
Next n
OUT &H3C8, 127
For n = 0 To 63
OUT &H3C9, 0
OUT &H3C9, 63 - n
OUT &H3C9, n
Next n
OUT &H3C8, 191
For n = 0 To 63
OUT &H3C9, 0
OUT &H3C9, 0
OUT &H3C9, 63 - n
Next n
'***
'*** piirretään näytölle kolme ympyrää
Circle (200, 200), 80, 63
Circle (100, 100), 100, 127
Circle (250, 50), 50, 191
'***
DO
x = Int(Rnd * 320) 'arvotaan "paisuvan" kuvapisteen paikka
y = Int(Rnd * 200) 'ja lisää arpomista
z = Point(x, y) 'otetaan kuvapisteen väri
w = 1 'kuinka isoja palikoita tulee
v = CInt(Rnd * 2) - 1 'lisätään hieman satunnaisia värejä
If v + z > 255 Then z = 0 'tarkistetaan ettei väriarvo mene minne sattuu :)
If v + z < 0 Then z = 255
If z <> 0 Or CInt(Rnd * 50) = 0 Then
Line (x - w, y - w)-(x + w, y + w), z + v, BF 'piirretään isompi piste
End If
LOOPIf v + z > 255 Then z = 0 'tarkistetaan ettei väriarvo mene minne sattuu :)
If v + z < 0 Then z = 255
Tuon pätkän voisi korvata
z = z AND &HFF
Ei huono :)
Tossa tehdään clamppaus eikä sitä oikein andilla tehdä. Elisiis jos alkuarvo on 256 (eli yhden yli), niin alkup. koodi sanoo 255 mutta toi fawkzin metodi 1. eli seuraa overflow.
Aihe on jo aika vanha, joten et voi enää vastata siihen.