Add key events for arrow and angle bracket keys

This commit is contained in:
2025-12-17 15:51:56 -08:00
parent 5b3710ac4a
commit 264cb1dc81

View File

@@ -71,7 +71,8 @@
let velocity = [0, 0]; // meters per second let velocity = [0, 0]; // meters per second
let acceleration = [0, 0]; // meters per second per second let acceleration = [0, 0]; // meters per second per second
let previous, zero, frameCount = 0; let previous, zero, frameCount = 0;
let friction = 7.5; // let friction = 7.5;
let friction = 0;
let rotate = 0; let rotate = 0;
let rotationSpeed = 0.25; let rotationSpeed = 0.25;
@@ -230,7 +231,7 @@
requestAnimationFrame(t => animate(t)); requestAnimationFrame(t => animate(t));
} }
let force = 10; let force = 1;
let spacePressed = false; let spacePressed = false;
let upPressed = false; let upPressed = false;
@@ -250,36 +251,42 @@
} }
break; break;
case "KeyW": case "KeyW":
case "ArrowUp":
if (!upPressed) { if (!upPressed) {
upPressed = true; upPressed = true;
acceleration[1] += -force; acceleration[1] += -force;
} }
break; break;
case "KeyS": case "KeyS":
case "ArrowDown":
if (!downPressed) { if (!downPressed) {
downPressed = true; downPressed = true;
acceleration[1] += force; acceleration[1] += force;
} }
break; break;
case "KeyA": case "KeyA":
case "ArrowLeft":
if (!leftPressed) { if (!leftPressed) {
leftPressed = true; leftPressed = true;
acceleration[0] += -force; acceleration[0] += -force;
} }
break; break;
case "KeyD": case "KeyD":
case "ArrowRight":
if (!rightPressed) { if (!rightPressed) {
rightPressed = true; rightPressed = true;
acceleration[0] += force; acceleration[0] += force;
} }
break; break;
case "KeyQ": case "KeyQ":
case "Comma":
if (!rotateCCWPressed) { if (!rotateCCWPressed) {
rotateCCWPressed = true; rotateCCWPressed = true;
rotate += -1; rotate += -1;
} }
break; break;
case "KeyE": case "KeyE":
case "Period":
if (!rotateCWPressed) { if (!rotateCWPressed) {
rotateCWPressed = true; rotateCWPressed = true;
rotate += 1; rotate += 1;
@@ -294,36 +301,42 @@
spacePressed = false; spacePressed = false;
break; break;
case "KeyW": case "KeyW":
case "ArrowUp":
if (upPressed) { if (upPressed) {
upPressed = false; upPressed = false;
acceleration[1] -= -force; acceleration[1] -= -force;
} }
break; break;
case "KeyS": case "KeyS":
case "ArrowDown":
if (downPressed) { if (downPressed) {
downPressed = false; downPressed = false;
acceleration[1] -= force; acceleration[1] -= force;
} }
break; break;
case "KeyA": case "KeyA":
case "ArrowLeft":
if (leftPressed) { if (leftPressed) {
leftPressed = false; leftPressed = false;
acceleration[0] -= -force; acceleration[0] -= -force;
} }
break; break;
case "KeyD": case "KeyD":
case "ArrowRight":
if (rightPressed) { if (rightPressed) {
rightPressed = false; rightPressed = false;
acceleration[0] -= force; acceleration[0] -= force;
} }
break; break;
case "KeyQ": case "KeyQ":
case "Comma":
if (rotateCCWPressed) { if (rotateCCWPressed) {
rotateCCWPressed = false; rotateCCWPressed = false;
rotate -= -1; rotate -= -1;
} }
break; break;
case "KeyE": case "KeyE":
case "Period":
if (rotateCWPressed) { if (rotateCWPressed) {
rotateCWPressed = false; rotateCWPressed = false;
rotate -= 1; rotate -= 1;

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB