Snake Movement Handler Setup
This commit is contained in:
47
frontend/game/scripts/Game/Elements/MovementHandler.js
Normal file
47
frontend/game/scripts/Game/Elements/MovementHandler.js
Normal file
@@ -0,0 +1,47 @@
|
||||
class MovementHandler{
|
||||
/**@param {import("../../../../../backend/node_modules/socket.io-client".Socket} socket Autocompletions VSC*/
|
||||
constructor(socket){
|
||||
this.socket = socket;
|
||||
|
||||
this.keys = [
|
||||
{
|
||||
keys: ["w", "W", "ArrowUp"],
|
||||
name:"up"
|
||||
},
|
||||
{
|
||||
keys: ["s", "S", "ArrowDown"],
|
||||
name:"down"
|
||||
},
|
||||
{
|
||||
keys: ["d", "D", "ArrowRight"],
|
||||
name:"right"
|
||||
},
|
||||
{
|
||||
keys: ["a", "A", "ArrowLeft"],
|
||||
name:"left"
|
||||
}
|
||||
]
|
||||
|
||||
document.addEventListener("keydown", (e) => { this.updateMovement(e) });
|
||||
}
|
||||
|
||||
/**@param {KeyboardEvent} e */
|
||||
updateMovement(e){
|
||||
const key = e.key;
|
||||
let direction = null;
|
||||
|
||||
this.keys.forEach(e => {
|
||||
e.keys.forEach(x => {
|
||||
if(x === key){
|
||||
direction = e.name;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
if(!direction) return;
|
||||
|
||||
console.log(direction);
|
||||
}
|
||||
}
|
||||
|
||||
export default MovementHandler;
|
||||
Reference in New Issue
Block a user