diff --git a/frontend/game.ts b/frontend/game.ts index 12912fc..444af17 100644 --- a/frontend/game.ts +++ b/frontend/game.ts @@ -8,42 +8,24 @@ const raspberryImagePath: string = "resources/raspberry-rocket.png"; let obstacles: Obstacle[] = []; let raspberry: Raspberry; let paused: boolean; +let score: number; +let hasAlreadyScored: boolean; function setup() { backgroundImage = loadImage(backgroundImagePath); - createCanvas(2000, 1000); obstacleOffset = width / 3; + + textSize(150); + textFont("resources/JetBrains-Mono-Regular.ttf"); setupGame(); } -function draw() { - background(backgroundImage) - if (!paused) { - raspberry.update(); - } - raspberry.draw(); - - obstacles.forEach((obstacle) => { - if (!paused) { - obstacle.update(); - checkObstacleReset(obstacle); - } - - obstacle.draw(); - }); - if (!paused) { - if (obstacles[0].collides(raspberry)) { - setupGame(); - } - obstacles[0].draw(); - } -} - function setupGame() { paused = true; + score = 0; raspberry = new Raspberry(); raspberry.image = raspberryImagePath; @@ -70,14 +52,51 @@ function setupGame() { obstacles.forEach((obstacle) => obstacle.resetPosition(false)); } +function draw() { + background(backgroundImage) + if (!paused) { + raspberry.update(); + } + raspberry.draw(); + + obstacles.forEach((obstacle) => { + if (!paused) { + obstacle.update(); + checkObstacleReset(obstacle); + } + + obstacle.draw(); + }); + + if (!paused) { + if (obstacles[0].collides(raspberry)) { + setupGame(); + } + checkRaspberryScore(); + obstacles[0].draw(); + } + push(); + fill(200, 100, 60); + text(score, width / 2, height / 10, width, height); + pop(); +} + function checkObstacleReset(obstacle: Obstacle) { if (obstacle.position.x < -obstacleWidth) { obstacle.resetPosition(true); obstacles.shift(); obstacles.push(obstacle); + hasAlreadyScored = false; } } +function checkRaspberryScore() { + if ((obstacles[0].position.x + obstacles[0].width / 2) < (raspberry.position.x + raspberry.width / 2) + && !hasAlreadyScored) { + score += 1; + hasAlreadyScored = true; + } +} function keyPressed() { if (key.toLowerCase() == "k") { diff --git a/frontend/resources/JetBrains-Mono-Regular.ttf b/frontend/resources/JetBrains-Mono-Regular.ttf new file mode 100644 index 0000000..0aea9e7 Binary files /dev/null and b/frontend/resources/JetBrains-Mono-Regular.ttf differ