@@ -39,16 +39,17 @@ KeyboardInputManager.prototype.listen = function () {
39
39
39 : 1 , // Right
40
40
40 : 2 , // Down
41
41
37 : 3 , // Left
42
- 75 : 0 , // vim keybindings
43
- 76 : 1 ,
44
- 74 : 2 ,
45
- 72 : 3 ,
42
+ 75 : 0 , // Vim up
43
+ 76 : 1 , // Vim right
44
+ 74 : 2 , // Vim down
45
+ 72 : 3 , // Vim left
46
46
87 : 0 , // W
47
47
68 : 1 , // D
48
48
83 : 2 , // S
49
49
65 : 3 // A
50
50
} ;
51
51
52
+ // Respond to direction keys
52
53
document . addEventListener ( "keydown" , function ( event ) {
53
54
var modifiers = event . altKey || event . ctrlKey || event . metaKey ||
54
55
event . shiftKey ;
@@ -59,38 +60,32 @@ KeyboardInputManager.prototype.listen = function () {
59
60
event . preventDefault ( ) ;
60
61
self . emit ( "move" , mapped ) ;
61
62
}
62
-
63
- if ( event . which === 32 ) self . restart . bind ( self ) ( event ) ;
64
63
}
65
64
} ) ;
66
65
67
- var retry = document . querySelector ( ".retry-button" ) ;
68
- retry . addEventListener ( "click" , this . restart . bind ( this ) ) ;
69
- retry . addEventListener ( this . eventTouchend , this . restart . bind ( this ) ) ;
70
-
71
- var restart = document . querySelector ( ".restart-button" ) ;
72
- restart . addEventListener ( "click" , this . restart . bind ( this ) ) ;
73
- restart . addEventListener ( "touchend" , this . restart . bind ( this ) ) ;
74
-
75
- var keepPlaying = document . querySelector ( ".keep-playing-button" ) ;
76
- keepPlaying . addEventListener ( "click" , this . keepPlaying . bind ( this ) ) ;
77
- keepPlaying . addEventListener ( "touchend" , this . keepPlaying . bind ( this ) ) ;
66
+ // Respond to button presses
67
+ this . bindButtonPress ( ".retry-button" , this . restart ) ;
68
+ this . bindButtonPress ( ".restart-button" , this . restart ) ;
69
+ this . bindButtonPress ( ".keep-playing-button" , this . keepPlaying ) ;
78
70
79
- // Listen to swipe events
71
+ // Respond to swipe events
80
72
var touchStartClientX , touchStartClientY ;
81
73
var gameContainer = document . getElementsByClassName ( "game-container" ) [ 0 ] ;
82
74
83
75
gameContainer . addEventListener ( this . eventTouchstart , function ( event ) {
84
- if ( ( ! window . navigator . msPointerEnabled && event . touches . length > 1 ) || event . targetTouches > 1 ) return ;
85
-
86
- if ( window . navigator . msPointerEnabled ) {
87
- touchStartClientX = event . pageX ;
88
- touchStartClientY = event . pageY ;
76
+ if ( ( ! window . navigator . msPointerEnabled && event . touches . length > 1 ) ||
77
+ event . targetTouches > 1 ) {
78
+ return ; // Ignore if touching with more than 1 finger
79
+ }
80
+
81
+ if ( window . navigator . msPointerEnabled ) {
82
+ touchStartClientX = event . pageX ;
83
+ touchStartClientY = event . pageY ;
89
84
} else {
90
- touchStartClientX = event . touches [ 0 ] . clientX ;
91
- touchStartClientY = event . touches [ 0 ] . clientY ;
85
+ touchStartClientX = event . touches [ 0 ] . clientX ;
86
+ touchStartClientY = event . touches [ 0 ] . clientY ;
92
87
}
93
-
88
+
94
89
event . preventDefault ( ) ;
95
90
} ) ;
96
91
@@ -99,15 +94,19 @@ KeyboardInputManager.prototype.listen = function () {
99
94
} ) ;
100
95
101
96
gameContainer . addEventListener ( this . eventTouchend , function ( event ) {
102
- if ( ( ! window . navigator . msPointerEnabled && event . touches . length > 0 ) || event . targetTouches > 0 ) return ;
97
+ if ( ( ! window . navigator . msPointerEnabled && event . touches . length > 0 ) ||
98
+ event . targetTouches > 0 ) {
99
+ return ; // Ignore if still touching with one or more fingers
100
+ }
103
101
104
102
var touchEndClientX , touchEndClientY ;
105
- if ( window . navigator . msPointerEnabled ) {
106
- touchEndClientX = event . pageX ;
107
- touchEndClientY = event . pageY ;
103
+
104
+ if ( window . navigator . msPointerEnabled ) {
105
+ touchEndClientX = event . pageX ;
106
+ touchEndClientY = event . pageY ;
108
107
} else {
109
- touchEndClientX = event . changedTouches [ 0 ] . clientX ;
110
- touchEndClientY = event . changedTouches [ 0 ] . clientY ;
108
+ touchEndClientX = event . changedTouches [ 0 ] . clientX ;
109
+ touchEndClientY = event . changedTouches [ 0 ] . clientY ;
111
110
}
112
111
113
112
var dx = touchEndClientX - touchStartClientX ;
@@ -132,3 +131,9 @@ KeyboardInputManager.prototype.keepPlaying = function (event) {
132
131
event . preventDefault ( ) ;
133
132
this . emit ( "keepPlaying" ) ;
134
133
} ;
134
+
135
+ KeyboardInputManager . prototype . bindButtonPress = function ( selector , fn ) {
136
+ var button = document . querySelector ( selector ) ;
137
+ button . addEventListener ( "click" , fn . bind ( this ) ) ;
138
+ button . addEventListener ( this . eventTouchend , fn . bind ( this ) ) ;
139
+ } ;
0 commit comments