reimplemented sensor data pushes, need to update to new sensor paradigm. Added 30fps frame lock
parent
3934ec2ae1
commit
39cac21741
32
game.js
32
game.js
|
|
@ -105,8 +105,16 @@ function resetGame() {
|
|||
document.getElementById("pause-button").innerText = "Pause";
|
||||
}
|
||||
|
||||
const targetFPS = 30;
|
||||
const targetInterval = 1000 / targetFPS; // Time in milliseconds per frame
|
||||
let lastFrameTime = 0;
|
||||
|
||||
// ✅ Game Loop
|
||||
function gameLoop() {
|
||||
function gameLoop(timestamp) {
|
||||
const deltaTime = timestamp - lastFrameTime;
|
||||
// If enough time has passed since the last frame, update and draw
|
||||
if (deltaTime >= targetInterval) {
|
||||
lastFrameTime = timestamp;
|
||||
if (!paused) {
|
||||
ctx.resetTransform();
|
||||
// Fill the entire visible canvas to remove artifacts
|
||||
|
|
@ -119,7 +127,13 @@ function gameLoop() {
|
|||
gameWorld.update();
|
||||
gameWorld.draw(ctx);
|
||||
|
||||
pyodideWorker.postMessage({
|
||||
type: "game_state",
|
||||
state: gameWorld
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
requestAnimationFrame(gameLoop);
|
||||
}
|
||||
|
|
@ -128,6 +142,22 @@ resetGame(); // Initialize the game and robots
|
|||
// Start game loop
|
||||
gameLoop();
|
||||
|
||||
// ✅ Update "distance" and "speed" every 2 seconds with random values
|
||||
function updateSensorData() {
|
||||
const distance = Math.random() * 100; // Random distance (0-100)
|
||||
const speed = Math.random() * 10; // Random speed (0-10)
|
||||
console.log(`Distance: ${distance.toFixed(2)}, Speed: ${speed.toFixed(2)}`);
|
||||
pyodideWorker.postMessage({
|
||||
type: "sensor_update",
|
||||
data: { distance, speed }
|
||||
});
|
||||
|
||||
//logToConsole(`📡 Sensor Update - Distance: ${distance.toFixed(2)}, Speed: ${speed.toFixed(2)}`);
|
||||
}
|
||||
|
||||
setInterval(updateSensorData, 2000); // Call every 2 seconds
|
||||
|
||||
|
||||
// ✅ Button Event Listeners
|
||||
document.getElementById("compile-button").addEventListener("click", () => {
|
||||
if (paused) return;
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ time.sleep = async_sleep # ✅ Monkey-patch time.sleep()
|
|||
}
|
||||
|
||||
initializePyodide();
|
||||
self.postMessage({ type: "console", message: ":-(" });
|
||||
|
||||
self.onmessage = async (event) => {
|
||||
if (!self.pyodide) {
|
||||
|
|
@ -75,6 +76,9 @@ self.onmessage = async (event) => {
|
|||
if (event.data.type === "sensor_update") {
|
||||
// ✅ Update sensor data
|
||||
Object.assign(sensorData, event.data.data);
|
||||
} else if (event.data.type === "game_state") {
|
||||
console.log("Game state updated in");
|
||||
|
||||
} else if (event.data.type === "execute") {
|
||||
try {
|
||||
let result = await self.pyodide.runPythonAsync(event.data.code);
|
||||
|
|
|
|||
Loading…
Reference in New Issue