xxxxxxxxxx
389
var player;
var wall1, wall2, wall3, wall4, wall5, wall6, wall7, wall8, wall9, wall10, wall11, wall12, wall13, wall14, wall15, wall16;
var gameState = "home";
var playButton, retryButton;
var col1, col2, col3;
var key1, key2, key3;
var key1state = "close", key2state = "close", key3state = "close";
var health = 100;
var healZone;
var laserGroup1, laserGroup2;
var enemy1;
var enemyHealth = 50;
var enemyState = "alive";
var generator;
function setup(){
createCanvas(400, 400);
player = createSprite(100,600,50,50);
player.shapeColor = "black";
wall1 = createSprite(100,800,415,20);
//wall2 = createSprite(100,400,415,20);
wall3 = createSprite(100,0,415,20);
wall4 = createSprite(100,-400,415,20);
wall5 = createSprite(100,-800,415,20);
wall6 = createSprite(300,200,20,415);
wall7 = createSprite(300,-200,20,415);
wall8 = createSprite(300,-600,20,415);
wall9 = createSprite(300,-1000,20,415);
wall10 = createSprite(300,600,20,415);
wall11 = createSprite(-100,200,20,415);
wall12 = createSprite(-100,-200,20,415);
wall13 = createSprite(-100,-600,20,415);
wall14 = createSprite(-100,-1000,20,415);
wall15 = createSprite(-100,600,20,415);
wall16 = createSprite(100,-1200,415,20);
key1 = createSprite(260, 40, 50, 50);
key2 = createSprite(-60, -360, 50, 50);
key3 = createSprite(260, -760, 50, 50);
wall1.shapeColor = "grey";
//wall2.shapeColor = "grey";
wall3.shapeColor = "grey";
wall4.shapeColor = "grey";
wall5.shapeColor = "grey";
wall6.shapeColor = "grey";
wall7.shapeColor = "grey";
wall8.shapeColor = "grey";
wall9.shapeColor = "grey";
wall10.shapeColor = "grey";
wall11.shapeColor = "grey";
wall12.shapeColor = "grey";
wall13.shapeColor = "grey";
wall14.shapeColor = "grey";
wall15.shapeColor = "grey";
wall16.shapeColor = "grey";
col1 = rgb(0,0,0);
col1.setAlpha(100);
playButton = createButton('PLAY');
playButton.position(50,275);
playButton.style('background-color', col1);
playButton.style("font-family","Impact");
playButton.style("font-size","64px");
playButton.size(300,100);
playButton.mousePressed(play);
col3 = rgb(255,0,89);
retryButton = createButton('TRY AGAIN');
retryButton.position(50,275);
retryButton.style('background-color', col3);
retryButton.style("font-family","Impact");
retryButton.style("font-size","64px");
retryButton.size(300,100);
retryButton.mousePressed(respawn);
retryButton.hide();
laserGroup1 = new Group();
laserGroup2 = new Group();
enemy1 = createSprite(200,-600,50,50);
col2 = rgb(150,255,150);
col2.setAlpha(100);
healZone = createSprite(100,-1000,200,200);
healZone.shapeColor = col2;
generator = createSprite(260, -360, 50, 50);
}
function draw(){
background(50);
fill(200);
rect(-100,-1200,400,2000);
camera.x = player.x;
camera.y = player.y;
console.log(Math.round(health));
playState();
enemyStuff();
drawSprites();
graphics();
gameStates();
}
function graphics(){
rectMode(CENTER);
fill(255);
noStroke();
rect(player.x, player.y-10, 50, 10);
rect(player.x, player.y+10, 50, 10);
}
function playerMovement(){
if(keyDown("w") || keyDown("UP_ARROW")){
player.y -= 7.5;
if(keyDown("SHIFT")){
health -= 0.3;
player.y -= 20;
}
}
if(keyDown("a") || keyDown("LEFT_ARROW")){
player.x -= 7.5;
if(keyDown("SHIFT")){
health -= 0.3;
player.x -= 20;
}
}
if(keyDown("s") || keyDown("DOWN_ARROW")){
player.y += 7.5;
if(keyDown("SHIFT")){
health -= 0.3;
player.y += 20;
}
}
if(keyDown("d") || keyDown("RIGHT_ARROW")){
player.x += 7.5;
if(keyDown("SHIFT")){
health -= 0.3;
player.x += 20;
}
}
}
function Collisions(){
player.collide(wall1);
//player.collide(wall2);
if(key1state !== "open"){
player.collide(wall3);
}else{
wall3.visible = false;
}
if(key2state !== "open"){
player.collide(wall4);
}else{
wall4.visible = false;
}
if(key3state !== "open" || enemyState === "alive"){
player.collide(wall5);
}else{
wall5.visible = false;
}
player.collide(wall6);
player.collide(wall7);
player.collide(wall8);
player.collide(wall9);
player.collide(wall10);
player.collide(wall11);
player.collide(wall12);
player.collide(wall13);
player.collide(wall14);
player.collide(wall15);
player.collide(wall16);
}
function play(){
gameState = "play";
}
function helpText(){
text("WASD or Arrow Keys to move", -35, 690);
text("Shift to Dash", 40, 740);
text("WARNING: Dash reduces Health", -46, 780);
text("Hello Blockhead, you shouldn't have" + "\n" + "messed with that square-l, it bit you and" + "\n" + "now look what's happened, you're a " + "\n" + "SQUARE! You just blacked out, until you" + "\n" + "woke up, here, in this dark and scary jail." + "\n" + "Your only hope of ever seeing the sun" + "\n" + "again is to use your skills. You vowed" + "\n" + "never to use it, but now, you have no" + "\n" + "choice. Go for it, Blockhead Bandit!", -85, 430);
text("Use keys to open doors", -75, 40);
text("Watch out for lasers!",0,-135);
text("Crazy and Red Dude, deals high damage, watch out!",0,-600,200,200);
text("Heal your health here",7,-1000);
}
function keyOpen(){
if(player.isTouching(key1)){
key1state = "open";
key1.visible = false;
}
if(player.isTouching(key2)){
key2state = "open";
key2.visible = false;
}
if(player.isTouching(key3)){
key3state = "open";
key3.visible = false;
}
if(player.y < wall3.y){
key1state = "close";
wall3.visible = true;
}
if(player.y < wall4.y){
key2state = "close";
wall4.visible = true;
}
if(player.y < wall5.y){
key3state = "close";
wall5.visible = true;
}
}
function healthBar(){
if(health <= 0.01){
health = 0.01;
}
if(health >= 100){
health = 100;
}
fill(255,0,0);
rect(player.x - 50, player.y - 50, 100,15);
fill(0,255,0);
rect(player.x - 50, player.y - 50, health,15);
}
function laserGun1(){
var laser1;
laser1 = createSprite(300,-100,20,5);
laser1.shapeColor = "red";
laser1.lifetime = 40;
laser1.depth = 1;
if(gameState === "play" && frameCount % 10 === 0){
laser1.velocityX = -10;
laserGroup1.add(laser1);
}
if(laserGroup1.isTouching(player)){
health -= 1;
}
}
function laserGun2(){
var laser2;
laser2 = createSprite(-100,-200,20,5);
laser2.shapeColor = "red";
laser2.lifetime = 40;
laser2.depth = 1;
if(gameState === "play" && frameCount % 10 === 0){
laser2.velocityX = 10;
laserGroup2.add(laser2);
}
if(laserGroup2.isTouching(player)){
health -= 1;
}
}
function enemyStuff(){
var dir = random(0,360);
enemy1.shapeColor = "red";
if(gameState === "home"){
enemy1.setSpeedAndDirection(20,dir);
}
if(gameState === "play" && enemyState === "alive"){
if(enemy1.isTouching(player)){
health -= 5;
}
if(enemyHealth <= 1){
enemy1.visible = false;
enemyState = "dead";
}
if(enemy1.isTouching(wall4)||enemy1.isTouching(wall5)||enemy1.isTouching(wall8)||enemy1.isTouching(wall13) && enemyState === "alive"){
enemyHealth -= 1;
enemy1.bounceOff(wall4);
enemy1.bounceOff(wall5);
enemy1.bounceOff(wall8);
enemy1.bounceOff(wall13);
}
}
if(enemy1.isTouching(wall4)||enemy1.isTouching(wall5)||enemy1.isTouching(wall8)||enemy1.isTouching(wall13)){
enemy1.bounceOff(wall4);
enemy1.bounceOff(wall5);
enemy1.bounceOff(wall8);
enemy1.bounceOff(wall13);
}
}
function respawn(){
gameState = "play";
player.x = 100;
player.y = 600;
key1state = "close";
key2state = "close";
key3state = "close";
key1.visible = true;
key2.visible = true;
key3.visible = true;
wall3.visible = true;
wall4.visible = true;
wall5.visible = true;
health = 100;
retryButton.hide();
}
function healing(){
if(player.isTouching(healZone)){
health++;
}
}
function gameStates(){
if(health < 1){
gameState = "lose";
}
if(gameState === "home"){
filter(BLUR, 1);
textSize(35);
fill(0);
rect(100,player.y - 125, 375, 50);
fill(255);
text("BLOCKHEAD BANDIT",player.x-175, player.y - 112);
}
if(gameState === "lose"){
fill(0,174, 255);
rect(player.x,player.y,400,400);
stroke(255,196,0);
textSize(50);
fill(255,196,0);
text("YOU LOST" + "\n" + "Blockhead!",player.x-120, player.y - 75);
retryButton.show();
enemyHealth = 50;
enemy1.visible = true;
enemyState = "alive";
}
}
function playState(){
if(gameState === "play"){
textSize(20);
playButton.hide();
fill(0);
helpText();
keyOpen();
playerMovement();
Collisions();
healthBar();
laserGun1();
laserGun2();
healing();
gameStates();
}
}
//function count = 14 (excluding the 2 essential ones - draw and setup)