Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: leviämisefekti

Jogge [20.08.2002 16:04:42]

#

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
LOOP

thefox [21.08.2002 21:51:42]

#

If 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 :)

WhiteCrow [21.08.2002 22:29:12]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta