Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Meteoriittisade

Grey [08.07.2007 20:16:38]

#

Alunperin tarkoituksena oli säheltää partikkelien kanssa, ja saada aikaan jotain ei-niin-hienoa harjoituksena. Vaan toisin kävi. Efektistä tulikin odotettua hienompi ja laajensinkin sen samantien putkaan sopivaksi. Paljoakaan ei ole vinkistä selitettävää. Mitä nyt koodi on melko rumaa, mutta efekti, noh, katsokaa itse :-P

-Grey-

TYPE PartSet
 X AS INTEGER: Y AS INTEGER: C AS INTEGER
 X2(31) AS INTEGER: Y2(31) AS INTEGER: C2(31) AS INTEGER
END TYPE

DEFINT A-Z
DIM R, G, B, I, I2, Set1, Set2, Set3, Set4, Max, Slow AS SINGLE

CLS : SCREEN 13: RANDOMIZE TIMER

'Säädettävät alkavat
R = 1
G = 2
B = 4
SetX1 = 3
SetX2 = 1
SetY1 = 3
SetY2 = 1
Xspeed = -2
Yspeed = -1
Max = 31
Slow = .02
'Säädettävät loppuvat

DIM Part(Max) AS PartSet

FOR I = 0 TO 63
OUT &H3C8, I
OUT &H3C9, I / R
OUT &H3C9, I / G
OUT &H3C9, I / B
NEXT

FOR I = 0 TO Max: Part(I).X = INT(RND * 320): NEXT

DO
 W$ = INKEY$
FOR I2 = 0 TO Max
FOR I = 0 TO 31
 PSET (Part(I2).X, Part(I2).Y), 0
  PSET (Part(I2).X2(I), Part(I2).Y2(I)), 0
   Part(I2).X2(I) = Part(I2).X2(I) + INT(RND * SetX1 - SetX2)
  Part(I2).Y2(I) = Part(I2).Y2(I) + INT(RND * SetY1 - SetY2)
 Part(I2).C2(I) = Part(I2).C2(I) - 1
IF Part(I2).C2(I) <= 0 THEN
 Part(I2).C2(I) = INT(RND * 63 + 1)
 Part(I2).X2(I) = Part(I2).X: Part(I2).Y2(I) = Part(I2).Y
END IF
NEXT
Part(I2).X = Part(I2).X - Xspeed
 Part(I2).Y = Part(I2).Y - Yspeed
  IF Part(I2).X < 0 THEN Part(I2).X = 319: Part(I2).Y = INT(RND * 200)
 IF Part(I2).X > 319 THEN Part(I2).X = 0: Part(I2).Y = INT(RND * 200)
IF Part(I2).Y < 0 THEN Part(I2).Y = 199: Part(I2).X = INT(RND * 320)
 IF Part(I2).Y > 199 THEN Part(I2).Y = 0: Part(I2).X = INT(RND * 320)
  FOR I = 0 TO 31
   PSET (Part(I2).X2(I), Part(I2).Y2(I)), Part(I2).C2(I)
  NEXT
 PSET (Part(I2).X, Part(I2).Y), 63
NEXT
 SOUND 0, Slow
 IF W$ = CHR$(27) THEN EXIT DO
LOOP

Vastaus

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

Tietoa sivustosta