-class dCursor {
- dStrip s, sNext;
- int nLast,pos,posNext,end; // 0 - 65535
- int dir; // 1 or -1
- color clr;
-
- dCursor(color _c) { clr=_c;}
-
- boolean isDone() { return pos==end; }
- void set(dStrip _s, int _dir) {
- s=_s; dir=_dir; pos = 0; end=65536; nLast=-1; sNext=null;
+//----------------------------------------------------------------------------------------------------------------------------------
+class Worms extends SCPattern {
+ float StripsPerSec = 10;
+ float TrailTime = 3000;
+ int numCursors = 50;
+ ArrayList<dCursor> cur = new ArrayList<dCursor>(30);
+
+ private GraphicEQ eq = null;
+
+ private BasicParameter pBeat = new BasicParameter("BEAT", 0);
+ private BasicParameter pSpeed = new BasicParameter("FAST", .2);
+ private BasicParameter pBlur = new BasicParameter("BLUR", .3);
+ private BasicParameter pWorms = new BasicParameter("WRMS", .3);
+ private BasicParameter pConfusion = new BasicParameter("CONF", .1);
+ private BasicParameter pEQ = new BasicParameter("EQ" , 0);
+ private BasicParameter pSpawn = new BasicParameter("DIR" , 0);
+
+ int zMidLat = 82;
+ float nConfusion;
+ private final Click moveChase = new Click(1000);
+
+ xyz middle;
+ int AnimNum() { return floor(pSpawn.getValuef()*(4-.01)); }
+ float randX() { return random(model.xMax-model.xMin)+model.xMin; }
+ float randY() { return random(model.yMax-model.yMin)+model.yMin; }
+ xyz randEdge() {
+ return random(2) < 1 ? new xyz(random(2)<1 ? model.xMin:model.xMax, randY(), zMidLat) :
+ new xyz(randX(), random(2)<1 ? model.yMin:model.yMax, zMidLat) ;