Files
EBLv2/index.js

68 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

2025-09-30 18:47:23 +10:00
// Send data to backend function
function sendData(data) {
fetch('http://localhost:5000/api/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(res => res.json())
.then(data => {
2025-10-01 18:25:31 +10:00
// Clear Canvas
2025-09-30 18:47:23 +10:00
ctx.clearRect(0, 0, 480, 270);
2025-10-01 18:25:31 +10:00
// Draw in Player 1
ctx.drawImage(ufo, data.player1.xpos-spriteData.ufo.width/2, data.player1.ypos-spriteData.ufo.height/2)
2025-09-30 18:47:23 +10:00
reset = false
2025-10-01 18:25:31 +10:00
// Draw Hitboxes (For debugging)
let plat = data.map1.platforms
for (i = 0; i < plat.length; i++) {
ctx.fillRect(plat[i].x, plat[i].y, plat[i].width, plat[i].height)
}
2025-09-30 18:47:23 +10:00
})
.catch(err => console.error('Error:', err));
}
// Set up canvas
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d'); // 2D context
// Track key presses
var keyDown = {
"ArrowUp": false,
"ArrowDown": false,
"ArrowRight": false,
"ArrowLeft": false,
}
document.addEventListener('keydown', function (e) {
let f = e.key
if (f === "ArrowUp") {
keyDown.ArrowUp = true;
} else if (f === "ArrowDown") {
keyDown.ArrowDown = true;
} else if (f === "ArrowRight") {
keyDown.ArrowRight = true;
} else if (f === "ArrowLeft") {
keyDown.ArrowLeft = true;
}
})
document.addEventListener('keyup', function (e) {
let f = e.key
if (f === "ArrowUp") {
keyDown.ArrowUp = false;
} else if (f === "ArrowDown") {
keyDown.ArrowDown = false;
} else if (f === "ArrowRight") {
keyDown.ArrowRight = false;
} else if (f === "ArrowLeft") {
keyDown.ArrowLeft = false;
}
})
// Start Game
var reset = true
2025-10-01 18:25:31 +10:00
setInterval(() => sendData({reset, keyDown, spriteData}), 16);