//Interactive Toy
//Spencer Johnston
//Intro To Media Computation
//10/06/15 (Submitted Two Days Late)
color blockColor;
float blockPosX;
float blockPosY;
float blockSpeed;
int padding;
void setup(){
size(800,800);
noStroke();
padding = 100;
blockPosX = 350;
blockPosY = 400;
blockColor = color(255);
blockSpeed = 3;
}
void draw(){
//Update block Position
moveblock();
//Draw
background(255);
drawBackground();
drawblock();
}
void moveblock(){
//Movement Keys
if(key == 'a'){
blockSpeed = 3;
} else if(key == 'd'){
blockSpeed = -3;
}
//Screen Wrapping
if(blockPosX > width + padding){
blockPosX = 0 - padding;
//blockPosY = random(0, height);
}
if(blockPosX < 0 - padding){
blockPosX = width + padding;
//blockPosY = random(0, height);
}
//Physical Movement
blockPosX -= blockSpeed;
}
void drawBackground(){
//Sky Background Gradient Pattern
for(int i = 0; i < 5; i++){
fill(0, 0, i * 20);
rect(0, i * 100, width, 100);
}
}
void drawblock(){
//Draw block
fill(blockColor);
rect(blockPosX, blockPosY, 100, 100);
fill(0);
rect(blockPosX + 25, blockPosY + 70, 50, 10);
ellipse(blockPosX + 30, blockPosY + 30, 30, 30);
ellipse(blockPosX + 70, blockPosY + 30, 20, 20);
//Change Color based on Mouse Position
if((mouseX > blockPosX && mouseX < blockPosX + 100) && (mouseY > blockPosY && mouseY < blockPosY + 100)){
blockColor = color(0, random(0, 255), random(0, 255));
} else {
blockColor = color(255);
}
}