class Menu { constructor() { } homescreen() { textAlign(CENTER, CENTER); textSize(70); fill(100, 255, 100); text("Slime\nSymphony", width / 2, height / 4); button.button(255, 255, 255, width / 2, height / 2, "Start Game") button.button(255, 255, 255, width / 2, height / 2 + height / 12, "Scores") push() fill(255, 255, 255) textSize(25) textAlign(CENTER, CENTER) for (let i = 0; i < requesteddata.length; i++) { text(i + 1 + ". " + requesteddata[i].Naam + ": " + requesteddata[i].Score, width / 5, height / 3 + (i * 30)) } pop() //Scores rectangle push() stroke(4, 217, 255) strokeWeight(5) fill(0, 255, 0, 0) rect(width / 5, height / 2, width / 4, height / 1.5) rect(width / 5 * 4, height / 2, width / 4, height / 1.5) imageMode(CENTER) image(controlsImage, width / 5 * 4, height / 2, width / 4, height / 1.5) pop() push() textSize(50) fill(255, 255, 255) text("Highscores", width / 5, height / 4) fill(255, 255, 255) stroke('black'); strokeWeight(4); text("Controls", width / 5 * 4, height / 4) pop() } pauseMenu() { textAlign(CENTER); textSize(50); fill(255, 255, 255); text("Paused", width / 2, height / 2 - height / 6); button(255, 255, 255, width / 2, height / 2, "Resume"); button(255, 255, 255, width / 2, height / 2 + height / 12, "Main Menu"); } scoreMenu() { textAlign(CENTER, CENTER); textSize(50); fill(255, 255, 255); text("Score", width / 2, height / 5); textSize(32); text(letters[currentIndex[0]], width / 2 - 30, height / 3); text(letters[currentIndex[1]], width / 2, height / 3); text(letters[currentIndex[2]], width / 2 + 30, height / 3); if (!clearDataOnce) { requesteddata = []; clearDataOnce = true; } if (scorescreenOn && keyReleasedFlag) { nameSubmit(); } if (entered) { push() stroke(205, 205, 205) strokeWeight(2) fill(0, 0, 0, 0) rect(width / 2, height / 3, 90, 40) pop() if (!dataIsCalled) { DB.getData(nameHS); dataIsCalled = true; } } else { nameDraw(3); } push() fill(255, 255, 255) textSize(25) textAlign(CENTER, CENTER) //text for name, score, achievements for (let i = 0; i < requesteddata.length; i++) { text(i + 1 + ". " + requesteddata[i].Naam + ": " + requesteddata[i].Score + " " + requesteddata[i].Datum, width / 4, height / 3 + (i * 30)) } pop() push() fill(255, 255, 255) textSize(16) textAlign(CENTER, CENTER) for (let i = 0; i < requesteddata.length; i++) { text(i + 1 + ". " + requesteddata[i].Achievements, width / 4 * 3, height / 3 + (i * 30)) } pop() push() stroke(4, 217, 255) strokeWeight(5) fill(0, 255, 0, 0) //box left rect(width / 4 * 3, height / 2, width / 3.5, height / 1.25) //box right rect(width / 4, height / 2, width / 3.5, height / 1.25) pop() push() text("Your scores", width / 4, height / 6) text("Your achievements", width / 4 * 3, height / 6) pop() push() button.button(255, 255, 255, width / 2, height / 2, "Main Menu") pop() } gameOver() { if (lives <= 0) { //game over screen iIndex = constrain(iIndex, 0, 2); isDead = true; push(); fill(255, 0, 0); textSize(60); textAlign(CENTER, CENTER); text("Game Over", width / 2, height / 2 - height / 5); fill(255, 255, 255) textSize(18); text("Score: " + int(time), width / 2, height / 2 - height / 8); textSize(32); textAlign(CENTER, CENTER); text(letters[currentIndex[0]], width / 2 - 30, height / 2); text(letters[currentIndex[1]], width / 2, height / 2); text(letters[currentIndex[2]], width / 2 + 30, height / 2); text("Restart", width / 2, height / 2 + height / 12); text("Main Menu", width / 2, height / 2 + height / 6); pop(); } } dodgeBanner() { push() fill(255, 0, 0) textSize(100) textAlign(CENTER, CENTER) text("Dodge!", width / 2, height / 2) pop() } }