/*
Blinken - By: P.Y. Boulerice
/////////////////////////////////////////////////////////////////////////////
Play as a small enthusiastic cube as he tries to put his world back together.
An unknown enemy has wripped it appart. Find him. Destroy him. And restore
balance. Goodluck young one!
/////////////////////////////////////////////////////////////////////////////
*/
// Variables
float x;
float y;
boolean playerBlink = false;
float blinkUnit = 0;
boolean jumping = false;
boolean jumpStatus = false;
float jump = 0;
// Door Keys
boolean door1 = false; // to world2
boolean door2 = false; // key
boolean door3 = false; // to boss1
boolean door4 = false; // to world1
boolean door5 = false;
// Notifications
float notif = 0;
float notifY = 480;
float notifTimer = 0;
boolean notifSwitch = false;
// CHARACTERS
// Stalker
float stalkerX = 550;
float stalkerY = 240;
float stalkerSize = 80;
boolean stalkerApple = false;
boolean stalkerBlink = false;
float stalkerBlinkUnit = 0;
// Boss
float bossX = 260;
float bossY = 0;
float bossSize = 200;
boolean bossBlink = false;
float bossBlinkUnit = 0;
boolean fistSmash = false;
float fistState = 0;
float fistY = 40;
float fistX = 0;
float fistAcc = 1;
float bossHealth = 3;
// Boss Switch
boolean bossHurtDown = false;
boolean bossSwitchDir = false;
float bossSwitchSize = 20;
float bossSwitchX = 150;
boolean bossSwitchTriggered = false;
// Boss Explosion
float explosionStage = 0;
float explosionSize = 200;
float explosionTimer = 0;
// Mentor
float mentorX = 0;
float mentorY = 240;
boolean mentorBlink = false;
float mentorBlinkUnit = 0;
float mentorSize = 40;
// Story
boolean story = false;
float storyStage = 2;
float storyTimer = 0;
// Character is notified that he or she needs a key a the watchpoint.
boolean storyEvent1 = false;
// Screen Animation
float sa = 0;
// Spike
boolean spikeDirection = true;
float spike1X = 0;
float spike1Y = 0;
float spike1Acc = 1;
boolean spikeCanDie = false;
// Box 1
float box1X;
float box1Y;
float box1DoorSize;
float box1Size = 50;
// EvilBall1_1
float eb1X = 550;
float eb1Y = 100;
float eb1YV = 1;
float eb1Size = 30;
float eb2Size = 30;
float eb3Size = 30;
boolean eb1JumpDir = false;
// Building1_1
float build1_1X = 650;
float build1_1Y = 240;
float build1_1Size = 50;
float build1_1DoorSize = 0;
// WatchPoint1_1
float watchPoint1_1X = -100;
float watchPoint1_1Y = 240;
float watchPoint1_1Size = 40;
float watchPoint1_1DoorSize = 0;
// Box 2
float box2X;
float box2Y;
float box2DoorSize;
float box2Size = 50;
// Box 3
float box3X;
float box3Y;
float box3DoorSize;
float box3Size = 50;
// Apples
float apple1X = -500;
float apple1Y = 250;
float targetX;
float targetY;
boolean globalMove;
float allMover;
float dir;
boolean playerMoving;
float center;
float speed;
color currentColor = color(#90AEFF);
color hoverColor = 0;
boolean doorContact = false;
boolean fillr = false;
float world = -1;
float worldSave = -1;
// Colors
color world1Color = color(0);
color world2Color = color(0);
color world3Color = color(0);
color world4Color = color(0);
// Maintains
float mountX = 0;
float mountY = 240;
void setup()
{
size(720, 480);
noStroke();
// variables
x = width / 2;
y = height / 2;
// box 1
box1X = 200;
box1Y = height / 2;
box1DoorSize = 0;
// box 2
box2X = 900;
box2Y = height / 2;
box2DoorSize = 0;
// box 3
box3X = -200;
box3Y = height / 2;
box3DoorSize = 0;
center = (width / 2) - 10;
globalMove = false;
dir = 0;
allMover = 0;
targetX = -1.;
targetY = -1.;
playerMoving = false;
speed = 5.;
// Boss
fistX = width / 2;
//A52445
//F3921E
//CD4544
//470B37
//05C096 //048D6E //024032
//8D7D4A
world1Color = color(#470B37);
world2Color = color(#F3921E);
world3Color = color(#05C096);
world4Color = color(#A52445);
currentColor = 0;
background(#05C096);
}
void draw()
{
// HOUSEKEEPING
houseKeeping();
//background(#A52445);
//javaTest();
// Watch Points
watchPoint1_1();
// Secret Door to Gun
// Boss
// Spikes
spikeEngine();
spike2(spike1X + 100);
spike2(spike1X + 70);
spike2(spike1X + 40);
// BOX PORTALS BETWEEN WORLDS
box1();
box2();
box3();
build1_1();
//EvilBall
evilBallEngine();
evilBall1((eb1X + 1));
evilBall1((eb1X - 500));
evilBall3(100);
evilBall3(620);
// Items and Keys
apple1();
// World Stuff
mountains();
// Boss
bossSwitch();
boss();
bossExplosion();
// Stalker
stalker1();
// Floor
if (world > -1)
{
player();
}
if (world > 0)
{
fill(255, 50);
for (int i = 0; i < 730; i+=5)
{
rect(i, height/2 + 20, 4, 4);
}
}
// Characters
characterMentor((width / 2) - 50., mentorY);
// Story Engine
storyEngine();
// Notifications
notifications();
// World 4 Fade in Screen Animation (SA)
world4();
// Dead
dead();
// Pause Menu
pause();
// Menu
menu();
// Player Clasping
playerClasping();
}
void reset()
{
x = width / 2;
y = height / 2;
playerBlink = false;
blinkUnit = 0;
jumping = false;
jumpStatus = false;
jump = 0;
// Story
story = false;
// Spike
spikeDirection = true;
// Stalker
stalkerX = 550;
stalkerY = 240;
stalkerSize = 80;
stalkerBlink = false;
stalkerBlinkUnit = 0;
// Mentor
mentorX = 0;
mentorY = 240;
mentorBlink = false;
mentorBlinkUnit = 0;
// Box 1
box1X = 200;
box1Y = height / 2;
box1DoorSize = 0;
box1Size = 0;
// EvilBall1_1
eb1X = 550;
eb1Y = 100;
eb1YV = 1;
eb1Size = 30;
eb1JumpDir = false;
// Spikes
spikeDirection = true;
spike1X = 0;
spike1Y = 0;
spike1Acc = 1;
spikeCanDie = false;
// Building1_1
build1_1X = 650;
build1_1Y = 240;
build1_1Size = 50;
build1_1DoorSize = 0;
// WatchPoint1_1
watchPoint1_1X = -100;
watchPoint1_1Y = 240;
watchPoint1_1Size = 40;
watchPoint1_1DoorSize = 0;
// Box 2
box2X = 800;
box2Y = height / 2;
box2DoorSize = 0;
box2Size = 0;
// Box 3
box3X = -50;
box3Y = height / 2;
box3DoorSize = 0;
box3Size = 50;
// Apples
apple1X = -500;
apple1Y = 250;
targetX = -1.;
targetY = -1.;
globalMove = false;
allMover = 0;
dir = 0;
playerMoving = false;
center = (width / 2) - 10;
speed = 5.;
// Boss
fistX = width / 2;
bossHealth = 3;
currentColor = color(0);
hoverColor = 0;
doorContact = false;
fillr = false;
world = 1;
// Maintains
mountX = 0;
mountY = 240;
}
void houseKeeping()
{
background(currentColor);
if (world == 1)
{
currentColor = world1Color;
} else if (world == 2)
{
currentColor = world2Color;
} else if (world == 3)
{
currentColor = world3Color;
} else if (world == 4)
{
currentColor = world4Color;
}
}
void playerClasping()
{
if (world == 2)
{
if (stalkerApple == false)
{
if (x > stalkerX - 50)
{
targetX = stalkerX - 50;
// Push Notification
notifSwitch = true;
notifTimer = 0;
notif = 3;
}
} else if (door5 == true)
{
if (x > stalkerX - 70)
{
door5 = false;
}
}
}
}
void storyEngine()
{
if (story == true)
{
if (storyStage == 1)
{
playerMoving = true;
if (world == 1)
{
storyTimer++;
if (storyTimer < 400)
{
fill(255);
textSize(18);
text("This world is unstable. It has been fractured!?!", 250, 380);
} else if (storyTimer > 400 && storyTimer < 800)
{
fill(255);
textSize(18);
text("Travel through it's broken pieces using the", 250, 380);
text("'Portalways'. SOLVE THIS IMPOSSIBILITY!", 250, 400);
} else if (storyTimer > 800 && storyTimer < 1100)
{
fill(255);
textSize(18);
text("Use 'e' to interact with things.", 250, 380);
text("Also, click around to move.", 250, 400);
} else if (storyTimer > 1100)
{
story = false;
storyStage = 2;
storyTimer = 0;
playerMoving = false;
}
}
} else if (storyStage == 2)
{
playerMoving = true;
if (world == 1)
{
storyTimer++;
if (storyTimer < 400)
{
if (globalMove == false && targetX == -1.)
{
fill(255);
textSize(18);
text("You have found your first Portalway!", 250, 380);
text("Go on... Explore! (use 'E' to interact)", 250, 400);
}
} else if (storyTimer > 400)
{
playerMoving = false;
story = false;
storyStage = 2;
storyTimer = 0;
notifTimer = 0;
notif = 1;
notifSwitch = true;
}
}
} else if (storyStage == 3)
{
playerMoving = true;
if (world == 2)
{
storyTimer++;
if (storyTimer < 400)
{
if (globalMove == false && targetX == -1.)
{
fill(255);
textSize(18);
text("You need a key to unlock that...", 250, 380);
text("Try going the other way...", 250, 400);
}
} else if (storyTimer > 400)
{
playerMoving = false;
story = false;
storyStage = 3;
storyTimer = 0;
}
}
} else if (storyStage == 4)
{
playerMoving = true;
if (world == 4)
{
storyTimer++;
if (storyTimer < 400)
{
if (globalMove == false && targetX == -1.)
{
fill(255);
textSize(18);
text("You did it... You really did it...", 250, 380);
text("But how???", 250, 400);
}
} else if (storyTimer > 400 && storyTimer < 800)
{
fill(255);
textSize(18);
text("JUST KIDDING YOU FOOL!", 250, 380);
text("NOW YOU ARE STUCK IN THE ABYSS!", 250, 400);
} else if (storyTimer > 800 && storyTimer < 1000)
{
fill(255);
textSize(18);
text("PEACE!!!!!!", 250, 380);
} else if (storyTimer > 1000)
{
playerMoving = false;
story = false;
storyStage = 3;
storyTimer = 0;
}
}
}
}
}
void characterMentor(float xx, float yy)
{
if (story == true)
{
if (storyStage > 0)
{
if (globalMove == false && targetX == -1.)
{
mentorSize = 40;
// Icon Backround
fill(0, 50);
rect(0, 264, 720, 240);
// Character
fill(#EB8072);
rect(xx, yy - 20, 20, 40);
// Icon
fill(#EB8072);
rect(40, 300, 180, 180);
if (mentorBlink == false)
{
float ran = random(1, 100);
if ((int) ran == 2)
{
mentorBlink = true;
mentorBlinkUnit = 0;
}
fill(0, 90);
ellipse(xx + 10, yy - 10, 10, 10);
ellipse(130, 390, 120, 120);
} else
{
mentorBlinkUnit ++;
fill(0, 90);
ellipse(xx + 10, yy - 10, 10, sin(mentorBlinkUnit * 0.05) * 10.);
ellipse(130, 390, 120, sin(mentorBlinkUnit * 0.05) * 120.);
if (mentorBlinkUnit > 10)
{
mentorBlink = false;
}
}
}
}
} else
{
if (mentorSize > 0)
{
mentorSize -= 1.;
// Icon Backround
fill(0, 50);
rect(0, 264, mentorSize * 18, mentorSize * 6);
// Character
fill(#EB8072);
rect(xx, yy - 20, mentorSize / 2, mentorSize);
// Icon
fill(#EB8072);
rect(40, 300, 9 * (mentorSize / 2), 9 * (mentorSize / 2));
// Eyes
fill(0, 90);
ellipse(xx + 10, yy - 10, mentorSize / 4, mentorSize / 4);
ellipse(130, 390, mentorSize * 4, mentorSize * 4);
}
}
}
void player()
{
if (world > 0)
{
allMover = 0;
if (targetX >= 0)
{
if (x < targetX)
{
x+= speed;
if (x > targetX - 40)
{
speed = 3.;
}
if (x > targetX - 30)
{
speed = 2.;
}
if (x > targetX - 20)
{
speed = 1.;
}
} else if (x > targetX)
{
x-= speed;
if (x < targetX + 40)
{
speed = 3.;
}
if (x < targetX + 30)
{
speed = 2.;
}
if (x < targetX + 20)
{
speed = 1.;
}
}
if (x == targetX)
{
targetX = -1.;
globalMove = true;
speed = 40.;
//playerMoving = false;
}
}
if (globalMove == true)
{
if (x < center)
{
x+= speed;
allMover = (speed);
if (x > center - 40)
{
speed = 3.;
}
if (x > center - 30)
{
speed = 2.;
}
if (x > center - 20)
{
speed = 1.;
}
} else if (x > center)
{
x-= speed;
allMover = (speed * -1);
if (x < center + 40)
{
speed = 3.;
}
if (x < center + 30)
{
speed = 2.;
}
if (x < center + 20)
{
speed = 1.;
}
}
if (x == center)
{
globalMove = false;
playerMoving = false;
}
}
if (door2 == true)
{
fill(255);
ellipse(x + 10, y - 20, 10, 10);
} else if (door5 == true)
{
fill(255);
rect(x + 5, y - 30, 10, 10);
}
fill(#ABE8DB);
rect(x + jump, y + jump, 20, 20);
if (playerBlink == false)
{
float ran = random(1, 100);
if ((int) ran == 2)
{
playerBlink = true;
blinkUnit = 0;
}
fill(0, 90);
ellipse(x + 10, y + 10, 10, 10);
} else
{
blinkUnit ++;
fill(0, 90);
ellipse(x + 10, y + 10, 10, sin(blinkUnit * 0.05) * 10.);
if (blinkUnit > 10)
{
playerBlink = false;
}
}
}
//jumpAction();
}
void jumpAction()
{
if (jumping == true)
{
playerMoving = true;
if (jumpStatus == true)
{
jump--;
} else
{
jump++;
}
if (jump < -20)
{
jumpStatus = false;
}
if (jump > 0)
{
jump = 0;
jumping = false;
}
}
}
// World -2 (PAUSE SCREEN) *******************************************************************************************************
void pause()
{
if (world == -2)
{
if (sa < 1000)
{
sa+=40.;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
}
if (sa > 900)
{
currentColor = color(0);
}
fill(0);
ellipse(width / 2, height / 2, sa, sa);
fill(255);
textSize(32);
text("paused", (width / 2) - 57, (height / 2) - 50);
textSize(12);
text("PRESS 'P' TO CONTINUE", (width / 2) - 68, height / 2);
} else
{
if (sa < 0)
{
if (world != -2)
{
sa-=40;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
}
}
}
}
// World -1 (MENU SCREEN) *******************************************************************************************************
void menu()
{
if (world == -1)
{
sa = 1000;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
fill(255);
textSize(32);
text("blinken", (width / 2) - 57, (height / 2) - 25);
textSize(12);
text("PRESS 'E' TO START", (width / 2) - 55, (height / 2));
// Draw Character
fill(#ABE8DB);
rect(width/2 - 10, height/2 - 105, 20, 20);
if (playerBlink == false)
{
float ran = random(1, 100);
if ((int) ran == 2)
{
playerBlink = true;
blinkUnit = 0;
}
fill(#739C93);
ellipse(width/2 - 10 + 10, height/2 - 105 + 10, 10, 10);
} else
{
blinkUnit ++;
fill(#739C93);
ellipse(width/2 - 10 + 10, height/2 - 105 + 10, 10, sin(blinkUnit * 0.05) * 10.);
if (blinkUnit > 10)
{
playerBlink = false;
}
}
} else
{
if (sa < 0)
{
if (world != 0)
{
sa-=40;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
}
}
}
}
// World 0 (DEAD SCREEN) *******************************************************************************************************
void dead()
{
if (world == 0)
{
playerMoving = false;
if (sa < 1000)
{
sa+=40.;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
}
if (sa > 900)
{
currentColor = color(0);
}
fill(255);
textSize(32);
text("you died", (width / 2) - 57, (height / 2) - 50);
textSize(12);
text("PRESS 'E' TO RESPAWN", (width / 2) - 55, (height / 2));
}
}
// World 1 *******************************************************************************************************
void mountains()
{
if (world == 1 || world == 2 || world == 3 || world == 4)
{
fill(255, 20);
triangle(mountX - 200 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05), mountX - (pmouseX * 0.01), mountY - 100 - (pmouseY * 0.05), mountX + 200 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05));
triangle(mountX + 0 + (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05), mountX + 200 + (pmouseX * 0.01), mountY - 100 - (pmouseY * 0.05), mountX + 400 + (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05));
triangle(mountX + 200 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05), mountX + 400 - (pmouseX * 0.01), mountY - 100 - (pmouseY * 0.05), mountX + 600 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05));
triangle(mountX + 400 + (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05), mountX + 600 + (pmouseX * 0.01), mountY - 100 - (pmouseY * 0.05), mountX + 800 + (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05));
triangle(mountX + 600 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05), mountX + 800 - (pmouseX * 0.01), mountY - 100 - (pmouseY * 0.05), mountX + 1000 - (pmouseX * 0.01), mountY + 300 - (pmouseY * 0.05));
}
}
void watchPoint1_1()
{
if (world==2)
{
if (playerMoving == false)
{
if (x > watchPoint1_1X - 20 && x < watchPoint1_1X + 40)
{
if (door2 == true)
{
door3 = true;
}
if (door3 == false && storyEvent1 == false)
{
storyEvent1 = true;
story = true;
storyStage = 3;
storyTimer = 0;
}
}
} else
{
if (watchPoint1_1DoorSize > 0)
{
watchPoint1_1DoorSize -= 10;
fill(255);
ellipse(watchPoint1_1X, watchPoint1_1Y - 25, watchPoint1_1DoorSize, watchPoint1_1DoorSize);
}
}
if (door3 == true)
{
door2 = false;
if (watchPoint1_1DoorSize < 500)
{
watchPoint1_1DoorSize += 5;
}
if (watchPoint1_1DoorSize < 475)
{
watchPoint1_1DoorSize += 5;
}
fill(255);
ellipse(watchPoint1_1X, watchPoint1_1Y - 25, watchPoint1_1DoorSize + sin(frameCount * 0.1) *10., watchPoint1_1DoorSize + sin(frameCount * 0.1) *10.);
}
fill(255);
rect(watchPoint1_1X, watchPoint1_1Y - 20, watchPoint1_1Size / 2, watchPoint1_1Size);
}
watchPoint1_1X += allMover;
}
void notifications()
{
if (notifSwitch == true)
{
if (notifY > 420)
{
notifY -= 2;
}
notifTimer++;
if (notifTimer == 250)
{
notifSwitch = false;
notifTimer = 0;
}
if (notif == 1)
{
fill(255);
textSize(18);
text("Unlocked a Portalway!", (width / 2) - 135, notifY + 40);
}
if (notif == 2)
{
fill(255);
textSize(18);
text("A key has been found!", (width / 2) - 135, notifY + 40);
}
if (notif == 3)
{
fill(255);
textSize(18);
text("He needs food.", (width / 2) - 135, notifY + 40);
}
if (notif == 4)
{
fill(255);
textSize(18);
text("Found an apple!", (width / 2) - 135, notifY + 40);
}
if (notif == 5)
{
fill(255);
textSize(18);
text("Kill the boss!", (width / 2) - 135, notifY + 40);
}
if (notif == 6)
{
fill(255);
textSize(18);
text("Victorious!", (width / 2) - 135, notifY + 40);
}
fill(255, 50);
rect((width / 2) - 200, notifY, 400, 60);
fill(0, 50);
ellipse(width / 2 - 170, notifY + 30, 40, 40);
fill(255);
textSize(32);
text("!", (width / 2) - 175, notifY + 40);
} else
{
if (notifY < 480)
{
notifY += 2;
fill(255, 50);
rect((width / 2) - 200, notifY, 400, 60);
fill(0, 50);
ellipse(width / 2 - 170, notifY + 30, 40, 40);
fill(255);
textSize(32);
text("!", (width / 2) - 175, notifY + 40);
}
}
}
void box1()
{
if (world == 1)
{
if (door1 == true)
{
if (box1Size < 50)
{
box1Size += 1;
fill(255);
rect(box1X + 15, box1Y - 50 + sin(frameCount * 0.1) * 10, 20 - (box1Size / 2.5), 20 - (box1Size / 2.5));
}
if (playerMoving == false)
{
if (x > box1X - 20 && x < box1X + 50)
{
doorContact = true;
if (box1DoorSize < 150)
{
box1DoorSize += 5;
}
if (box1DoorSize < 200)
{
box1DoorSize += 5;
}
fill(world2Color);
ellipse(box1X, box1Y - 25, box1DoorSize + sin(frameCount * 0.1) *10., box1DoorSize + sin(frameCount * 0.1) *10.);
hoverColor = color(world2Color);
if (fillr == true)
{
box1DoorSize += 20;
if (box1DoorSize == 1000)
{
currentColor = hoverColor;
fillr = false;
box1DoorSize = 0;
world = 2;
}
}
}
} else
{
doorContact = false;
if (box1DoorSize > 0)
{
box1DoorSize -= 10;
fill(world2Color);
ellipse(box1X, box1Y - 25, box1DoorSize, box1DoorSize);
}
}
fill(255);
rect(box1X, box1Y - 30, box1Size, box1Size);
} else
{
// Player Detection
if (x <= box1X + 50 && x + 20 >= box1X)
{
// Unlock a door
if (door1 == false)
{
door1 = true;
story = true;
storyTimer = 0;
}
}
fill(255);
rect(box1X + 15, box1Y - 50 + sin(frameCount * 0.1) * 10, 20, 20);
}
} else
{
if (box1Size > 0)
{
box1Size -= 5;
fill(255);
rect(box1X, box1Y - 30, box1Size, box1Size);
}
}
box1X += allMover;
}
void spikeEngine()
{
if (world == 1 || world == 2 || world == 3)
{
if (spikeDirection == true)
{
spike1Y-= spike1Acc;
spike1Acc *= 1.5;
} else
{
if (spike1Y > -35)
{
spikeCanDie = false;
}
if (spike1Y < 0)
{
spike1Y++;
} else
{
float ran = random(0, 100);
if ((int) ran == 2)
{
spikeDirection = true;
}
}
}
if (spike1Y < -40)
{
spikeCanDie = true;
spikeDirection = false;
spike1Acc = 1;
}
}
spike1X += allMover;
}
void spike1(float spikeXMulti)
{
if (world == 1)
{
fill(255);
triangle(spikeXMulti - 10, 260, spikeXMulti, 260 + spike1Y, spikeXMulti + 10, 260);
if (spikeCanDie == true)
{
if (spikeXMulti - 10 <= x + 20 && spikeXMulti + 10 >= x)
{
world = 0;
}
}
}
}
void spike2(float spikeXMulti)
{
if (world == 2)
{
fill(255);
triangle(spikeXMulti - 10, 260, spikeXMulti, 260 + spike1Y, spikeXMulti + 10, 260);
if (spikeCanDie == true)
{
if (spikeXMulti - 10 <= x + 20 && spikeXMulti + 10 >= x)
{
world = 0;
}
}
}
}
void evilBallEngine()
{
if (world == 1 || world == 2 || world == 3)
{
if (eb1JumpDir == false)
{
eb1YV*= 1.1;
eb1Y+= eb1YV;
if (eb1Y >= 245)
{
eb1JumpDir = true;
}
} else if (eb1JumpDir == true)
{
eb1YV /= 1.1;
if (eb1YV <= 1)
{
eb1YV = 1.;
}
eb1Y -= eb1YV;
if (eb1Y <= 100)
{
eb1JumpDir = false;
}
}
if (eb1Size < 30)
{
eb1Size += 5;
}
if (world == 1)
{
if (eb1Size < 30)
{
eb1Size+=5;
}
} else if (world == 2)
{
if (eb2Size < 30)
{
eb2Size+=5;
}
} else if (world == 3)
{
if (eb3Size < 30)
{
eb3Size+=5;
}
}
}
eb1X += allMover;
}
void evilBall1(float ebxMulti)
{
if (world == 1)
{
fill(255);
ellipse(ebxMulti, eb1Y, eb1Size, eb1Size);
if (x > ebxMulti - 40 && x < ebxMulti + 20)
{
if (eb1Y >= y)
{
sa = 1;
world = 0;
}
}
} else
{
if (eb1Size > 0)
{
eb1Size-=5;
fill(255);
ellipse(ebxMulti, eb1Y, eb1Size, eb1Size);
}
}
}
void evilBall3(float ebxMulti)
{
if (world == 3)
{
fill(255);
ellipse(ebxMulti, eb1Y, eb3Size, eb3Size);
if (x > ebxMulti - 40 && x < ebxMulti + 20)
{
if (eb1Y >= y)
{
sa = 1;
world = 0;
}
}
} else
{
if (eb3Size > 0)
{
eb3Size-=5;
fill(255);
ellipse(ebxMulti, eb1Y, eb3Size, eb3Size);
}
}
}
void stalker1()
{
if (world == 2)
{
fill(255);
rect(stalkerX, stalkerY - 80, stalkerSize / 2, stalkerSize);
rect(stalkerX - 30, stalkerY - 60 + (sin(frameCount * 0.05) * 5), stalkerSize / 2, stalkerSize / 2);
rect(stalkerX + 5, stalkerY - 20, stalkerSize / 16, stalkerSize / 2);
rect(stalkerX + 30, stalkerY - 20, stalkerSize / 16, stalkerSize / 2);
if (stalkerBlink == false)
{
float ran = random(1, 100);
if ((int) ran == 2)
{
stalkerBlink = true;
stalkerBlinkUnit = 0;
}
fill(0, 90);
ellipse(stalkerX - 20, stalkerY - 30 + (sin(frameCount * 0.05) * 5), 10, 10);
} else
{
stalkerBlinkUnit ++;
fill(0, 90);
ellipse(stalkerX - 20, stalkerY - 30 + (sin(frameCount * 0.05) * 5), 10, sin(stalkerBlinkUnit * 0.05) * 10.);
if (stalkerBlinkUnit > 10)
{
stalkerBlink = false;
}
}
}
stalkerX += allMover;
}
void build1_1()
{
if (world == 2) // WORLD 1 ++++++++++++++++++++++++++++++++++++++++++++++
{
if (build1_1Size < 80)
{
build1_1Size += 5;
}
if (playerMoving == false)
{
if (x > build1_1X - 20 && x < build1_1X + 80)
{
doorContact = true;
if (build1_1DoorSize < 200)
{
build1_1DoorSize += 5;
}
if (build1_1DoorSize < 220)
{
build1_1DoorSize += 5;
}
fill(0, 50);
rectMode(CENTER);
rect(build1_1X + (build1_1Size / 2), build1_1Y - 4, build1_1DoorSize + (sin(frameCount * 0.1) *20.), 48);
rectMode(CORNER);
hoverColor = color(0, 50);
if (fillr == true)
{
build1_1DoorSize += 20;
if (build1_1DoorSize == 1000)
{
build1_1DoorSize = 1000;
fillr = false;
world = 2.1;
}
}
}
} else
{
doorContact = false;
if (build1_1DoorSize > 0)
{
build1_1DoorSize -= 20;
fill(0, 50);
rectMode(CENTER);
rect(build1_1X + (build1_1Size / 2), build1_1Y - 4, build1_1DoorSize, 48);
rectMode(CORNER);
}
}
if (fillr == false)
{
if (build1_1DoorSize > 220)
{
build1_1DoorSize -= 20;
}
}
fill(255);
rect(build1_1X, build1_1Y - 140, (build1_1Size), build1_1Size * 2);
rect(build1_1X + 20, (build1_1Y - 230) + (sin(frameCount * 0.05) * 5.), (build1_1Size / 2), build1_1Size);
} else if (world == 2.1) // WORLD 1.1 ++++++++++++++++++++++++++++++++++++++++++++++
{
// Get a Key
if (door2 == false)
{
door2 = true;
notif = 2;
notifSwitch = true;
}
fill(0, 50);
rectMode(CENTER);
rect(build1_1X + (build1_1Size / 2), build1_1Y - 4, build1_1DoorSize, 48);
rectMode(CORNER);
if (build1_1Size > 0)
{
build1_1Size -= 5;
fill(255);
rect(build1_1X, build1_1Y - 140, (build1_1Size), build1_1Size * 2);
rect(build1_1X + 20, (build1_1Y - 230), (build1_1Size / 2), build1_1Size);
}
} else
{
if (build1_1Size > 0)
{
build1_1Size -= 20;
fill(255);
rect(build1_1X, build1_1Y - 140, (build1_1Size), build1_1Size * 2);
rect(build1_1X + 20, (build1_1Y - 230), (build1_1Size / 2), build1_1Size);
}
}
build1_1X += allMover;
}
// World 2 *******************************************************************************************************
//A52445
//F3921E //B36C16
//CD4544
//470B37
//05C096
//8D7D4A //048D6E //024032
void box3()
{
if (world == 2 && door3 == true)
{
box3Size = 50;
if (playerMoving == false)
{
if (x > box3X - 20 && x < box3X + 50)
{
doorContact = true;
if (box3DoorSize < 150)
{
box3DoorSize += 5;
}
if (box3DoorSize < 200)
{
box3DoorSize += 5;
}
fill(#05C096);
ellipse(box3X, box3Y - 25, box3DoorSize + sin(frameCount * 0.1) *10., box3DoorSize + sin(frameCount * 0.1) *10.);
hoverColor = color(#05C096);
if (fillr == true)
{
box3DoorSize += 20;
if (box3DoorSize == 1000)
{
currentColor = hoverColor;
fillr = false;
box3DoorSize = 0;
world = 3;
notifSwitch = true;
notif = 5;
notifTimer = 0;
}
}
}
} else
{
doorContact = false;
if (box3DoorSize > 0)
{
box3DoorSize -= 10;
fill(#05C096);
ellipse(box3X, box3Y - 25, box3DoorSize, box3DoorSize);
}
}
fill(world2Color);
rect(box3X, box3Y - 30, box3Size, box3Size);
} else
{
if (box3Size > 0)
{
box3Size -= 5;
fill(world2Color);
rect(box3X, box3Y - 30, box3Size, box3Size);
}
}
box3X += allMover;
}
void box2()
{
if (world == 2)
{
if (door4 == true)
{
if (box2Size < 50)
{
box2Size += 1;
fill(255);
rect(box2X + 15, box2Y - 50 + sin(frameCount * 0.1) * 10., 20 - (box2Size / 2.5), 20 - (box2Size / 2.5));
}
if (playerMoving == false)
{
if (x > box2X - 20 && x < box2X + 50)
{
doorContact = true;
if (box2DoorSize < 150)
{
box2DoorSize += 5;
}
if (box2DoorSize < 200)
{
box2DoorSize += 5;
}
fill(world1Color);
ellipse(box2X, box2Y - 25, box2DoorSize + sin(frameCount * 0.1) *10., box2DoorSize + sin(frameCount * 0.1) *10.);
hoverColor = color(world1Color);
if (fillr == true)
{
box2DoorSize += 20;
if (box2DoorSize == 1000)
{
currentColor = hoverColor;
fillr = false;
box2DoorSize = 0;
world = 1;
}
}
}
} else
{
doorContact = false;
if (box2DoorSize > 0)
{
box2DoorSize -= 10;
fill(world1Color);
ellipse(box2X, box2Y - 25, box2DoorSize, box2DoorSize);
}
}
fill(255);
rect(box2X, box2Y - 30, box2Size, box2Size);
} else
{
// Player Detection
if (x <= box2X + 50 && x + 20 >= box2X)
{
// Unlock a door
if (door4 == false)
{
door4 = true;
notifSwitch = true;
notif = 1;
}
}
fill(255);
rect(box2X + 15, box2Y - 50 + sin(frameCount * 0.1) * 10., 20, 20);
}
} else
{
if (box2Size > 0)
{
box2Size -= 5;
fill(255);
rect(box2X, box2Y - 30, box2Size, box2Size);
}
}
box2X += allMover;
}
void apple1()
{
if (world == 2)
{
if (stalkerApple == false)
{
if (x < apple1X + 10)
{
notifSwitch = true;
notif = 4;
notifTimer = 0;
stalkerApple = true;
door5 = true;
}
rect(apple1X, apple1Y, 10, 10);
}
}
apple1X += allMover;
}
// World 3 *******************************************************************************************************
void boss()
{
if (world == 3)
{
fill(0, 30);
ellipse(width / 2, height / 2 - 110, 200 + (sin(frameCount * 0.05)*50.), 200 + (sin(frameCount * 0.05)*50.));
fill(#048D6E);
rect(width / 2 - 100, height / 2 - 180, bossSize, bossSize);
//Eyes
if (bossBlink == false)
{
float ran = random(1, 100);
if ((int) ran == 2)
{
bossBlink = true;
bossBlinkUnit = 0;
}
fill(0, 90);
if (bossHealth > 2)
{
ellipse(bossX + 35, bossY + 170, 50, 50);
}
if (bossHealth > 1)
{
ellipse(bossX + 165, bossY + 170, 50, 50);
}
if (bossHealth > 0)
{
ellipse(bossX + 100, bossY + 120, 50, 50);
}
} else
{
bossBlinkUnit++;
fill(0, 90);
if (bossHealth > 2)
{
ellipse(bossX + 35, bossY + 170, 50, sin(bossBlinkUnit * 0.05) * 50.);
}
if (bossHealth > 1)
{
ellipse(bossX + 165, bossY + 170, 50, sin(bossBlinkUnit * 0.05) * 50.);
}
if (bossHealth > 0)
{
ellipse(bossX + 100, bossY + 120, 50, sin(bossBlinkUnit * 0.05) * 50.);
}
if (bossBlinkUnit > 10)
{
bossBlink = false;
}
}
if (bossHealth > 0)
{
// Fist
if (fistSmash == false)
{
if (fistY > 40)
{
fistY-=4;
} else
{
float ran = random(0, 100);
if ((int) ran == 2)
{
fistSmash = true;
fistAcc = 1;
}
bossSwitchTriggered = false;
}
if (x - 20 > fistX)
{
fistX += 4.;
} else if (x - 10 < fistX)
{
fistX -= 4.;
}
} else
{
if (fistY >= height/2 - 30)
{
fistSmash = false;
} else
{
fistY+=1;
fistY+=fistAcc;
}
fistAcc *= 1.1;
// Collision
if (x <= fistX + 50 && x + 20 >= fistX)
{
if (y <= fistY + 50 && y >= fistY)
{
fistSmash = false;
world = 0;
}
}
if (bossSwitchX <= fistX + 50 && bossSwitchX + 50 >= fistX)
{
if (bossSwitchTriggered == false)
{
if (fistY >= height/2 - 30)
{
bossHealth--;
bossSwitchTriggered = true;
if (bossHealth == 0)
{
//world = 4;
}
}
}
}
}
}
fill(#024032);
rect(fistX, fistY, 50, 50);
rect(fistX - 10, fistY + 10, 30, 30);
}
}
void bossSwitch()
{
if (world == 3 && bossHealth > 0)
{
if (bossSwitchDir == false)
{
if (bossSwitchX > 150)
{
if (bossSwitchSize > 0)
{
bossSwitchSize--;
if (bossSwitchTriggered == true)
{
fill(#F3921E);
} else
{
fill(#048D6E);
}
rect(bossSwitchX, 240, 50, bossSwitchSize);
} else
{
bossSwitchX = 150;
}
} else
{
if (bossSwitchSize < 20)
{
bossSwitchSize++;
} else
{
float ran = random(0, 200);
if ((int) ran == 4)
{
bossSwitchDir = true;
}
}
if (bossSwitchTriggered == true)
{
fill(#F3921E);
} else
{
fill(#048D6E);
}
rect(bossSwitchX, 240 - (sin(frameCount * 0.1) * 5.), 50, bossSwitchSize + (sin(frameCount * 0.1) * 5.));
}
} else if (bossSwitchDir == true)
{
if (bossSwitchX < 520)
{
if (bossSwitchSize > 0)
{
bossSwitchSize--;
if (bossSwitchTriggered == true)
{
fill(#F3921E);
} else
{
fill(#048D6E);
}
rect(bossSwitchX, 240, 50, bossSwitchSize);
} else
{
bossSwitchX = 520;
}
} else
{
if (bossSwitchSize < 20)
{
bossSwitchSize++;
} else
{
float ran = random(0, 200);
if ((int) ran == 4)
{
bossSwitchDir = false;
}
}
if (bossSwitchTriggered == true)
{
fill(#F3921E);
} else
{
fill(#048D6E);
}
rect(bossSwitchX, 240 - (sin(frameCount * 0.1) * 5.), 50, bossSwitchSize + (sin(frameCount * 0.1) * 5.));
}
}
}
}
void bossExplosion()
{
if (world == 3)
{
if (bossHealth <= 0)
{
notifSwitch = true;
notif = 6;
notifTimer = 0;
if (explosionStage > 7)
{
explosionSize += 10;
if (explosionSize > 1000)
{
world = 4;
story = true;
storyStage = 4;
storyTimer = 0;
sa = 1000;
}
}
if (explosionStage > 6)
{
fill(world2Color);
ellipse(width/2, height/2, explosionSize * 4.5, explosionSize * 4.5);
}
if (explosionStage > 5)
{
fill(#B36C16);
ellipse(width/2, height/2, explosionSize * 4, explosionSize * 4);
}
if (explosionStage > 4)
{
fill(world2Color);
ellipse(width/2, height/2, explosionSize * 3.5, explosionSize * 3.5);
}
if (explosionStage > 3)
{
fill(#B36C16);
ellipse(width/2, height/2, explosionSize * 3, explosionSize * 3);
}
if (explosionStage > 2)
{
fill(world2Color);
ellipse(width/2, height/2, explosionSize * 2.5, explosionSize * 2.5);
}
if (explosionStage > 1)
{
fill(#B36C16);
ellipse(width/2, height/2, explosionSize * 2, explosionSize * 2);
}
if (explosionStage > 0)
{
fill(world2Color);
ellipse(width/2, height/2, explosionSize * 1.5, explosionSize * 1.5);
}
if (explosionStage > -1)
{
fill(0);
ellipse(width/2, height/2, explosionSize, explosionSize);
}
explosionTimer++;
if (explosionTimer > 25)
{
explosionStage = 1;
}
if (explosionTimer > 50)
{
explosionStage = 2;
}
if (explosionTimer > 75)
{
explosionStage = 3;
}
if (explosionTimer > 100)
{
explosionStage = 4;
}
if (explosionTimer > 125)
{
explosionStage = 5;
}
if (explosionTimer > 150)
{
explosionStage = 6;
}
if (explosionTimer > 175)
{
explosionStage = 7;
}
if (explosionTimer > 225)
{
explosionStage = 8;
}
}
}
}
// World 4 *******************************************************************************************************
void world4()
{
if (world == 4)
{
if (sa > 0)
{
sa-=40.;
fill(0);
ellipse(width / 2, height / 2, sa, sa);
}
}
}
void mousePressed()
{
if (world == 1 || world == 2 || world == 3 || world == 4)
{
if (playerMoving == false)
{
targetX = mouseX;
playerMoving = true;
speed = 5;
if (mouseY < 100)
{
jumping = true;
jumpStatus = true;
}
}
}
}
void keyPressed()
{
if (key == 'e' || key == 'E')
{
if (playerMoving == false)
{
if (world == 0)
{
sa = 0;
world = 1;
currentColor = world1Color;
reset();
}
if (world == -1)
{
sa = 1000;
world = 1;
currentColor = world1Color;
//story = true;
//storyStage = 1;
}
if (world == 2.1)
{
fillr = false;
world = 2;
doorContact = false;
}
if (doorContact == true)
{
fillr = true;
doorContact = false;
}
} else if (key == 'p' || key == 'P' )
{
if (world > 0)
{
worldSave = world;
world = -2;
sa = 0;
} else if (world == -2)
{
sa = 0;
world = worldSave;
}
}
}
}