@@ -213,7 +213,7 @@ export default class Runner {
213
213
}
214
214
215
215
// Check for collisions.
216
- let collision = hasObstacles && checkForCollision ( this . horizon . obstacles [ 0 ] , this . tRex , this . ctx )
216
+ let collision = hasObstacles && checkForCollision ( this . horizon . obstacles [ 0 ] , this . tRex )
217
217
218
218
if ( ! collision ) {
219
219
this . distanceRan += ( this . currentSpeed * deltaTime ) / this . msPerFrame
@@ -359,7 +359,7 @@ export default class Runner {
359
359
// Update the high score.
360
360
if ( this . distanceRan > this . highestScore ) {
361
361
this . highestScore = Math . ceil ( this . distanceRan )
362
- this . distanceMeter . setHightScore ( this . highestScore )
362
+ this . distanceMeter . setHighScore ( this . highestScore )
363
363
}
364
364
365
365
this . time = Date . now ( )
@@ -445,7 +445,8 @@ export default class Runner {
445
445
document . addEventListener ( Runner . events . KEYUP , this )
446
446
447
447
// Touch / pointer.
448
- this . containerEl . addEventListener ( Runner . events . TOUCHSTART , this )
448
+ document . addEventListener ( Runner . events . TOUCHSTART , this )
449
+ document . addEventListener ( Runner . events . TOUCHEND , this )
449
450
document . addEventListener ( Runner . events . POINTERDOWN , this )
450
451
document . addEventListener ( Runner . events . POINTERUP , this )
451
452
}
@@ -460,20 +461,28 @@ export default class Runner {
460
461
const evtType = e . type
461
462
switch ( evtType ) {
462
463
case Runner . events . KEYDOWN :
464
+ case Runner . events . TOUCHSTART :
465
+ case Runner . events . POINTERDOWN :
463
466
this . onKeydown ( e )
464
467
break
465
468
case Runner . events . KEYUP :
469
+ case Runner . events . TOUCHEND :
470
+ case Runner . events . POINTERUP :
466
471
this . onKeyUp ( e )
467
472
break
468
473
}
469
474
}
470
475
471
476
onKeydown ( e : KeyboardEvent ) {
477
+ if ( IS_MOBILE && this . playing ) {
478
+ e . preventDefault ( )
479
+ }
480
+
472
481
const keycode = e . keyCode
482
+ const isJumpKey =
483
+ Runner . keycodes . JUMP [ keycode ] || e . type === Runner . events . TOUCHSTART || e . type === Runner . events . POINTERDOWN
473
484
if ( ! this . crashed && ! this . paused ) {
474
- if ( Runner . keycodes . JUMP [ keycode ] ) {
475
- e . preventDefault ( )
476
-
485
+ if ( isJumpKey ) {
477
486
if ( ! this . playing ) {
478
487
this . loadSound ( )
479
488
this . setPlayStatus ( true )
@@ -485,8 +494,6 @@ export default class Runner {
485
494
this . tRex . startJump ( this . currentSpeed )
486
495
}
487
496
} else if ( this . playing && Runner . keycodes . DUCK [ keycode ] ) {
488
- e . preventDefault ( )
489
-
490
497
if ( this . tRex . jumping ) {
491
498
this . tRex . setSpeedDrop ( )
492
499
} else if ( ! this . tRex . jumping && ! this . tRex . ducking ) {
@@ -498,7 +505,9 @@ export default class Runner {
498
505
499
506
onKeyUp ( e : KeyboardEvent ) {
500
507
const keycode = e . keyCode
501
- if ( this . isRunning ( ) && Runner . keycodes . JUMP [ keycode ] ) {
508
+ const isJumpKey =
509
+ Runner . keycodes . JUMP [ keycode ] || e . type === Runner . events . TOUCHEND || e . type === Runner . events . POINTERUP
510
+ if ( this . isRunning ( ) && isJumpKey ) {
502
511
this . tRex . endJump ( )
503
512
} else if ( Runner . keycodes . DUCK [ keycode ] ) {
504
513
this . tRex . speedDrop = false
@@ -508,10 +517,14 @@ export default class Runner {
508
517
509
518
if (
510
519
Runner . keycodes . RESTART [ keycode ] ||
520
+ e . type === Runner . events . POINTERUP ||
511
521
( deltaTime >= this . config . GAMEOVER_CLEAR_TIME && Runner . keycodes . JUMP [ keycode ] )
512
522
) {
513
523
this . restart ( )
514
524
}
525
+ } else if ( this . paused && isJumpKey ) {
526
+ this . tRex . reset ( )
527
+ this . play ( )
515
528
}
516
529
}
517
530
0 commit comments