fractal-hell/js/motion.js

45 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2024-09-13 03:30:57 -04:00
let keys = [];
let vel = [0, 0];
2024-09-14 22:47:08 -04:00
let posM = [0,0];
let r = document.querySelector('canvas').getBoundingClientRect();
let x = r.x + r.width / 2;
let y = r.y + r.height / 2;
2024-09-13 03:30:57 -04:00
let id = '';
function down(e) {
2024-09-13 21:25:41 -04:00
let k = e.key.toLowerCase();
keys[k] = true;
2024-09-14 22:47:08 -04:00
if (k == 'r') game.placeBlock(6,false,posM[0],posM[1]);
if (k == 'f') game.placeBlock(5,false,posM[0],posM[1]);
2024-09-13 03:30:57 -04:00
};
function up(e) {
keys[e.key.toLowerCase()] = false;
};
function move() {
var isShift = keys['q'];
2024-09-13 21:25:41 -04:00
vel[0] += ((keys['a'] ? 1 : 0) - (keys['d'] ? 1 : 0)) * (isShift ? 2.3 : 1);
vel[1] += ((keys['w'] ? 1 : 0) - (keys['s'] ? 1 : 0)) * (isShift ? 2.3 : 1);
2024-09-13 03:30:57 -04:00
vel[0] *= 0.8;
vel[1] *= 0.8;
2024-09-14 22:32:14 -04:00
game.camera[0] -= vel[0] * 1.8;
game.camera[1] -= vel[1] * 1.8;
2024-09-13 03:30:57 -04:00
}
2024-09-14 22:47:08 -04:00
function mouse(e) {
posM[0] = game.camera[0] + (e.pageX - x) / r.width * document.querySelector('canvas').width;
posM[0] -= tileSize / 2;
posM[1] = game.camera[1] + (e.pageY - y) / r.height * document.querySelector('canvas').height;
posM[1] -= tileSize / 2;
}
2024-09-13 03:30:57 -04:00
setInterval(move, 10);
window.addEventListener('keydown', down);
2024-09-14 22:47:08 -04:00
window.addEventListener('keyup', up);
window.addEventListener('mousemove', mouse);