From 5a53fa58f26342f949d9504f124851429a693b80 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Fri, 26 Jul 2019 09:42:20 +0900 Subject: [PATCH] Added frame-rect to prelude --- desktop/sources/lisp/prelude.lisp | 2 ++ desktop/sources/scripts/ronin.js | 2 +- examples/demo/fog.lisp | 19 ++++++++-------- examples/demo/spiral.lisp | 5 +++-- examples/demo/stars.lisp | 10 +++------ examples/projects/tunnel.lisp | 37 +++++++++++++++++++++++++++++++ 6 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 examples/projects/tunnel.lisp diff --git a/desktop/sources/lisp/prelude.lisp b/desktop/sources/lisp/prelude.lisp index ebca107..4bf7134 100644 --- a/desktop/sources/lisp/prelude.lisp +++ b/desktop/sources/lisp/prelude.lisp @@ -1,5 +1,7 @@ ; (echo "Loading prelude.lisp") +; +(def frame-rect (frame)) ; translate (defn translate (r p) diff --git a/desktop/sources/scripts/ronin.js b/desktop/sources/scripts/ronin.js index 821d068..ee7236c 100644 --- a/desktop/sources/scripts/ronin.js +++ b/desktop/sources/scripts/ronin.js @@ -11,7 +11,7 @@ function Ronin () { b_inv: '#ffb545' } - this.includes = [] // ['prelude'] + this.includes = ['prelude'] this.el = document.createElement('div') this.el.id = 'ronin' diff --git a/examples/demo/fog.lisp b/examples/demo/fog.lisp index 8b61a29..403f56a 100644 --- a/examples/demo/fog.lisp +++ b/examples/demo/fog.lisp @@ -2,26 +2,25 @@ (resetTransform) (clear) ; -(def w (of (frame) :c)) -(def h (of (frame) :m )) +(def frame-rect (frame)) (def mouse-pos (pos)) (def prev-pos (pos)) ; (defn when-mouse-move (e) ( - (set mouse-pos :x (of e :x)) - (set mouse-pos :y (of e :y)) + (set mouse-pos "x" e:x) + (set mouse-pos "y" e:y) )) ; (defn when-animate () ( - (stroke (line (of prev-pos :x) (of prev-pos :y) (of mouse-pos :x) (of mouse-pos :y)) 4 "#72dec2") - (move w h) + (stroke (line prev-pos:x prev-pos:y mouse-pos:x mouse-pos:y) 4 "#72dec2") + (move frame-rect:c frame-rect:m) (rotate 0.002) (scale 0.998) - (translate (frame) (pos (mul -1 w) (mul -1 h))) + (translate frame-rect (pos (mul -1 frame-rect:w) (mul -1 frame-rect:h))) (resetTransform) - (fill (frame) "#00000004") - (set prev-pos :x (of mouse-pos :x)) - (set prev-pos :y (of mouse-pos :y)) + (fill frame-rect "#00000004") + (set prev-pos "x" mouse-pos:x) + (set prev-pos "y" mouse-pos:y) )) ; (on "animate" when-animate) diff --git a/examples/demo/spiral.lisp b/examples/demo/spiral.lisp index 817d6cf..6f91895 100644 --- a/examples/demo/spiral.lisp +++ b/examples/demo/spiral.lisp @@ -1,12 +1,13 @@ ; animated recusive spiral ; by @local_guru +(def frame-rect (frame)) (defn rec (v) (if (gt v 0) ( ; params - (def spiral-x (add (:c (frame)) (mul (cos (add (div v 17) (time 0.001))) (div v 2)))) - (def spiral-y (add (:m (frame)) (mul (sin (div v 11)) (div v 2)))) + (def spiral-x (add frame-rect:c (mul (cos (add (div v 17) (time 0.001))) (div v 2)))) + (def spiral-y (add frame-rect:m (mul (sin (div v 11)) (div v 2)))) (def spiral-r (div v 2)) ; draw (stroke (circle spiral-x spiral-y spiral-r) 1 "rgba(114,222,194,0.1)") (rec (sub v 0.3))))) diff --git a/examples/demo/stars.lisp b/examples/demo/stars.lisp index c2353f2..a3243b7 100644 --- a/examples/demo/stars.lisp +++ b/examples/demo/stars.lisp @@ -5,7 +5,7 @@ (cx cy r a) ( (stroke - (line cx cy (of (circle-pos cx cy r a) :x) (of (circle-pos cx cy r a) :y) + (line cx cy (:x (circle-pos cx cy r a)) (:y (circle-pos cx cy r a)) ) 2 "white"))) ; (defn draw-star @@ -25,12 +25,8 @@ () ( (draw-star - (random 100 - (of - (frame) :w)) - (random 100 - (of - (frame) :h)) + (random 100 frame-rect:w) + (random 100 frame-rect:h) (random 10 100) (floor (random 3 32)))))) \ No newline at end of file diff --git a/examples/projects/tunnel.lisp b/examples/projects/tunnel.lisp new file mode 100644 index 0000000..7316877 --- /dev/null +++ b/examples/projects/tunnel.lisp @@ -0,0 +1,37 @@ +; this demo shows how to use the mouse events to draw make a simple drawing tool. +; +(clear) +; +(def prev-pos {:x 0 :y 0}) +; +(defn stroke-color + (e) + (if + (eq e:is-down true) "#ffb545" "#72dec2")) +; +(defn draw-line + (e) + ( + (if + (eq e:is-down true) + ( + (debug e:is-down) + (stroke + (line prev-pos:x prev-pos:y e:x e:y) 2 "white") + (set prev-pos "x" e:x "y" e:y) + (debug prev-pos) + (debug e))))) +; +(defn draw-circle + (e) + ( + (debug e) + (set prev-pos "x" e:x "y" e:y) + (debug e:x) + (stroke + (circle e:x e:y 10) 4 + (stroke-color e)))) +; +(on "mouse-down" draw-circle) +(on "mouse-up" draw-circle) +(on "mouse-move" draw-line) \ No newline at end of file