xxxxxxxxxx
620
//arrays for game
let bullets = [];
let jads = [];
let enemies = [];
//player variables
var playerX = 95;
var playerY = 290;
var wheels = playerY;
var playerHealth = 60;
var score = 0;
var highScore = 0;
var deadYesNo = false;
//clouds for "movement"
var cloud1X = 50;
var cloud1Y = 100;
var cloud2X = 220;
var cloud2Y = 150;
var cloud3X = 350;
var cloud3Y = 80;
//dirt for mevement too
var dirt1X = 390;
var dirt1Y = 340;
var dirt2X = 330;
var dirt2Y = 350;
var dirt3X = 230;
var dirt3Y = 380;
var dirt4X = 100;
var dirt4Y = 330;
//jump timer variables
var jumping = false;
var goingUp = false;
var boardSize = 12;
//crouch timer variables
var crouching = false;
var crouchingTime = 20;
//bomb variables
var bombActive = false;
var bombCooldown = 0;
//enemy var
var timer = 1;
//bullet var
var bulletReset = 10;
//big bad guy
var badX = 350;
var badY = 280;
var badHealth = 60;
var badLevel = 1;
var IsUp = true;
//game variables
var screen = 0;
function setup()
{
createCanvas(400, 400);
button1 = createButton("Next");
button1.mousePressed(Next);
button1.position(200,250);
button2 = createButton("Play Again");
button2.mousePressed(reset);
button2.position(-200,250);
for(let i=0; i<0; i++)
{
bullets[i] = new Bullet(10,10,1,0,0);
}
for(let p=0; p<0; p++)
{
jads[p] = new Bullet(10,10,3,3,0);
}
for(let o=0; o<0; o++)
{
enemies[o] = new Bullet(10,10,1,0,0);
}
}
function draw()
{
if(screen == 0)
{
textSize(30);
text("sk8ter vs. T A N K",height/2-100,30);
textSize(20);
text("Use up arrow for jump, down arrow for duck",height/2-200,90);
text("Use right arrow for bomb, left arrow for shoot",height/2-200,120);
text("shoot the tank when the guy is in the window",height/2-200,+150);
text("throw bombs when he peaks his head",height/2-200,+180);
text("dodge missles and survive!!",height/2-200,210);
}
if(screen == 1)
{
if(deadYesNo == false)
{
score+=1;
if(score>highScore)
{
highScore = score;
}
//put movement on a timer
moveMent();
//puts jump on a timer
if(jumping == true)
{
jump();
}
if(crouching == true)
{
crouch();
}
if(bombActive == true)
{
bombActivated();
}
enemyAttack();
BulletsMove();
//background
background("rgb(111,111,206)");
fill("rgb(78,3,3)")
rect(0,300,400,100);
fill("green");
rect(0,300,400,20);
//player
if(playerY == 290)
{
wheels=290;
boardSize = 12;
fill("black");
rect(playerX-15,playerY-3,30,4);
rect(playerX-20,playerY-5,7,4);
rect(playerX+14,playerY-3,7,4);
fill("gray");
circle(playerX-10,wheels+5,8);
circle(playerX+10,wheels+5,8);
}
if(playerY != 290)
{
if(jumping == true)
{
fill("black");
rect(playerX-20,playerY,40,boardSize);
fill("grey");
circle(playerX-10,wheels+12,8);
circle(playerX+10,wheels+12,8);
}
if(jumping == false)
{
fill("grey");
circle(playerX-10,wheels+12,8);
circle(playerX+10,wheels+12,8);
fill("black");
rect(playerX-20,playerY,40,boardSize);
}
}
if(crouching == false)
{
fill("rgb(155,165,147)");
rect(playerX-30,playerY-95,60,10);
fill("rgb(109,207,20)");
rect(playerX-30,playerY-95,playerHealth,10);
fill("rgb(148,41,145)");
circle(playerX,playerY-50,20);
rect(playerX-3,playerY-55,6,40);
rect(playerX-3,playerY-35,15,6);
rect(playerX-12,playerY-35,15,6);
rect(playerX-13,playerY-15,26,6);
rect(playerX-13,playerY-15,6,12);
if(jumping==false)
{
rect(playerX+8,playerY-15,6,12);
}
if(jumping==true)
{
rect(playerX+8,playerY-15,12,6);
}
}
if(crouching == true)
{
fill("rgb(155,165,147)");
rect(playerX-30,playerY-95,60,10);
fill("rgb(109,207,20)");
rect(playerX-30,playerY-95,playerHealth,10);
fill("rgb(148,41,145)");
rect(playerX-18,playerY-8,40,6);
circle(playerX+28,playerY-8,20);
rect(playerX-2,playerY-3,18,6);
rect(playerX-18,playerY-18,6,12);
}
//clouds
noStroke();
fill("white");
circle(cloud1X,cloud1Y,50);
circle(cloud1X-20,cloud1Y+5,40);
circle(cloud1X+20,cloud1Y+5,40);
circle(cloud2X,cloud2Y,50);
circle(cloud2X-20,cloud2Y+5,40);
circle(cloud2X+20,cloud2Y+5,40);
circle(cloud3X,cloud3Y,50);
circle(cloud3X-20,cloud3Y+5,40);
circle(cloud3X+20,cloud3Y+5,40);
//dirt
fill("gray");
rect(dirt1X,dirt1Y,10,10);
rect(dirt2X,dirt2Y,10,10);
rect(dirt3X,dirt3Y,10,10);
rect(dirt4X,dirt4Y,10,10);
for(let i = 0;i < jads.length;i++)
{
if(jads[i].tm < 104)
{
fill("black");
circle(jads[i].x,jads[i].y,20);
rect(jads[i].x-5,jads[i].y-10,10,10);
}
else if(jads[i].tm == 105)
{
fill("yellow");
circle(jads[i].x,jads[i].y,120);
}
}
//enemies drawing
for(let q = 0;q < enemies.length;q++)
{
fill("gray");
rect(enemies[q].x,enemies[q].y,30,6);
fill("red");
triangle(enemies[q].x-10,enemies[q].y+3, enemies[q].x,enemies[q].y, enemies[q].x,enemies[q].y+6);
triangle(enemies[q].x+20,enemies[q].y+5, enemies[q].x+30,enemies[q].y+10, enemies[q].x+30,enemies[q].y+5);
triangle(enemies[q].x+20,enemies[q].y, enemies[q].x+30,enemies[q].y-5, enemies[q].x+30,enemies[q].y);
}
if(IsUp == true)
{
//bad man drawing
fill("rgb(155,165,147)");
rect(badX-30,badY-95,60,10);
fill("rgb(109,207,20)");
rect(badX-30,badY-95,badHealth,10);
fill("rgb(19,80,19)");
rect(badX-20,badY-65,60,80);
rect(badX-80,badY-55,60,20);
rect(badX-80,badY-10,60,20);
rect(badX-25,badY-110,10,50);
fill("rgb(148,41,145)");
circle(badX,badY-75,25);
fill("rgb(60,63,58)");
circle(badX-20,badY+30,40);
circle(badX+30,badY+30,40);
circle(badX+5,badY+30,40);
fill("rgb(107,112,103)");
circle(badX-20,badY+30,30);
circle(badX+30,badY+30,30);
circle(badX+5,badY+30,30);
}
else if(IsUp == false)
{
//bad man drawing
fill("rgb(155,165,147)");
rect(badX-30,badY-95,60,10);
fill("rgb(109,207,20)");
rect(badX-30,badY-95,badHealth,10);
fill("rgb(19,80,19)");
rect(badX-20,badY-65,60,80);
rect(badX-80,badY-55,60,30);
rect(badX-80,badY-10,60,30);
rect(badX-25,badY-70,50,10);
fill("rgb(148,41,145)");
circle(badX,badY-20,25);
fill("rgb(60,63,58)");
circle(badX-20,badY+30,40);
circle(badX+30,badY+30,40);
circle(badX+5,badY+30,40);
fill("rgb(107,112,103)");
circle(badX-20,badY+30,30);
circle(badX+30,badY+30,30);
circle(badX+5,badY+30,30);
}
//bullets
for(let v = 0;v < bullets.length;v++)
{
fill("black");
circle(bullets[v].x,bullets[v].y,10,10);
}
fill("red");
text("score: "+score,180,30);
text("high score: "+highScore,160,60);
}
}
}
function moveMent()
{
if(deadYesNo == false)
{
//timer
timer+=1;
if(timer == 200- badLevel||timer == 400- badLevel|| timer == 600- badLevel|| timer == 800- badLevel)
{
enemies.push( new Bullet(380,270,3,3,0));
}
if(timer == 800 - badLevel)
{
timer = 0;
if(IsUp == false)
{
IsUp = true;
}
else if(IsUp == true)
{
IsUp = false;
}
}
//gravity
if(playerY<290)
{
playerY+=1;
wheels +=1;
}
//cloud movement
cloud1X-=1;
cloud2X-=1;
cloud3X-=1;
if(cloud1X == -50)
{
cloud1X=450;
}
if(cloud2X == -50)
{
cloud2X=450;
}
if(cloud3X == -50)
{
cloud3X=450;
}
//dirt movement
dirt1X-=1;
dirt2X-=1;
dirt3X-=1;
dirt4X-=1;
if(dirt1X == -50)
{
dirt1X=450;
}
if(dirt2X == -50)
{
dirt2X=450;
}
if(dirt3X == -50)
{
dirt3X=450;
}
if(dirt4X == -50)
{
dirt4X=450;
}
//player movement
if(keyIsDown(UP_ARROW))
{
if(playerY==290 && crouching == false)
{
jumping = true;
}
}
if(keyIsDown(DOWN_ARROW))
{
if(playerY==290)
{
crouching = true;
}
}
//bombs
if(keyIsDown(RIGHT_ARROW))
{
if(bombCooldown ==0)
{
jads.push( new Bullet(1,1,3,6,0));
bombActive = true;
bombCooldown = 10;
}
}
//bombs
if(keyIsDown(LEFT_ARROW))
{
if(bulletReset == 0)
{
bullets.push( new Bullet(playerX+20,playerY-30,5,3,0));
bulletReset = 20;
}
}
//oddly specific wheel jumping motion
if(jumping==false && playerY != 290)
{
wheels+=.2;
if(playerY>270)
{ boardSize += .2;}
else
{
boardSize -= .2;
}
}
}
}
function jump()
{
if(playerY > 250)
{
goingUp = true;
}
else
{
goingUp = false;
}
if(goingUp == true)
{
playerY-=3;
wheels -=3.6;
if(playerY>270)
{
boardSize -= .2;
}
{
boardSize -= .2;
}
}
else
{
jumping = false;
}
}
function crouch()
{
crouchingTime -=.5;
if(crouchingTime == 0)
{
crouching = false;
crouchingTime =20;
}
}
function bombActivated()
{
if(bombCooldown > 0)
{
bombCooldown -=1;
}
for(let b = 0; b < jads.length; b++)
{
if(jads[b].tm == 0 )
{
jads[b].x = playerX-20;
jads[b].y = playerY-30;
}
if(jads[b].tm < 106)
{
jads[b].x += jads[b].xSpeed;
jads[b].y -= jads[b].ySpeed;
jads[b].ySpeed -= 0.1;
}
jads[b].tm+=1;
if(jads[b].tm==106)
{
var bombHitBad = dist(jads[b].x,jads[b].y,badX,badY);
if(bombHitBad < 200 && IsUp == true)
{
badHealth -=10;
if(badHealth <= 0)
{
badHealth = 60;
badLevel+=10;
}
}
jads.splice(b,1);
}
}
}
function enemyAttack()
{
for(let r = 0; r < enemies.length; r++)
{
var randomVar = random(1,10);
if(enemies[r].tm==0)
{
if(randomVar >= 5)
{
enemies[r].tm = 1;
enemies[r].y = 280;
enemies[r].x = 350;
}
else
{
enemies[r].tm = 2;
enemies[r].y = 240;
enemies[r].x = 350;
}
}
enemies[r].x -=4;
var boom = dist(enemies[r].x,enemies[r].y,playerX,playerY-25);
if(boom < 45 && crouching == false)
{
enemies.splice(r,1);
playerHealth-=10;
if(playerHealth == 0)
{
deadYesNo = true;
button2.position(200,270);
}
}
if(boom < 25 && crouching == true)
{
var crouchedBoom = dist(enemies[r].x,enemies[r].y,playerX,playerY);
if(crouchedBoom < 25)
{
enemies.splice(r,1);
playerHealth -=10;
if(playerHealth == 0)
{
deadYesNo = true;
}
}
}
}
}
function BulletsMove()
{
for(let m = 0; m < bullets.length; m++)
{
bullets[m].x += bullets[m].xSpeed;
//enemy hitbox
var bulletHitBad = dist(bullets[m].x,bullets[m].y,badX,badY);
if(bulletHitBad < 30 && IsUp == false)
{
badHealth -=10;
if(badHealth <= 0)
{
badHealth = 60;
badLevel+=10;
}
bullets.splice(m,1);
}
}
if(bulletReset != 0)
{
bulletReset -= 1;
}
}
function Next()
{
screen+=1;
button1.position(-100,100);
}
function reset()
{
screen = 1;
button2.position(-100,100);
deadYesNo = false;
score = 0;
playerHealth = 60;
badHealth = 60;
badLevel = 1;
}