From a9932ec6fc9c8681b0660252426f5a8c1a90be76 Mon Sep 17 00:00:00 2001 From: Mees Roelofsz Date: Fri, 12 Jan 2024 11:08:17 +0100 Subject: [PATCH] added working pause feature --- web/game.js | 92 +++++++++++++++++++++++++++++++++++++------------- web/js/Menu.js | 4 +-- 2 files changed, 71 insertions(+), 25 deletions(-) diff --git a/web/game.js b/web/game.js index 65efcc9..494ec1c 100644 --- a/web/game.js +++ b/web/game.js @@ -140,7 +140,7 @@ function movementCheck() { } async function keyPressed() { - if (!isDead) { + if (!isDead && !homescreenOn && !pausescreenOn) { if (keyIsDown(LEFT_ARROW) && playerPosX > 0 + radius) { playerPosX -= playerSpeed; } @@ -236,22 +236,49 @@ async function keyPressed() { if (buttonSelectHome == 1) { if (keyCode == ENTER) { homescreenOn = false; - scoreMenuOn = true; + scorescreenOn = true; reset(); keyReleasedFlag = false; } } } if (!homescreenOn && !isDead && keyReleasedFlag) { - if (keyCode == 27 && !escaped) { escaped = true; console.log("pause"); pausescreenOn = true; - shotSpeed = 0; - playerSpeed = 0; keyReleasedFlag = false; } + if (escaped) { + if (keyCode == UP_ARROW) { + buttonSelectPause -= 1; + keyReleasedFlag = false; + console.log(buttonSelectPause) + } + if (keyCode == DOWN_ARROW) { + buttonSelectPause += 1; + keyReleasedFlag = false; + console.log(buttonSelectPause) + } + if (buttonSelectPause == 0) { + if (keyCode == ENTER) { + console.log("resume"); + pausescreenOn = false; + keyReleasedFlag = false; + escaped = false; + } + } + if (buttonSelectPause == 1) { + if (keyCode == ENTER) { + console.log("main menu"); + homescreenOn = true; + pausescreenOn = false; + escaped = false; + reset(); + keyReleasedFlag = false; + } + } + } } } @@ -286,7 +313,7 @@ function draw() { buttonSelectHome = constrain(buttonSelectHome, 0, 1); buttonSelectPause = constrain(buttonSelectPause, 0, 1); - if (homescreenOn == true && scoreMenuOn == false) { + if (homescreenOn == true && scorescreenOn == false) { homescreen(); if (buttonSelectHome == 0) { push() @@ -305,17 +332,35 @@ function draw() { pop() } } - if (homescreenOn == false && scoreMenuOn == false) { + if (!homescreenOn && !scorescreenOn) { game(); } - if (scoreMenuOn == true) { + if (scorescreenOn) { scoremenu(); } - if (pausescreenOn == true) { + if (pausescreenOn) { pauseMenu(); } - if (isDead == true) { - if (entered == true) { + if (pausescreenOn) { + if (buttonSelectPause == 0) { + push() + stroke(205, 205, 205) + strokeWeight(2) + fill(0, 0, 0, 0) + rect(width / 2 - 100, height / 2, 200, 40) + pop() + } + if (buttonSelectPause == 1) { + push() + stroke(205, 205, 205) + strokeWeight(2) + fill(0, 0, 0, 0) + rect(width / 2 - 100, height / 2 + 50, 200, 40) + pop() + } + } + if (isDead) { + if (entered) { if (buttonSelectDead == 0) { push() stroke(205, 205, 205) @@ -651,19 +696,20 @@ function game() { x2 = width / 2; y2 = 100; } + if (!pausescreenOn) { + bullets.forEach(myBullet => { + //zolang mybullet bestaat blijft hij drawen en updaten + ({ hit, shot, isOffScreen, originalPos } = myBullet.update(playerPosX, playerPosY)); + myBullet.draw(); - bullets.forEach(myBullet => { - //zolang mybullet bestaat blijft hij drawen en updaten - ({ hit, shot, isOffScreen, originalPos } = myBullet.update(playerPosX, playerPosY)); - myBullet.draw(); - - if (isOffScreen == true) { - myBullet.hit = true; - shot = false; - } - }); - //blijf de bullet tekenen zolang hit false is - bullets = bullets.filter(bullet => !bullet.hit); + if (isOffScreen == true) { + myBullet.hit = true; + shot = false; + } + }); + //blijf de bullet tekenen zolang hit false is + bullets = bullets.filter(bullet => !bullet.hit); + } } } diff --git a/web/js/Menu.js b/web/js/Menu.js index 2117e9d..baadc61 100644 --- a/web/js/Menu.js +++ b/web/js/Menu.js @@ -1,6 +1,6 @@ let buttonSelectScore = 0; let searchName = ''; -let scoreMenuOn = false; +let scorescreenOn = false; function scoremenu() { textSize(50) @@ -11,7 +11,7 @@ function scoremenu() { function keyPressed() { // Check if the back button was selected and the Enter key was pressed if (keyCode == ENTER && buttonSelectScore == 0) { - scoreMenuOn = false; + scorescreenOn = false; } }