-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinput-controller.js
29 lines (26 loc) · 947 Bytes
/
input-controller.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class InputController {
constructor() {
window.addEventListener('keydown', this.keydown, false);
window.addEventListener('keyup', this.keyup, false);
}
keydown = (event) => {
event.preventDefault();
switch(event.key.toLowerCase()) {
case 'k': actionController.attack(); break;
case 'c': actionController.climb(); break;
case 'g': actionController.glide(); break;
case 'w':
case 'arrowup': actionController.jump(); break;
case 'a':
case 'arrowleft': actionController.run(DIRECTION.LEFT); break;
case 'd':
case 'arrowright': actionController.run(DIRECTION.RIGHT); break;
case 's': actionController.slide(); break;
case 'l': actionController.throw(); break;
}
}
keyup = (event) => {
event.preventDefault();
actionController.idle();
}
}