/* built with Studio Sketchpad: * https://sketchpad.cc * * observe the evolution of this sketch: * https://studio.sketchpad.cc/sp/pad/view/ro.GTA$0OkTnjl/rev.12 * * authors: * GoToLoop * license (unless otherwise specified): * creative commons attribution-share alike 3.0 license. * https://creativecommons.org/licenses/by-sa/3.0/ */ /** * Bouncy Words (v3.04) * by tfguy & jtwhite14 (2013/Aug) * mod GoToLoop * * forum.processing.org/topic/animated-text * studio.processingtogether.com/sp/pad/export/ro.9eHY5Fel1e0Jr/latest */ static final int NUM = 3; final BouncyWord[] words = new BouncyWord[NUM]; void setup() { size(300, 200, JAVA2D); smooth(4); fill(BouncyWord.INK); textAlign(LEFT, CENTER); textFont(createFont("Trebuchet MS Bold", BouncyWord.DIM, true)); words[0] = new BouncyWord("History", -1.5, 0, 50); words[1] = new BouncyWord("Design", 2.3, 0, 100); words[2] = new BouncyWord("Studio", -3, 0, 150); } void draw() { background(-1); for (BouncyWord w : words) w.bounce(); } class BouncyWord { static final short DIM = 90; static final color INK = 0100 << 030; String word; float px, py, vx, vy; BouncyWord(String iword, float ivy, float ipx, float ipy) { word = iword; vy = ivy; px = ipx; py = ipy; } void bounce() { if ((py += vy) >= height - (DIM>>2) | py < (DIM>>2)) vy *= -1; text(word, px, py); } }