12345678910111213141516171819202122232425262728293031323334 |
- import {Trait} from '../Entity';
-
- export default class KeyboardControls extends Trait {
- constructor(entity) {
- super(entity, "keyboardControls");
-
- this.speed = 500;
- this.map = {
- KeyA: 'left',
- KeyD: 'right',
- };
-
- this.pressed = {};
- }
-
- onkey(evt) {
- let name = this.map[evt.code];
- if (name == null) return;
- evt.preventDefault();
- this.pressed[name] = evt.type === 'keydown';
- }
-
- init() {
- window.addEventListener("keydown", e => this.onkey(e));
- window.addEventListener("keyup", e => this.onkey(e));
- }
-
- update(dt) {
- if (this.pressed.left)
- this.entity.velocity.x -= this.speed * dt;
- if (this.pressed.right)
- this.entity.velocity.x += this.speed * dt;
- }
- }
|