summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Okay <okay@toyful.space>2021-02-17 10:07:18 -0600
committerColin Okay <okay@toyful.space>2021-02-17 10:07:18 -0600
commitc9f7104a2d8b9738c90580730bf177c2e8175b0f (patch)
treef5975777158a7498eae94c25ded1a9ffdf91ef51
parentfc451600120a665b447af39dd0b85cf432741f93 (diff)
dropping unwiggly wigglers
-rw-r--r--Source/Main.hx60
1 files changed, 32 insertions, 28 deletions
diff --git a/Source/Main.hx b/Source/Main.hx
index 2736bc0..a17c25b 100644
--- a/Source/Main.hx
+++ b/Source/Main.hx
@@ -145,16 +145,27 @@ class Wiggler extends Sprite
addCircles();
addBones();
+
drift = {x: MAX_SPEED * Math.random() * Util.randomSign(),
y: MAX_SPEED * Math.random() * Util.randomSign()};
- //renderPhases = [ for (phase in [Circles, Skeleton, Clusters, Border]) if (Util.cointoss()) phase];
renderPhases = [Circles, Border];
addEventListener(Event.ENTER_FRAME, perFrame);
- // addEventListener(Event.ADDED_TO_STAGE, (e) -> Wiggler.allWigglers.push(this));
Wiggler.allWigglers.push(this);
+
+ // destroy wigglers with no bones, but let them show up for a second first.
+ Actuate.timer(0.45).onComplete(() -> {
+ var bonecount = 0;
+ for (v in bones) bonecount += 1;
+ if (bonecount == 0)
+ {
+ destroyInitiated = true;
+ destroy();
+ }
+ });
+
}
// some reusable variables for intersection
@@ -382,23 +393,25 @@ class Wiggler extends Sprite
var toBranch = Math.ceil(Math.random() * BRANCHING_FACTOR);
var newNbrs = validNeighbors.slice(0, toBranch);
-
- bones[node] =
- newNbrs.map( nbr -> {
- var currentAngle = Util.calcAngleBetween(node, parentHinge, nbr);
- var startAngle = currentAngle - 10*ONE_DEGREE;
- var stopAngle =currentAngle + 10 * ONE_DEGREE;
- return ({
+ if (newNbrs.length > 0)
+ {
+ bones[node] =
+ newNbrs.map( nbr -> {
+ var currentAngle = Util.calcAngleBetween(node, parentHinge, nbr);
+ var startAngle = currentAngle - 10*ONE_DEGREE;
+ var stopAngle =currentAngle + 10 * ONE_DEGREE;
+ return ({
butt: nbr,
- followers: [],
- active: false,
- startAngle: startAngle,
- stopAngle: stopAngle,
- currentAngle: currentAngle,
- spin: ONE_DEGREE * if (Util.cointoss()) -1 else 1
- } : SkeletonNode);
- });
-
+ followers: [],
+ active: false,
+ startAngle: startAngle,
+ stopAngle: stopAngle,
+ currentAngle: currentAngle,
+ spin: ONE_DEGREE * if (Util.cointoss()) -1 else 1
+ } : SkeletonNode);
+ });
+ }
+
for (nbr in newNbrs)
{
reverseBones[nbr] = node;
@@ -636,10 +649,8 @@ class DrawingScreen extends Sprite
function refresh ()
{
- Actuate.stop(this);
if (candidateWiggler != null)
{
- //removeChild( candidateWiggler );
candidateWiggler = null;
}
graphics.clear();
@@ -649,18 +660,11 @@ class DrawingScreen extends Sprite
holdPath = false;
}
- function fadeAndRefresh()
- {
- Actuate
- .tween(this, 0.5, {alpha: 0})
- .onComplete( refresh );
- }
-
function onMouseUp (e)
{
drawing = false;
graphics.clear();
- if (!holdPath) fadeAndRefresh();
+ if (!holdPath) refresh();
}
function clearAndRenderPath()