UpdateSparks
'------------------------------
DIM cleanup%
, count%
, topspark%
cleanup% = TRUE
IF sparks
(count%
).count
<> 0 THEN cleanup% = FALSE
sparks(topspark% + count%).count = 32
sparks(topspark% + count%).x = x%
sparks(topspark% + count%).y = y%
sparks(topspark% + count%).fade = 255
sparks
(topspark%
+ count%
).speed
= INT(RND(1) * 6) + 6 sparks
(topspark%
+ count%
).xdir
= RND(1) - RND(1) sparks
(topspark%
+ count%
).ydir
= RND(1) - RND(1)
'--------------------------------------
DIM count%
, fade1%
, fade2%
IF sparks
(count%
).count
> 0 THEN fade1% = sparks(count%).fade / 2
fade2% = sparks(count%).fade / 4
PSET (sparks
(count%
).x
, sparks
(count%
).y
), _RGB(sparks
(count%
).fade
, sparks
(count%
).fade
, sparks
(count%
).fade
) PSET (sparks
(count%
).x
+ 1, sparks
(count%
).y
), _RGB(fade1%
, fade1%
, fade1%
) PSET (sparks
(count%
).x
- 1, sparks
(count%
).y
), _RGB(fade1%
, fade1%
, fade1%
) PSET (sparks
(count%
).x
, sparks
(count%
).y
+ 1), _RGB(fade1%
, fade1%
, fade1%
) PSET (sparks
(count%
).x
, sparks
(count%
).y
- 1), _RGB(fade1%
, fade1%
, fade1%
) PSET (sparks
(count%
).x
+ 1, sparks
(count%
).y
+ 1), _RGB(fade2%
, fade2%
, fade2%
) PSET (sparks
(count%
).x
- 1, sparks
(count%
).y
- 1), _RGB(fade2%
, fade2%
, fade2%
) PSET (sparks
(count%
).x
- 1, sparks
(count%
).y
+ 1), _RGB(fade2%
, fade2%
, fade2%
) PSET (sparks
(count%
).x
+ 1, sparks
(count%
).y
- 1), _RGB(fade2%
, fade2%
, fade2%
) sparks(count%).fade = sparks(count%).fade - 8
sparks(count%).x = sparks(count%).x + sparks(count%).xdir * sparks(count%).speed
sparks(count%).y = sparks(count%).y + sparks(count%).ydir * sparks(count%).speed
sparks(count%).speed = sparks(count%).speed / 1.1
sparks(count%).count = sparks(count%).count - 1