fps fix
This commit is contained in:
		
							parent
							
								
									ca6b00a6d4
								
							
						
					
					
						commit
						7a51b5a94a
					
				
					 1 changed files with 29 additions and 19 deletions
				
			
		|  | @ -2,9 +2,13 @@ | |||
| // Canvas setup
 | ||||
| const canvas = document.getElementById('gameCanvas'); | ||||
| const ctx = canvas.getContext('2d'); | ||||
| const targetFPS = 60; | ||||
| const targetFrameTime = 1000 / targetFPS; | ||||
| canvas.width = window.innerWidth; | ||||
| canvas.height = window.innerHeight; | ||||
| 
 | ||||
| let lastFrameTime = performance.now(); | ||||
| 
 | ||||
| // Game elements
 | ||||
| const player = { | ||||
|   x: canvas.width / 2, | ||||
|  | @ -346,6 +350,11 @@ function restartGame() { | |||
| 
 | ||||
| // Main game loop
 | ||||
| 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); | ||||
| 
 | ||||
|     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.005) createItem(); // 0.5% chance to spawn an item
 | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   requestAnimationFrame(gameLoop); | ||||
| } | ||||
| 
 | ||||
| // Start game loop
 | ||||
| gameLoop(); | ||||
| requestAnimationFrame(gameLoop); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue