From 6a1b50c33dc9977c5c702ab19c2fa6243e3f24f6 Mon Sep 17 00:00:00 2001 From: Abhinav Sarkar Date: Tue, 15 Oct 2013 20:12:06 +0530 Subject: [PATCH] Added a circle in center to indicate the mass causing gravity --- resources/public/index.html | 8 +++++++- src/cljs/frpong/core.cljs | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/resources/public/index.html b/resources/public/index.html index 5278ef8..c7da4a4 100644 --- a/resources/public/index.html +++ b/resources/public/index.html @@ -22,6 +22,11 @@ body { fill: orange; } +#mass { + opacity: 0.5; + fill: khaki; +} + #rpaddle, #lpaddle { fill: rgb(108, 182, 108); } @@ -48,13 +53,14 @@ body {

Gravity Pong!

Gravity - + 0 10 press <space> to start
+ 0 diff --git a/src/cljs/frpong/core.cljs b/src/cljs/frpong/core.cljs index e1d4d0a..46f348e 100644 --- a/src/cljs/frpong/core.cljs +++ b/src/cljs/frpong/core.cljs @@ -62,18 +62,24 @@ (def *init-vel-deg-lim* [35 55]) (def *perturb-factor* 0.02) +(def *init-mass-radius* 0) + (def *paddle-width* 10) (def *paddle-step* 8) (def *max-paddle-y* (- *height* *paddle-size*)) (def *ef-paddle-width* (+ *paddle-width* *padding*)) (def *init-paddle-pos* (/ (- *height* *paddle-size*) 2)) -(def *gravity* (atom 0.01)) +(def *gravity* (atom 0.005)) + +(defn mass-radius [] + (+ *init-mass-radius* (* (deref *gravity*) 1000))) ;; listen for changes in the gravity input slider and set the atom value accordingly (ev/listen! (dom/by-id "gravity") :change - #(let [val (* (int (dom/value (dom/by-id "gravity"))) 0.005)] + #(let [val (* (int (dom/value (dom/by-id "gravity"))) 0.01)] (reset! *gravity* val) + (dom/set-attr! (dom/by-id "mass") "r" (mass-radius)) (.blur (dom/by-id "gravity")))) (defn layout-game @@ -86,6 +92,10 @@ (dom/set-attr! "r" *ball-radius*) (dom/set-attr! "cx" (first *center*)) (dom/set-attr! "cy" (second *center*))) + (doto (dom/by-id "mass") + (dom/set-attr! "r" (mass-radius)) + (dom/set-attr! "cx" (first *center*)) + (dom/set-attr! "cy" (second *center*))) (doto (dom/by-id "score") (dom/set-attr! "x" (first *center*)) (dom/set-attr! "y" (second *center*)))