/*
Assignment 2 - Interactive Toy
Laser Pixel Glitch
By: Vanessa Urnos
Instructor: Fredd Eyles
Game:
Destroy the enemy targets coming on to the screen with a laser shot attack from
the ship, enemies gradually get faster once hit. Difficult of game is relied on
speed and gravity as well as the background to create confusion for the player.
*/
/////////Referenced code from Code Orienteering
////////Referenced code from Previous Year Examples
//Requirement 2/7
///////Variables////////
//Gradient Background Variables
float boxGradientPosX;
float boxGradientPosY;
float gradientX=50;
float gradientY=400;
//Ship Variables
float shipSizeW = 10;
float shipSizeH = 40;
float shipPosX = 370;
//Enemy Variables
float enemySizeW = 15;
float enemySizeH = 15;
float enemyY = random(40,360);
float enemyX = 0;
float Speed = 0.2;
Float Gravity = 0.20;
void setup() {
//Requirement 1/7
size(400, 400);
noStroke();
//slows down the colour change of the background overall
frameRate(20);
rectMode(CORNER);
}
void draw()
{
//Required 6/7
//Background
drawDullGradientBackground();
//Ship
drawShip();
//Enemy Targets
drawEnemies();
}
////Background
//Required 5/7
//Required 7/7
/////////Referenced code from Code Orienteering
void drawDullGradientBackground()
//randomizes colours in the bacground
{
boxGradientPosX=0;
while (boxGradientPosX<width) {
boxGradientPosY=0;
while (boxGradientPosY<height) {
noStroke();
fill(random(150),random(150),random(150));
rect(boxGradientPosX, boxGradientPosY, gradientX, gradientY);
boxGradientPosY+=gradientY;
}
boxGradientPosX+=gradientX;
}
}
/////Ship
void drawShip()
{
stroke (222,236,6);
strokeWeight(4);
noFill();
rect(shipPosX,mouseY,shipSizeW,shipSizeH);
}
//Required 7/7
//Enemy Targets
void drawEnemies()
{
stroke(200);
strokeWeight(3);
fill(random(150,255),random(150,255),random(150,255));
rect(enemyX, enemyY,enemySizeW,enemySizeH);
Speed = Speed + Gravity;
enemyX = enemyX + Speed;
//Required 7/7
//Reset Enemy Position when hit by laser
if (enemyX>height){
enemyX=0;
Speed=0;
enemyY=random(20,360);
}
//Requirement 3/7
//Ship Attack
if (mousePressed){
stroke(random(255),random(255),random(255));
strokeWeight(3);
line(mouseX,mouseY+20,width-50,mouseY+20);
}
//When player shoots enemy, enemy gradually moves faster
if (mousePressed && enemyY-10<mouseY && enemyY+10>mouseY) {
enemyY=random(40,340);
enemyX=0;
Speed=Speed + 0.005;
Speed = Speed + Gravity;
enemyX = enemyX +Speed;
}
}