html-tower/static/player.js

40 lines
1.3 KiB
JavaScript

console.log("loading player system");
const collision = (entity) => {
// look through engine's collision components for overlap
};
const playerSystem = (engine) => {
const entity = document.getElementById("player");
const movementRate = 0.5;
engine("registerEntity", entity);
const playerTransform = engine ("getComponentContructor", "transform")(entity);
const move = (direction) => (delta, eventData) => {
let translation = [0,0];
switch (direction) {
case "left":
translation [0] = -( movementRate * delta );
break;
case "right":
translation[0] = movementRate * delta;
break;
case "up":
translation[1] = - ( movementRate * delta );
break;
case "down":
translation[1] = movementRate * delta;
break;
}
playerTransform("translate", translation);
};
engine("registerEntity", entity);
engine("addComponent", entity, "transform", playerTransform);
// engine("")
engine("subscribeToEvent", "moveLeft", "movePlayerLeft", move("left"));
engine("subscribeToEvent", "moveRight", "movePlayerRight", move("right"));
engine("subscribeToEvent", "moveUp", "movePlayerUp", move("up"));
engine("subscribeToEvent", "moveDown", "movePlayerDown", move("down"));
};