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
Aihe on jo aika vanha, joten et voi enää vastata siihen.