Skip to content

Instantly share code, notes, and snippets.

@qtxie
Last active June 17, 2016 03:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save qtxie/2e4bb07205b7c6f92b7ef1b952970641 to your computer and use it in GitHub Desktop.
Save qtxie/2e4bb07205b7c6f92b7ef1b952970641 to your computer and use it in GitHub Desktop.
Red [
Title: "Sparks demo"
Author: "Qingtian Xie"
File: %sparks.red
Tabs: 4
Needs: View
]
system/view/auto-sync?: no
sparks: make block! 200
one-sixty: 1.0 / 60.0
view [
canvas: base 640x480 "Move the mouse ;-)" all-over rate 60
on-time [
draw: clear []
foreach spark sparks [
spark/1: spark/1 + (spark/2 / 2)
spark/2/y: spark/2/y + 3
spark/3: spark/3 - one-sixty
reduce/into ['line spark/1 spark/1 + spark/2] tail draw
]
canvas/draw: draw
show canvas
forall sparks [ ;-- remove old spark
if sparks/1/3 < 0.0 [sparks: back remove sparks]
]
][sparks one-sixty]
on-over [
append/only sparks reduce [ ;@@ optimize the memory usage
event/offset
as-pair (20 * random 1.0) - 10 (-40 * random 1.0)
1.0
]
]
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment