I really liked the idea of the text making a word out of random letters in the air. I tried to make a similar thing, but the word is always the same 😀
When the program starts the letters float on the screen. As soon as the mouse is pressed, they make a word in the center of the screen. I made sure that the letters won’t get out of bounds.
Here is the code:
String word = "hello world";
letters[] l1;
void setup() {
size(640, 640);
l1 = new letters[word.length()];
for (int i =0; i<word.length(); i++) {
l1[i] = new letters(word.charAt(i), width/3 +i*25, height/2);
}
//String word = "Hello";
}
void draw() {
background(255);
for (int i =0; i<word.length(); i++) {
if (mousePressed) {
l1[i].print();
l1[i].returnBack();
} else {
l1[i].print();
}
}
}
class letters {
char symbol;
float x;
float y;
char c;
float randX, randY;
float originx, originy;
letters(char _c, float _x, float _y) {
x = _x;
y = _y;
c = _c;
originx = x;
originy = y;
randX = random(-3, 3);
randY = random(-3, 3);
}
void print() {
fill(0);
textSize(36);
textAlign(CENTER);
text(c, x, y);
x += randX;
if (x>= width || x <=0) {
randX = -randX;
}
y += randY;
if (y>= height || y <=0) {
randY = -randY;
}
}
void returnBack(){
float deltaX = (originx - x)/3;
float deltaY = (originy - y)/3;
x += deltaX;
y += deltaY;
}
}
And here is a video: