From 84ec74d6366da6664c16e8e4c1515d83b9759849 Mon Sep 17 00:00:00 2001 From: Nicole Zarrilli Date: Mon, 22 Apr 2024 21:20:14 -0400 Subject: [PATCH] Final draft --- final-project/final.css | 87 ++++++++++++ final-project/final.html | 25 ++++ final-project/final.js | 190 +++++++++++++++++++++++++++ final-project/images/background.jpeg | Bin 0 -> 10924 bytes final-project/images/running-man.gif | Bin 0 -> 35084 bytes 5 files changed, 302 insertions(+) create mode 100644 final-project/final.css create mode 100644 final-project/final.html create mode 100644 final-project/final.js create mode 100644 final-project/images/background.jpeg create mode 100644 final-project/images/running-man.gif diff --git a/final-project/final.css b/final-project/final.css new file mode 100644 index 0000000..184bee0 --- /dev/null +++ b/final-project/final.css @@ -0,0 +1,87 @@ +body { + display: flex; + flex-direction: column; + align-items: center; + background-color: beige; +} + +h1 { + font-family: "Press Start 2P", system-ui; + font-weight: 400; + font-style: normal; + font-size: 30px; + color: rgb(100, 51, 51); +} + +#game-container { + width: 400px; + height: 600px; + position: relative; + background-size: cover; + background-position: center; + +} + +#player { + height: 100px; + position: absolute; + bottom: 145px; + animation: run-animation 0.5s steps(10) infinite; +} + +@keyframes run-animation { + from { background-position: 0; } + to { background-position: -100%; } +} + +.obstacle { + width: 20px; + height: 20px; + background-color: red; + position: absolute; +} + +.power-up { + width: 20px; + height: 20px; + background-color: yellow; + position: absolute; +} + +#score { + color: white; + font-family: "Press Start 2P", system-ui; + font-weight: 400; + font-style: normal; + font-size: 12px; + margin-top: 10px; +} + +#level { + color: white; + font-family: "Press Start 2P", system-ui; + font-weight: 400; + font-style: normal; + font-size: 12px; + margin-top: 10px; +} + +.score-level { + top: 10px; + display: flex; + flex-direction: row; + justify-content: center; + gap: 30px; +} + +#top-score { + color: white; + font-family: "Press Start 2P", system-ui; + font-weight: 400; + font-style: normal; + position: relative; + display: flex; + flex-direction: row; + justify-content: center; + top: 550px; +} \ No newline at end of file diff --git a/final-project/final.html b/final-project/final.html new file mode 100644 index 0000000..a1119b4 --- /dev/null +++ b/final-project/final.html @@ -0,0 +1,25 @@ + + + + + + Game + + + + + + +

THE RUNNING MAN

+
+ Running man. +
+
SCORE: 0
+
LEVEL: 1
+
+
TOP SCORE: 0
+
+ + + + \ No newline at end of file diff --git a/final-project/final.js b/final-project/final.js new file mode 100644 index 0000000..0ab1c62 --- /dev/null +++ b/final-project/final.js @@ -0,0 +1,190 @@ +document.addEventListener("DOMContentLoaded", function () { + const gameContainer = document.getElementById("game-container"); + const player = document.getElementById("player"); + const scoreValue = document.getElementById("score-value"); + const levelValue = document.getElementById("level-value"); + const topScoreValue = document.getElementById("top-score-value"); + + let playerLeft = parseInt(window.getComputedStyle(player).getPropertyValue("left")); + let playerBottom = parseInt(window.getComputedStyle(player).getPropertyValue("bottom")); + const playerWidth = parseInt(window.getComputedStyle(player).getPropertyValue("width")); + const playerHeight = parseInt(window.getComputedStyle(player).getPropertyValue("height")); + + const gameContainerWidth = parseInt(window.getComputedStyle(gameContainer).getPropertyValue("width")); + const gameContainerHeight = parseInt(window.getComputedStyle(gameContainer).getPropertyValue("height")); + + let gameInterval; + let score = 0; + let level = 1; + let obstacleSpeed = 5; + let obstacleInterval = 2000; + let nextLevelThreshold = 50; // Initialize nextLevelThreshold + + let topScore = localStorage.getItem("topScore"); + if (topScore === null) { + topScore = 0; + } + topScoreValue.textContent = topScore; + + function movePlayer(direction) { + if (direction === "left" && playerLeft > 0) { + playerLeft -= 10; + } else if (direction === "right" && playerLeft < gameContainerWidth - playerWidth) { + playerLeft += 10; + } + + player.style.left = playerLeft + "px"; + } + + function updateScore(points) { + score += points; + scoreValue.textContent = score; + + if (score >= nextLevelThreshold) { + level++ + levelValue.textContent = level; + nextLevelThreshold = score + 50; // Update nextLevelThreshold + + obstacleSpeed += 1; + obstacleInterval -= 200; + } + + if (score > topScore) { + topScore = score; + localStorage.setItem("topScore", topScore); + topScoreValue.textContent = topScore; + } + } + + function createObstacle() { + const obstacle = document.createElement("div"); + obstacle.classList.add("obstacle"); + obstacle.style.left = Math.random() * (gameContainerWidth - 20) + "px"; + gameContainer.appendChild(obstacle); + + let obstacleInterval = setInterval(() => { + const obstacleBottom = parseInt(window.getComputedStyle(obstacle).getPropertyValue("bottom")); + const obstacleLeft = parseInt(window.getComputedStyle(obstacle).getPropertyValue("left")); + const obstacleWidth = parseInt(window.getComputedStyle(obstacle).getPropertyValue("width")); + const obstacleHeight = parseInt(window.getComputedStyle(obstacle).getPropertyValue("height")); + + if (obstacleBottom < 0) { + clearInterval(obstacleInterval); + obstacle.remove(); + } + + const playerRight = playerLeft + playerWidth; + const obstacleRight = obstacleLeft + obstacleWidth; + + const playerTop = playerBottom + playerHeight; + const obstacleTop = obstacleBottom + obstacleHeight; + + if ( + playerLeft < obstacleRight && + playerRight > obstacleLeft && + playerBottom < obstacleTop && + playerTop > obstacleBottom + ) { + endGame(); + } + + obstacle.style.bottom = obstacleBottom - obstacleSpeed + "px"; + }, 20); + } + + function createPowerUp() { + const powerUp = document.createElement("div"); + powerUp.classList.add("power-up"); + powerUp.style.left = Math.random() * (gameContainerWidth - 20) + "px"; + gameContainer.appendChild(powerUp); + + let powerUpInterval = setInterval(() => { + const powerUpBottom = parseInt(window.getComputedStyle(powerUp).getPropertyValue("bottom")); + const powerUpLeft = parseInt(window.getComputedStyle(powerUp).getPropertyValue("left")); + + if (powerUpBottom < 0) { + clearInterval(powerUpInterval); + powerUp.remove(); + } + + const powerUpWidth = parseInt(window.getComputedStyle(powerUp).getPropertyValue("width")); + const powerUpHeight = parseInt(window.getComputedStyle(powerUp).getPropertyValue("height")); + + if ( + playerLeft < powerUpLeft + powerUpWidth && + playerLeft + playerWidth > powerUpLeft && + playerBottom < powerUpBottom + powerUpHeight && + playerBottom + playerHeight > powerUpBottom + ) { + clearInterval(powerUpInterval); + powerUp.remove(); + updateScore(10) + + if (score > topScore) { + topScore = score; + localStorage.setItem("topScore", topScore); + topScoreValue.textContent = topScore; + } + } + + powerUp.style.bottom = powerUpBottom - obstacleSpeed + "px"; + }, 20); + } + + function startGame() { + gameInterval = setInterval(() => { + createObstacle(); + if (Math.random() < 0.2) { + createPowerUp(); + } + }, obstacleInterval); + } + + function endGame() { + clearInterval(gameInterval); + + const obstacles = document.querySelectorAll(".obstacle"); + obstacles.forEach(obstacle => obstacle.remove()); + + const powerUps = document.querySelectorAll(".power-up"); + powerUps.forEach(powerUp => powerUp.remove()); + + alert("Game Over:( Score: " + score); + score = 0; + scoreValue.textContent = score; + + startGame(); + } + + document.addEventListener("keydown", function (event) { + if (event.key === "ArrowLeft") { + movePlayer("left"); + } else if (event.key === "ArrowRight") { + movePlayer("right"); + } + }); + + window.addEventListener("gamepadconnected", function (event) { + const gamepad = navigator.getGamepads()[event.gamepad.index]; + gamepad.buttons.forEach((button, index) => { + button.addEventListener("pressed", function () { + if (index === 14) { + movePlayer("left"); + } else if (index === 15) { + movePlayer("right"); + } + }); + }); + }); + + gameContainer.addEventListener("touchstart", function (event) { + const touchX = event.touches[0].clientX; + if (touchX < playerLeft + playerWidth / 2) { + movePlayer("left"); + } else { + movePlayer("right"); + } + }); + + startGame(); +}); \ No newline at end of file diff --git a/final-project/images/background.jpeg b/final-project/images/background.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c9d54441d1007f923a02e58af997d2d6233770d8 GIT binary patch literal 10924 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 Q{!cIg)sG|k-y(|t1y}%3qyPW_ literal 0 HcmV?d00001 diff --git a/final-project/images/running-man.gif b/final-project/images/running-man.gif new file mode 100644 index 0000000000000000000000000000000000000000..2bde44ec45be7d5c39054cd8565e8a643921531a GIT binary patch literal 35084 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ỻ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