Merge branch 'main' into main
This commit is contained in:
commit
61fba34857
1 changed files with 29 additions and 19 deletions
|
@ -2,9 +2,13 @@
|
||||||
// Canvas setup
|
// Canvas setup
|
||||||
const canvas = document.getElementById('gameCanvas');
|
const canvas = document.getElementById('gameCanvas');
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext('2d');
|
||||||
|
const targetFPS = 60;
|
||||||
|
const targetFrameTime = 1000 / targetFPS;
|
||||||
canvas.width = window.innerWidth;
|
canvas.width = window.innerWidth;
|
||||||
canvas.height = window.innerHeight;
|
canvas.height = window.innerHeight;
|
||||||
|
|
||||||
|
let lastFrameTime = performance.now();
|
||||||
|
|
||||||
// Game elements
|
// Game elements
|
||||||
const player = {
|
const player = {
|
||||||
x: canvas.width / 2,
|
x: canvas.width / 2,
|
||||||
|
@ -346,6 +350,11 @@ function restartGame() {
|
||||||
|
|
||||||
// Main game loop
|
// Main game loop
|
||||||
function gameLoop() {
|
function gameLoop() {
|
||||||
|
const currentTime = performance.now();
|
||||||
|
const elapsedTime = currentTime - lastFrameTime;
|
||||||
|
|
||||||
|
if (elapsedTime >= targetFrameTime) {
|
||||||
|
lastFrameTime = currentTime - (elapsedTime % targetFrameTime);
|
||||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||||
|
|
||||||
if (!isGameOver) {
|
if (!isGameOver) {
|
||||||
|
@ -368,9 +377,10 @@ function gameLoop() {
|
||||||
if (Math.random() < 0.01) createAsteroid(); // 1% chance every frame to spawn an asteroid
|
if (Math.random() < 0.01) createAsteroid(); // 1% chance every frame to spawn an asteroid
|
||||||
if (Math.random() < 0.005) createItem(); // 0.5% chance to spawn an item
|
if (Math.random() < 0.005) createItem(); // 0.5% chance to spawn an item
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
requestAnimationFrame(gameLoop);
|
requestAnimationFrame(gameLoop);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start game loop
|
// Start game loop
|
||||||
gameLoop();
|
requestAnimationFrame(gameLoop);
|
||||||
|
|
Loading…
Reference in a new issue