aboutsummaryrefslogtreecommitdiffstats
path: root/root/animations/twisted
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2018-11-06 07:19:59 +0000
committers-ol <s-ol@users.noreply.github.com>2018-11-06 07:19:59 +0000
commita7e539c272ffcd9e14fb58f8c24714cdff8e7c17 (patch)
tree404f92906bd402b1c394f7b521508b5138e76d98 /root/animations/twisted
parentinspect mode wip (diff)
parentadd metadata for compilation (diff)
downloadmmm-a7e539c272ffcd9e14fb58f8c24714cdff8e7c17.tar.gz
mmm-a7e539c272ffcd9e14fb58f8c24714cdff8e7c17.zip
Merge branch 'tru-fs' into inspect-mode
Diffstat (limited to 'root/animations/twisted')
-rw-r--r--root/animations/twisted/description: text$plain1
-rw-r--r--root/animations/twisted/text$moonscript -> mmm$component.moon43
2 files changed, 44 insertions, 0 deletions
diff --git a/root/animations/twisted/description: text$plain b/root/animations/twisted/description: text$plain
new file mode 100644
index 0000000..bbd63be
--- /dev/null
+++ b/root/animations/twisted/description: text$plain
@@ -0,0 +1 @@
+pseudo-3d twisting pyramid
diff --git a/root/animations/twisted/text$moonscript -> mmm$component.moon b/root/animations/twisted/text$moonscript -> mmm$component.moon
new file mode 100644
index 0000000..3fd11b0
--- /dev/null
+++ b/root/animations/twisted/text$moonscript -> mmm$component.moon
@@ -0,0 +1,43 @@
+assert MODE == 'CLIENT', '[nossr]'
+import CanvasApp from require 'mmm.canvasapp'
+import hsl from require 'mmm.color'
+
+Math = window.Math
+
+class TwistedDemo extends CanvasApp
+ width: 500
+ height: 400
+ length: math.pi * 4
+ new: (preview) =>
+ if preview
+ @width, @height = 120, 120
+ super false, true
+ else
+ super true
+ @background = {Math.random!, Math.random!/3+.2, Math.random!/4}
+ hue = Math.random!
+ @shades = setmetatable {}, __index: (key) =>
+ with val = { hue, .7, key * .3 + .1} do rawset @, key, val
+
+ draw: =>
+ @ctx.fillStyle = hsl @background
+ @ctx\fillRect 0, 0, @width, @height
+ @ctx\translate @width/2, @height/2 + 70
+
+ draw = (i) ->
+ @ctx\save!
+ @ctx\translate 0, -120*i
+ s = 1 - 0.1 * math.sin @time + i*2
+ s *= 0.8 - i * .4 * math.cos @time
+ @ctx\scale s, s/2
+ @ctx\rotate @time/4 + i * .6 * math.cos @time
+ @ctx.fillStyle = hsl table.unpack @shades[i]
+ @ctx\fillRect -80, -80, 160, 160
+ @ctx\restore!
+
+ for i=0,1,1/(20 + 19 * math.sin(@time / 2))
+ draw i
+ draw 1
+
+-- .props['preview: fn -> mmm/component'] = => TwistedDemo true
+TwistedDemo!