feat: Add player entity with WASD/space controls and spawn functionality

This commit is contained in:
Kacper Kostka (aider)
2025-04-05 18:03:10 +02:00
parent d86baa8f99
commit db5b49ee7f
6 changed files with 274 additions and 1 deletions

View File

@@ -4,6 +4,42 @@ let isDragging = false;
let lastMouseX, lastMouseY;
let currentMouseX, currentMouseY;
// Keyboard state tracking
const keyState = {};
let player = null;
// Handle keyboard input for player movement
window.addEventListener('keydown', (e) => {
keyState[e.code] = true;
// Prevent default behavior for game control keys
if (['KeyW', 'KeyA', 'KeyS', 'KeyD', 'Space'].includes(e.code)) {
e.preventDefault();
}
});
window.addEventListener('keyup', (e) => {
keyState[e.code] = false;
});
function updatePlayerMovement() {
if (!player) return;
// Reset movement flag
player.stopMoving();
// Handle movement
if (keyState['KeyA']) {
player.moveLeft();
}
if (keyState['KeyD']) {
player.moveRight();
}
if (keyState['KeyW'] || keyState['Space']) {
player.jump();
}
}
function setTool(tool) {
currentTool = tool;
document.querySelectorAll('.tools button').forEach(btn => btn.classList.remove('active'));