| class Controls{ | |
| constructor(type){ | |
| this.forward=false; | |
| this.left=false; | |
| this.right=false; | |
| this.reverse=false; | |
| switch(type){ | |
| case "KEYS": | |
| this.#addKeyboardListeners(); | |
| break; | |
| case "DUMMY": | |
| this.forward=true; | |
| break; | |
| } | |
| } | |
| #addKeyboardListeners(){ | |
| document.onkeydown=(event)=>{ | |
| switch(event.key){ | |
| case "ArrowLeft": | |
| this.left=true; | |
| break; | |
| case "ArrowRight": | |
| this.right=true; | |
| break; | |
| case "ArrowUp": | |
| this.forward=true; | |
| break; | |
| case "ArrowDown": | |
| this.reverse=true; | |
| break; | |
| } | |
| } | |
| document.onkeyup=(event)=>{ | |
| switch(event.key){ | |
| case "ArrowLeft": | |
| this.left=false; | |
| break; | |
| case "ArrowRight": | |
| this.right=false; | |
| break; | |
| case "ArrowUp": | |
| this.forward=false; | |
| break; | |
| case "ArrowDown": | |
| this.reverse=false; | |
| break; | |
| } | |
| } | |
| } | |
| } |