/*//////////////////////////////////////////////////////////////////////////////////////////////
** Frail Man - Interactive toy by Firaas Khan
**
** Aliens are invading earth!
** The only who can stop them is Frail Man; the frailest man in the world!
** Avoid the aliens so they run into the force field.
** Becarful, as one hit ends Frail's Mans life.
** Survive for as long as you can!
/*//////////////////////////////////////////////////////////////////////////////////////////////
//Global variables
int starsX = 0;
int starsY = 0;
int alienX=(int) random(0,400);
int alienY=0;
int alienW = 40;
int alienH = 100;
int screenHit = 0;
float move = 4;
int frailX = 180;
int frailY = 300;
int frailW = 10;
int frailH = 100;
boolean left = false;
boolean right = false;
//Setting up screen size
void setup(){
size(400,400);
}
//Draw functions, plus collision and key presses
void draw(){
drawBackGround();
drawFrailMan();
drawAlien();
checkCollision();
keyPressed();
keyReleased();
}
void drawBackGround(){
background(0); //Make background black
//Draw white stars with random X and Y values
for (int i = 0; i<5; i=i+1);{
starsX= (int) random(0,400);
starsY= (int) random(0,400);
stroke(255);
point(starsX,starsY);
}
}
void drawFrailMan(){
//Drawing Frailman
stroke(255);
line(frailX+10,360,frailX+10,400);
line(frailX-10,360,frailX-10,400);
line(frailX,360,frailX,320);
line(frailX+10,360,frailX-10,360);
line(frailX+10,340,frailX,320);
line(frailX,320,frailX-10,340);
ellipseMode(CENTER);
fill(255);
ellipse(frailX,310,20,20);
//Frailman moves 10 pixels left or right if pressing a or d
if (left == true){
frailX-=10;
}
else if (right == true){
frailX+=10;
}
//Confine Frailman within window
if (frailX<=0){
frailX=1;
}
else if (frailX>=400){
frailX=399;
}
}
void drawAlien(){
//Drawing Alien
triangle(alienX,alienY,alienX,alienY+10,alienX+20,alienY);
triangle(alienX+20,alienY,alienX+40,alienY,alienX+40,alienY+10);
stroke(60,122,9);
fill(106,179,46);
rectMode(CORNERS);
rect(alienX,alienY,alienX+40,alienY-40);
stroke(0);
fill(0);
ellipseMode(CENTER);
ellipse(alienX+10,alienY-30,5,5);
ellipse(alienX+30,alienY-30,5,5);
//Alien moves 4 pixels initially, based on variable "move"
if (alienY<=400){
alienY+=move;
}
//Reset alien's position when if it hits the bottom screen
else if (alienY>=401){
alienX = (int) random(0,400);
alienY = -20;
screenHit+=1;//Counts how many times alien hit bottom screen
}
//Change value of "move" if "screenHit" is at specific values
if (screenHit == 3){
move= 5.5;
}
if (screenHit == 10){
move = 7;
}
if (screenHit == 15){
move = 10;
}
}
//Controls for moving Frailman
//Determines if movement is true
void keyPressed(){
if (key=='a'){
left = true;
right = false;
}
else if (key =='d'){
left = false;
right = true;
}
}
//Determines if key is releases, so Frailman isn't moving constantly
void keyReleased(){
if (key=='a'){
left = false;
right = false;
}
else if (key =='d'){
left = false;
right = false;
}
}
//Collision check for alien and Frailman
void checkCollision(){
if (frailX+10>alienX-20&&
frailX-10< alienX+20 &&
frailY>alienY-20 &&
frailY-10<alienY+20){
//Center Frailman if collision occurs
frailX=180;
//Reset position, speed, and screenHit if collsion occurs
alienX = (int) random(0,400);
alienY = -20;
move=4;
screenHit=0;
}
}