class Motes { float posX, posY, mSize, gSpeed, sSpeed, rSpeed, fSpeed, popWarning, pSpeed; float C, A, S, SA, startSize; boolean pop, fallen; Motes (float startPosX, float startPosY, float startSize, float growthSpeed, float shrinkSpeed, float risingSpeed, float fallSpeed, float tolerancePoint, float popSpeed) { posX = startPosX; posY = startPosY; mSize = 0; this.startSize = startSize*100; gSpeed = growthSpeed; sSpeed = shrinkSpeed; rSpeed = risingSpeed; fSpeed = fallSpeed; popWarning = tolerancePoint*100; pSpeed = popSpeed; A = (posY/height)*255; C = 100; S = 0; SA = 255; pop = false; fallen = false; } float getPosX() { return posX; } float getPosY() { return posY; } float getMSize() { return mSize; } float getAlpha() { return A; } float getStrokeAlpha() { return SA; } float getStartSize() { return startSize; } void fadeInMote() { if (mSize <= startSize) { mSize += 1; } else { mSize = startSize; } } void drawMote() { fill(C,C,C, int(A)); stroke(abs(S),abs(S),abs(S),SA); strokeWeight(1); ellipse (posX, posY, mSize, mSize); } void raiseMote() { if (mSize < popWarning) { posY -= rSpeed; } } void increaseSize() { // Increases the size of the mote if (pop == false) { // during a mouseOver. if (mSize < popWarning) { // This method is only called when mSize += gSpeed; // mouseOver is active. } else if (mSize >= popWarning && mSize <= 100) { // mSize += pSpeed; } else if (mSize > 100) { A = 255; pop = true; fallen = true; } else { fallen = false; } } } void update(boolean mCollide) { if (posY >= height - mSize/2) { fallen = true; } else { fallen = false; } if (pop) { popMote(); } else { if (fallen) { A = 100; SA = 255; if (S >= 255) { S = -S; } S = S + 5; } else { SA = 255 - ((posY/height)*255); A = (posY/height)*255; S = 0; } if (mCollide == false) { if (mSize < popWarning) { if (posY <= mSize/2) { // Makes sure the motes posY = mSize/2; // do not go past the } else if (posY >= (height-(mSize/2))) { // window frame posY = height - (mSize/2); // } else { // posY += fSpeed; // } // } if (mSize > 10) { mSize -= sSpeed; } else { mSize = 10; } } } } void popMote() { if (posY >= height-5) { // Makes sure that the Mote posY = height-5; // does not go beyond } else { // the window frame posY += 5.0; // } // if (mSize <= 10) { mSize = 10; } else { mSize -= 3.0; } if (A <= 0) { A = 0; } else { A = (255 - ((posY/height)*255)); } if (posY >= height-5 && mSize <= 10) { pop = false; } } void fadeWin() { if (mSize < 100) { mSize += 1; } else { mSize = 100; } if (A > 0) { A -= 5; } else { A = 0; } if (SA > 0) { SA -= 5; } else { SA = 0; } drawMote(); } void fadeLose() { if (mSize > 10) { mSize -= 1; } else { mSize = 10; } if (A > 0) { A -=5; } else { A = 0; } if (SA > 0) { SA -= 5; } else { SA = 0; } drawMote(); } }