Add key events for W, A, S, D, Q, E and Space
This commit is contained in:
@@ -111,7 +111,7 @@
|
|||||||
|
|
||||||
function fireBullet(x, y) {
|
function fireBullet(x, y) {
|
||||||
const degrees = getRotate(gun);
|
const degrees = getRotate(gun);
|
||||||
const radians = degrees * Math.PI / 180;
|
const radians = degrees * Math.PI / 180; // toFixed(15)?
|
||||||
const vx = -Math.sin(radians);
|
const vx = -Math.sin(radians);
|
||||||
const vy = Math.cos(radians);
|
const vy = Math.cos(radians);
|
||||||
const bulletTimeout = 5000; // miliseconds
|
const bulletTimeout = 5000; // miliseconds
|
||||||
@@ -122,7 +122,6 @@
|
|||||||
el.setAttribute('r', 1);
|
el.setAttribute('r', 1);
|
||||||
el.setAttribute('cx', 0);
|
el.setAttribute('cx', 0);
|
||||||
el.setAttribute('cy', 0);
|
el.setAttribute('cy', 0);
|
||||||
const node = bulletsContainer.appendChild(el);
|
|
||||||
|
|
||||||
const bullet = {
|
const bullet = {
|
||||||
x: x + vx * cannonLength,
|
x: x + vx * cannonLength,
|
||||||
@@ -130,7 +129,7 @@
|
|||||||
vx: vx,
|
vx: vx,
|
||||||
vy: vy,
|
vy: vy,
|
||||||
time: bulletTimeout,
|
time: bulletTimeout,
|
||||||
node: node
|
node: bulletsContainer.appendChild(el)
|
||||||
}
|
}
|
||||||
|
|
||||||
bullets.push(bullet);
|
bullets.push(bullet);
|
||||||
@@ -233,6 +232,106 @@
|
|||||||
|
|
||||||
let force = 10;
|
let force = 10;
|
||||||
|
|
||||||
|
let spacePressed = false;
|
||||||
|
let upPressed = false;
|
||||||
|
let downPressed = false;
|
||||||
|
let leftPressed = false;
|
||||||
|
let rightPressed = false;
|
||||||
|
let rotateCWPressed = false;
|
||||||
|
let rotateCCWPressed = false;
|
||||||
|
|
||||||
|
document.addEventListener("keydown", function(e) {
|
||||||
|
switch (e.code) {
|
||||||
|
case "Space":
|
||||||
|
if (!spacePressed) {
|
||||||
|
spacePressed = true;
|
||||||
|
const [x, y] = getTranslate(hitbox);
|
||||||
|
fireBullet(x, y);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyW":
|
||||||
|
if (!upPressed) {
|
||||||
|
upPressed = true;
|
||||||
|
acceleration[1] += -force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyS":
|
||||||
|
if (!downPressed) {
|
||||||
|
downPressed = true;
|
||||||
|
acceleration[1] += force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyA":
|
||||||
|
if (!leftPressed) {
|
||||||
|
leftPressed = true;
|
||||||
|
acceleration[0] += -force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyD":
|
||||||
|
if (!rightPressed) {
|
||||||
|
rightPressed = true;
|
||||||
|
acceleration[0] += force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyQ":
|
||||||
|
if (!rotateCCWPressed) {
|
||||||
|
rotateCCWPressed = true;
|
||||||
|
rotate += -1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyE":
|
||||||
|
if (!rotateCWPressed) {
|
||||||
|
rotateCWPressed = true;
|
||||||
|
rotate += 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener("keyup", function(e) {
|
||||||
|
switch (e.code) {
|
||||||
|
case "Space":
|
||||||
|
spacePressed = false;
|
||||||
|
break;
|
||||||
|
case "KeyW":
|
||||||
|
if (upPressed) {
|
||||||
|
upPressed = false;
|
||||||
|
acceleration[1] -= -force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyS":
|
||||||
|
if (downPressed) {
|
||||||
|
downPressed = false;
|
||||||
|
acceleration[1] -= force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyA":
|
||||||
|
if (leftPressed) {
|
||||||
|
leftPressed = false;
|
||||||
|
acceleration[0] -= -force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyD":
|
||||||
|
if (rightPressed) {
|
||||||
|
rightPressed = false;
|
||||||
|
acceleration[0] -= force;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyQ":
|
||||||
|
if (rotateCCWPressed) {
|
||||||
|
rotateCCWPressed = false;
|
||||||
|
rotate -= -1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "KeyE":
|
||||||
|
if (rotateCWPressed) {
|
||||||
|
rotateCWPressed = false;
|
||||||
|
rotate -= 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
leftTurnButton.addEventListener("mousedown", function (e) {
|
leftTurnButton.addEventListener("mousedown", function (e) {
|
||||||
acceleration[0] = -force;
|
acceleration[0] = -force;
|
||||||
});
|
});
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 10 KiB |
Reference in New Issue
Block a user