|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2018 UltrasonicMadness
|
|
|
+ * Copyright 2021 UltrasonicMadness
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -20,6 +20,15 @@ Bubble[] bubbles = new Bubble[256];
|
|
|
// The bubbles can be turned off.
|
|
|
boolean bubblesOn = true;
|
|
|
|
|
|
+// Which stage the rainbow is at currently (0-1535, i.e. 256 * 6)
|
|
|
+int rainbowFrame = 0;
|
|
|
+
|
|
|
+// If true, hold on a steady color
|
|
|
+boolean rainbowPaused = false;
|
|
|
+
|
|
|
+// If true, generate rainbow-colored bubbles
|
|
|
+boolean bubbleTeaMode = false;
|
|
|
+
|
|
|
void setup()
|
|
|
{
|
|
|
size(800,600);
|
|
@@ -31,12 +40,24 @@ void setup()
|
|
|
*/
|
|
|
for (int bubbleCounter = 0; bubbleCounter < bubbles.length; bubbleCounter++)
|
|
|
{
|
|
|
- bubbles[bubbleCounter] = new Bubble(int(random(0, width)), height, int(random(15,25)));
|
|
|
+ bubbles[bubbleCounter] = new Bubble(int(random(0, width)), height, int(random(15,25)), bubbleTeaMode);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void draw()
|
|
|
{
|
|
|
+ if (!rainbowPaused)
|
|
|
+ {
|
|
|
+ if (rainbowFrame >= 1535)
|
|
|
+ {
|
|
|
+ rainbowFrame = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ rainbowFrame++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
genBackground();
|
|
|
genRainbow(196);
|
|
|
|
|
@@ -46,7 +67,7 @@ void draw()
|
|
|
// Small chance of activating the bubble if the bubbles are on.
|
|
|
if (int(random(0,64)) == 3 && bubblesOn)
|
|
|
{
|
|
|
- bubbles[bubbleCounter].activate();
|
|
|
+ bubbles[bubbleCounter].activate(bubbleTeaMode);
|
|
|
}
|
|
|
|
|
|
bubbles[bubbleCounter].advance();
|
|
@@ -64,8 +85,8 @@ void genBackground()
|
|
|
|
|
|
void genRainbow(int alpha)
|
|
|
{
|
|
|
- int counter = frameCount % 256;
|
|
|
- int colorTransitionId = (frameCount / 256) % 6;
|
|
|
+ int counter = rainbowFrame % 256;
|
|
|
+ int colorTransitionId = (rainbowFrame / 256) % 6;
|
|
|
noStroke();
|
|
|
|
|
|
switch (colorTransitionId)
|
|
@@ -100,8 +121,44 @@ void genRainbow(int alpha)
|
|
|
|
|
|
void keyPressed()
|
|
|
{
|
|
|
- if (key == ' ')
|
|
|
+ switch (key)
|
|
|
{
|
|
|
- bubblesOn = !bubblesOn;
|
|
|
+ case ' ':
|
|
|
+ bubblesOn = !bubblesOn;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'P':
|
|
|
+ case 'p':
|
|
|
+ rainbowPaused = !rainbowPaused;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'T':
|
|
|
+ case 't':
|
|
|
+ bubbleTeaMode = !bubbleTeaMode;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '1':
|
|
|
+ rainbowFrame = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '2':
|
|
|
+ rainbowFrame = 256;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '3':
|
|
|
+ rainbowFrame = 512;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '4':
|
|
|
+ rainbowFrame = 768;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '5':
|
|
|
+ rainbowFrame = 1024;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '6':
|
|
|
+ rainbowFrame = 1280;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|