Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Pikselit järjestäytyvät kuvaksi 2

hunajavohveli [08.11.2003 13:26:19]

#

Jos olet katsonut ykkösversion, tiedät miten tämä toimii. Lisäyksenä on se, että nyt pisteiden liikkumisen voi porrastaa niin, että ne eivät lähde liikkeelle samaan aikaan vaan yksi toisensa jälkeen. Pisteiden liikkumisnopeutta x- ja y-suunnassa voi myös vaihtaa.

SCREEN 13

DIM piste(2999, 4) 'alustetaan

'näitä muuttujia voi vaihtaa

porrastus = 1   '0 = pisteet alkavat liikkua samaan aikaan 1 = ....porrastaen
xs = 1         'x-liikkeen suhde  (mitä pienempi luku, sitä nopeampi)
ys = .2         'y-liikkeen suhde  (.................................)

LINE (65, 68)-(282, 83), 3, B  'piiretään kuvat
LINE (63, 66)-(284, 85), 3, B
PAINT (64, 67), 2, 3
COLOR 9
LOCATE 10, 10: PRINT "Tämä kuva hajoaa pisteiksi"
SLEEP 1

FOR a = 0 TO 319   'luetaan näytöltä
FOR b = 0 TO 199
    IF POINT(a, b) <> 0 THEN 'jos pikseli ei ole musta
piste(c, 0) = a    'luetaan koordinaatit taulukkoon
piste(c, 1) = b
piste(c, 2) = -1 + RND * 2  'arvotaan suunta ja lisätään taulukkoon
piste(c, 3) = -1 + RND * 2
piste(c, 4) = POINT(a, b)   'tallentaan väri taulukkoon
c = c + 1
    END IF
NEXT b
NEXT a

c = c - 1   'vähennetään, muuten tulee yksi piste liikaa

CLS

s = 1   'asetetaan suunta
DO
FOR b = 1 TO 300
FOR a = 0 TO c   'silmukka 0 - pisteiden määrä
    PSET (piste(a, 0), piste(a, 1)), 0  'kumitetaan vanha piste
IF porrastus = 1 THEN         'jos porrastus on päällä...
    IF b > a / 10 AND b < a / 10 + 100 THEN
    piste(a, 0) = piste(a, 0) + piste(a, 2) * s / xs '...siirretään piste uuteen paikaan
    piste(a, 1) = piste(a, 1) + piste(a, 3) * s / ys 'porrastuksen mukaan...
    END IF
ELSE           '...jos ei ole...
    piste(a, 0) = piste(a, 0) + piste(a, 2) * s / xs '...siirretään piste uuteen paikaan
    piste(a, 1) = piste(a, 1) + piste(a, 3) * s / ys 'ilman porrastusta
END IF
    PSET (piste(a, 0), piste(a, 1)), piste(a, 4)  'piirretään uusi piste
NEXT a
NEXT b
FOR a = 0 TO c
    PSET (piste(a, 0), piste(a, 1)), piste(a, 4)   'ja lopuksi vielä piirretään kaikki pisteet
NEXT a
a$ = INPUT$(1)  'odota näppäimen painallusta
s = -s  'vaihda suunta vastakkaiseksi
LOOP UNTIL a$ = CHR$(27)

rndprogy [09.11.2003 18:18:35]

#

joo-o

sooda [09.11.2003 18:50:59]

#

Ihan hieno on.

Gwaur [09.11.2003 19:14:37]

#

Vähä hieno! :)

Dustbin [09.11.2003 21:23:22]

#

Nämä kommentit ovat kyllä kieltämättä aika korkelaatuisia =)

T.M. [11.11.2003 12:06:43]

#

Ai että ku on siisti! Tosta vois soveltaa jonkinlaisen sytytyslangan palamista matkivan efektin :)

GorkkiusSuuri [18.12.2004 22:30:28]

#

Kiva on juu.
Pitihän tännekki pistää joku tommosen vuoden jälkee :-)

Vastaus

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

Tietoa sivustosta