I want a countdown timer only when the mouse is on the bottom left rectangle the timer counts down and if you are not in that part it doesnt count down. Thank you in advance.
// IMPORTANT!!! READ BELOW
// Every scene is on a different page so it's organized
// The scenes are voids so you just have to call them in void draw
//-----------------------------------------------------------------------------
int scene = 3;
int messageCounter=0;
boolean message = true;
boolean canShoot = false;
PImage Sheriff;
PImage Box;
PImage Logo;
PImage Story1;
PImage Story2;
PImage Bandit;
PFont dialogueText;
float transparency = 255;
//textposition
int textX = 500;
int textY = 900;
//boxposition
int boxX = 1920;
int boxY = 1000;
//timer
int begin;
int duration = 10;
int time = 10;
//-----------------------------------------------------------------------------
void setup() {
fullScreen();
Sheriff = loadImage("Sheriff.png");
Box = loadImage("Dialogue box.png");
Logo = loadImage("Logo.png");
Story1 = loadImage("story1.jpg");
Story2 = loadImage("story2.png");
Bandit = loadImage("bandit.png");
dialogueText = createFont("Carnevalee Freakshow.ttf", 72);
begin = millis();
}
//-----------------------------------------------------------------------------
void draw() {
textFont(dialogueText);
if (scene == 0) {
Scene0();
} else if (scene == 1) {
Scene1();
} else if (scene == 2) {
Scene2();
} else if (scene == 3) {
shootingScene();
} else if (scene == 4) {
creditScene();
}
}
//-----------------------------------------------------------------------------
void mousePressed() {
messageCounter++;
if (message == false && mousePressed &
isPointInRectangle(mouseX, mouseY, width-50, 300, 40, 40)) {
scene = scene + 1; // if you click on the triangle on the screen you go to the next scene
message = true; // reset
messageCounter=0;
}
}
//-----------------------------------------------------------------------------
boolean isPointInRectangle(float px, float py,
float rx, float ry,
float rw, float rh) {
if (px >= rx &&
px <= rx + rw &&
py >= ry &&
py <= ry + rh) {
return true;
}
return false;
}
//-----------------------------------------------------------------------------
void Scene1() {
background(255, 0, 0);
image(Sheriff, 0, 250, 400, 800);
//-----------------------------------------------------------------------------
if (message == true) {
//drawing the text box
image(Box, 0, 650, boxX, boxY);
//end of text box
}
//-----------------------------------------------------------------------------
//drawing the arrow only when the text is finished
if (message == false) {
fill(0);
triangle(width-50, 300, width-50, 340, width-10, 320);
if (message == false & isPointInRectangle(mouseX, mouseY, width-50, 300, 40, 40)) {
strokeWeight(3);
stroke(255);
triangle(width-50, 300, width-50, 340, width-10, 320); //Copy and paste this for the arrows to light up when mouse if hovering
} else if (message == false) {
noStroke();
triangle(width-50, 300, width-50, 340, width-10, 320);
}
}
//end of the arrow
//-----------------------------------------------------------------------------
if (messageCounter==0) {
image(Story1, 0, 0);
}
if (messageCounter==1) {
image(Story2, 0, 0);
}
if (messageCounter==2) {
textSize(35); //test dialogue for now. If you press the mouse there is dialogue
fill(0);
text("You: Howdy partner", textX, textY);
} else if (messageCounter==3) {
textSize(35); //test dialogue for now. If you press the mouse there is dialogue
fill(0);
text("Clerk: goodday what is it you need", textX, textY); //This is where you add text for the dialogue
} else if (messageCounter==4) {
textSize(35); //test dialogue for now. If you press the mouse there is dialogue
fill(0);
text(" No ", textX, textY);
} else if (messageCounter==5) {
textSize(35); //test dialogue for now. If you press the mouse there is dialogue
fill(0);
text(" Maybe ", textX, textY);
} else if (messageCounter==6) {
message=false;
}
//-----------------------------------------------------------------------------
if (message == true) {
fill(0);
textSize(19);
text("Click on the screen", width-200, height-20);
} else {
fill(0);
textSize(19);
text("Click on the Arrow", width-200, height-20);
}
}
//-----------------------------------------------------------------------------
void Scene2() {
background(255, 220, 0);
image(Sheriff, 0, 250, 400, 800);
//-----------------------------------------------------------------------------
if (message == true) {
//drawing the text box
image(Box, 0, 650, boxX, boxY);
//end of text box
}
//-----------------------------------------------------------------------------
//drawing the arrow only when the text is finished
if (message == false) {
fill(0);
triangle(width-50, 300, width-50, 340, width-10, 320);
if (message == false & isPointInRectangle(mouseX, mouseY, width-50, 300, 40, 40)) {
strokeWeight(3);
stroke(255);
triangle(width-50, 300, width-50, 340, width-10, 320); //Copy and paste this for the arrows to light up when mouse if hovering
} else if (message == false) {
noStroke();
triangle(width-50, 300, width-50, 340, width-10, 320);
}
}
//end of the arrow
//-----------------------------------------------------------------------------
if (messageCounter==0) {
textSize(35); //test dialogue for now. If you press the mouse there is dialogue
fill(0);
text("!!!This is test scene2 !!!", textX, textY);
} else if (messageCounter==1) {
textSize(35); //This is where you add dialogue
fill(0);
text("!!!This is more text !!!", textX, textY);
} else if (messageCounter==2) {
message = false;
}
//-----------------------------------------------------------------------------
if (message == true) {
fill(0);
textSize(19);
text("Click on the screen", width-200, height-20);
} else {
fill(0);
textSize(19);
text("Click on the Arrow", width-200, height-20);
}
}
//-----------------------------------------------------------------------------
void shootingScene() {
background(0);
//-----------------------------------------------------------------------------
//Timer
if (isPointInRectangle(mouseX, mouseY, 100, 1000, 50, 50)) {
time = duration - (millis() - begin)/1000;
canShoot = false;
}
if (time <= 0) {
time = 0;
canShoot = true;
}
if (canShoot == true) {
if(mousePressed & isPointInRectangle(mouseX, mouseY, 1250, 550, 200, 300)) {
scene = 0;
}
fill(255);
rect(1250, 550, 200, 300);
}
textSize(30);
fill(255);
text("Time left: ", 10, 70);
text(time, 160, 70);
fill(255);
rect(100, 1000, 50, 50);
//End of timer
//-----------------------------------------------------------------------------
//Main Menu
void Scene0() {
background(210, 105, 30);
//-----------------------------------------------------------------------------
//logo
image(Logo, 612.5, 10, 695, 400);
//end logo
//-----------------------------------------------------------------------------
//menu clickable boxes
textSize(120);
fill(0);
image(Box, 0, 275, boxX, boxY);
text("Start adventure", textX+150, 550);
image(Box, 0, 500, boxX, boxY);
text("Options", textX+300, 775);
image(Box, 0, 725, boxX, boxY);
text("Credits", textX+300, 1000);
// end menu
//-----------------------------------------------------------------------------
if (mousePressed) {
if (isPointInRectangle(mouseX, mouseY, 100, 450, 1720, 170)) {
scene = scene + 1; //When you click on play game the game starts
messageCounter = 0;
message = true;
}
}
if (mousePressed) {
if(isPointInRectangle(mouseX, mouseY, 100, 900, 1720, 170)) {
scene = 4;
}
}
//-----------------------------------------------------------------------------
}
void creditScene() {
background(0);
//-----------------------------------------------------------------------------
fill(255);
textSize(19);
text("Thanks for playing", width/2, height/2); //credit text
//-----------------------------------------------------------------------------
triangle(60, 900, 60, 940, 20, 920); //arrow to go back
//-----------------------------------------------------------------------------
if (mousePressed && isPointInRectangle(mouseX, mouseY, 20, 900, 40, 40)) {
scene = 0; //go back to main menu
}
}
//-----------------------------------------------------------------------------