@vpmedia/phaser 1.111.0 → 1.113.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1300 -1334
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/animation.d.ts +14 -10
- package/dist/phaser/core/animation.d.ts.map +1 -1
- package/dist/phaser/core/animation_manager.d.ts +10 -8
- package/dist/phaser/core/animation_manager.d.ts.map +1 -1
- package/dist/phaser/core/animation_parser.d.ts +5 -4
- package/dist/phaser/core/animation_parser.d.ts.map +1 -1
- package/dist/phaser/core/array_set.d.ts.map +1 -1
- package/dist/phaser/core/cache.d.ts +4 -3
- package/dist/phaser/core/cache.d.ts.map +1 -1
- package/dist/phaser/core/const.d.ts.map +1 -1
- package/dist/phaser/core/device.d.ts.map +1 -1
- package/dist/phaser/core/device_util.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts +3 -2
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/event_manager.d.ts.map +1 -1
- package/dist/phaser/core/factory.d.ts +1 -1
- package/dist/phaser/core/factory.d.ts.map +1 -1
- package/dist/phaser/core/frame.d.ts.map +1 -1
- package/dist/phaser/core/frame_data.d.ts.map +1 -1
- package/dist/phaser/core/game.d.ts +1 -1
- package/dist/phaser/core/game.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts +8 -6
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts +40 -30
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/input_mouse.d.ts +3 -2
- package/dist/phaser/core/input_mouse.d.ts.map +1 -1
- package/dist/phaser/core/input_mspointer.d.ts +3 -2
- package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
- package/dist/phaser/core/input_pointer.d.ts +6 -4
- package/dist/phaser/core/input_pointer.d.ts.map +1 -1
- package/dist/phaser/core/input_touch.d.ts +3 -2
- package/dist/phaser/core/input_touch.d.ts.map +1 -1
- package/dist/phaser/core/loader.d.ts +4 -3
- package/dist/phaser/core/loader.d.ts.map +1 -1
- package/dist/phaser/core/loader_parser.d.ts +9 -8
- package/dist/phaser/core/loader_parser.d.ts.map +1 -1
- package/dist/phaser/core/raf.d.ts +3 -2
- package/dist/phaser/core/raf.d.ts.map +1 -1
- package/dist/phaser/core/registry.d.ts +7 -0
- package/dist/phaser/core/registry.d.ts.map +1 -0
- package/dist/phaser/core/scale_manager.d.ts +1 -1
- package/dist/phaser/core/scale_manager.d.ts.map +1 -1
- package/dist/phaser/core/scene.d.ts +0 -1
- package/dist/phaser/core/scene.d.ts.map +1 -1
- package/dist/phaser/core/scene_manager.d.ts +1 -1
- package/dist/phaser/core/scene_manager.d.ts.map +1 -1
- package/dist/phaser/core/signal.d.ts +0 -1
- package/dist/phaser/core/signal.d.ts.map +1 -1
- package/dist/phaser/core/signal_binding.d.ts +4 -3
- package/dist/phaser/core/signal_binding.d.ts.map +1 -1
- package/dist/phaser/core/sound.d.ts +6 -4
- package/dist/phaser/core/sound.d.ts.map +1 -1
- package/dist/phaser/core/sound_manager.d.ts +3 -2
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/dist/phaser/core/sound_sprite.d.ts +5 -4
- package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
- package/dist/phaser/core/stage.d.ts +3 -2
- package/dist/phaser/core/stage.d.ts.map +1 -1
- package/dist/phaser/core/time.d.ts +1 -1
- package/dist/phaser/core/time.d.ts.map +1 -1
- package/dist/phaser/core/timer.d.ts +1 -1
- package/dist/phaser/core/timer.d.ts.map +1 -1
- package/dist/phaser/core/timer_event.d.ts.map +1 -1
- package/dist/phaser/core/tween.d.ts +10 -7
- package/dist/phaser/core/tween.d.ts.map +1 -1
- package/dist/phaser/core/tween_data.d.ts +3 -2
- package/dist/phaser/core/tween_data.d.ts.map +1 -1
- package/dist/phaser/core/tween_easing.d.ts.map +1 -1
- package/dist/phaser/core/tween_manager.d.ts +3 -2
- package/dist/phaser/core/tween_manager.d.ts.map +1 -1
- package/dist/phaser/core/world.d.ts +3 -2
- package/dist/phaser/core/world.d.ts.map +1 -1
- package/dist/phaser/display/bitmap_text.d.ts +3 -2
- package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
- package/dist/phaser/display/button.d.ts +3 -2
- package/dist/phaser/display/button.d.ts.map +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/graphics.d.ts +7 -6
- package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
- package/dist/phaser/display/canvas/pool.d.ts +2 -2
- package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
- package/dist/phaser/display/canvas/renderer.d.ts +10 -8
- package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/tinter.d.ts +3 -2
- package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
- package/dist/phaser/display/canvas/util.d.ts +2 -2
- package/dist/phaser/display/canvas/util.d.ts.map +1 -1
- package/dist/phaser/display/display_object.d.ts +14 -12
- package/dist/phaser/display/display_object.d.ts.map +1 -1
- package/dist/phaser/display/graphics.d.ts +8 -5
- package/dist/phaser/display/graphics.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
- package/dist/phaser/display/group.d.ts +4 -3
- package/dist/phaser/display/group.d.ts.map +1 -1
- package/dist/phaser/display/image.d.ts +13 -10
- package/dist/phaser/display/image.d.ts.map +1 -1
- package/dist/phaser/display/sprite_batch.d.ts +3 -2
- package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/sprite_util.d.ts +18 -15
- package/dist/phaser/display/sprite_util.d.ts.map +1 -1
- package/dist/phaser/display/text.d.ts +11 -9
- package/dist/phaser/display/text.d.ts.map +1 -1
- package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
- package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts +0 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +4 -3
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics.d.ts +7 -6
- package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts +2 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/webgl/render_texture.d.ts +4 -2
- package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/renderer.d.ts +16 -11
- package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/complex.d.ts +16 -6
- package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/fast.d.ts +19 -7
- package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/normal.d.ts +33 -12
- package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/primitive.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/strip.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader_manager.d.ts +16 -11
- package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/sprite_batch.d.ts +29 -20
- package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/stencil_manager.d.ts +12 -10
- package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture.d.ts +3 -2
- package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
- package/dist/phaser/display/webgl/util.d.ts.map +1 -1
- package/dist/phaser/geom/circle.d.ts +4 -1
- package/dist/phaser/geom/circle.d.ts.map +1 -1
- package/dist/phaser/geom/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/line.d.ts +1 -1
- package/dist/phaser/geom/line.d.ts.map +1 -1
- package/dist/phaser/geom/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/point.d.ts.map +1 -1
- package/dist/phaser/geom/polygon.d.ts.map +1 -1
- package/dist/phaser/geom/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/circle.d.ts.map +1 -1
- package/dist/phaser/geom/util/ellipse.d.ts +3 -2
- package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/util/line.d.ts.map +1 -1
- package/dist/phaser/geom/util/matrix.d.ts +2 -2
- package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/util/point.d.ts.map +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
- package/dist/phaser/util/math.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/phaser/core/animation.ts +64 -60
- package/src/phaser/core/animation_manager.ts +54 -55
- package/src/phaser/core/animation_parser.ts +9 -9
- package/src/phaser/core/array_set.ts +16 -17
- package/src/phaser/core/cache.ts +92 -93
- package/src/phaser/core/const.ts +1 -1
- package/src/phaser/core/device.ts +24 -29
- package/src/phaser/core/device_util.ts +28 -32
- package/src/phaser/core/dom.ts +54 -65
- package/src/phaser/core/event_manager.ts +64 -94
- package/src/phaser/core/factory.ts +14 -14
- package/src/phaser/core/frame.ts +28 -28
- package/src/phaser/core/frame_data.test.ts +100 -0
- package/src/phaser/core/frame_data.ts +24 -24
- package/src/phaser/core/frame_util.ts +2 -2
- package/src/phaser/core/game.ts +50 -51
- package/src/phaser/core/input.ts +104 -110
- package/src/phaser/core/input_handler.test.ts +113 -0
- package/src/phaser/core/input_handler.ts +199 -218
- package/src/phaser/core/input_mouse.ts +71 -54
- package/src/phaser/core/input_mspointer.ts +52 -39
- package/src/phaser/core/input_pointer.ts +81 -80
- package/src/phaser/core/input_touch.ts +49 -36
- package/src/phaser/core/loader.ts +175 -154
- package/src/phaser/core/loader_parser.ts +39 -57
- package/src/phaser/core/raf.ts +8 -7
- package/src/phaser/core/registry.test.ts +31 -0
- package/src/phaser/core/registry.ts +9 -0
- package/src/phaser/core/scale_manager.ts +156 -152
- package/src/phaser/core/scene.ts +9 -13
- package/src/phaser/core/scene_manager.ts +47 -47
- package/src/phaser/core/signal.test.ts +4 -4
- package/src/phaser/core/signal.ts +41 -52
- package/src/phaser/core/signal_binding.ts +26 -25
- package/src/phaser/core/signal_dispatch.test.ts +180 -0
- package/src/phaser/core/sound.ts +75 -83
- package/src/phaser/core/sound_manager.ts +58 -56
- package/src/phaser/core/sound_sprite.ts +17 -16
- package/src/phaser/core/stage.ts +25 -24
- package/src/phaser/core/time.ts +52 -52
- package/src/phaser/core/timer.test.ts +187 -0
- package/src/phaser/core/timer.ts +82 -69
- package/src/phaser/core/timer_event.ts +10 -10
- package/src/phaser/core/tween.ts +90 -93
- package/src/phaser/core/tween_data.ts +45 -51
- package/src/phaser/core/tween_easing.test.ts +106 -0
- package/src/phaser/core/tween_easing.ts +151 -123
- package/src/phaser/core/tween_manager.ts +19 -18
- package/src/phaser/core/world.ts +4 -3
- package/src/phaser/display/bitmap_text.ts +56 -64
- package/src/phaser/display/button.ts +33 -32
- package/src/phaser/display/canvas/buffer.ts +8 -8
- package/src/phaser/display/canvas/graphics.ts +36 -37
- package/src/phaser/display/canvas/masker.ts +2 -2
- package/src/phaser/display/canvas/pool.test.ts +106 -0
- package/src/phaser/display/canvas/pool.ts +25 -27
- package/src/phaser/display/canvas/renderer.ts +32 -31
- package/src/phaser/display/canvas/tinter.ts +27 -27
- package/src/phaser/display/canvas/util.ts +7 -10
- package/src/phaser/display/display_object.ts +114 -118
- package/src/phaser/display/graphics.ts +121 -119
- package/src/phaser/display/graphics_data.ts +12 -12
- package/src/phaser/display/graphics_data_util.ts +2 -3
- package/src/phaser/display/group.ts +50 -57
- package/src/phaser/display/image.ts +55 -52
- package/src/phaser/display/sprite_batch.ts +3 -2
- package/src/phaser/display/sprite_util.ts +48 -54
- package/src/phaser/display/text.ts +199 -204
- package/src/phaser/display/webgl/abstract_filter.ts +9 -9
- package/src/phaser/display/webgl/base_texture.ts +21 -24
- package/src/phaser/display/webgl/blend_manager.ts +6 -10
- package/src/phaser/display/webgl/earcut.ts +73 -37
- package/src/phaser/display/webgl/earcut_node.ts +10 -10
- package/src/phaser/display/webgl/fast_sprite_batch.ts +34 -34
- package/src/phaser/display/webgl/filter_manager.ts +13 -12
- package/src/phaser/display/webgl/filter_texture.ts +14 -13
- package/src/phaser/display/webgl/graphics.ts +51 -57
- package/src/phaser/display/webgl/graphics_data.ts +15 -14
- package/src/phaser/display/webgl/mask_manager.ts +2 -2
- package/src/phaser/display/webgl/render_texture.ts +26 -25
- package/src/phaser/display/webgl/renderer.ts +57 -62
- package/src/phaser/display/webgl/shader/complex.ts +28 -12
- package/src/phaser/display/webgl/shader/fast.ts +30 -12
- package/src/phaser/display/webgl/shader/normal.ts +70 -57
- package/src/phaser/display/webgl/shader/primitive.ts +26 -11
- package/src/phaser/display/webgl/shader/shader.test.ts +148 -0
- package/src/phaser/display/webgl/shader/strip.ts +27 -12
- package/src/phaser/display/webgl/shader_manager.test.ts +124 -0
- package/src/phaser/display/webgl/shader_manager.ts +26 -34
- package/src/phaser/display/webgl/sprite_batch.ts +67 -61
- package/src/phaser/display/webgl/stencil_manager.ts +23 -34
- package/src/phaser/display/webgl/texture.ts +43 -50
- package/src/phaser/display/webgl/texture_util.ts +2 -3
- package/src/phaser/display/webgl/util.ts +26 -25
- package/src/phaser/geom/circle.test.ts +2 -3
- package/src/phaser/geom/circle.ts +36 -36
- package/src/phaser/geom/ellipse.test.ts +73 -71
- package/src/phaser/geom/ellipse.ts +14 -14
- package/src/phaser/geom/line.test.ts +5 -5
- package/src/phaser/geom/line.ts +35 -35
- package/src/phaser/geom/matrix.test.ts +1 -1
- package/src/phaser/geom/matrix.ts +27 -27
- package/src/phaser/geom/point.test.ts +1 -2
- package/src/phaser/geom/point.ts +35 -35
- package/src/phaser/geom/polygon.test.ts +82 -0
- package/src/phaser/geom/polygon.ts +16 -16
- package/src/phaser/geom/rectangle.test.ts +14 -14
- package/src/phaser/geom/rectangle.ts +83 -75
- package/src/phaser/geom/rounded_rectangle.test.ts +1 -7
- package/src/phaser/geom/rounded_rectangle.ts +9 -9
- package/src/phaser/geom/util/circle.test.ts +25 -23
- package/src/phaser/geom/util/circle.ts +9 -18
- package/src/phaser/geom/util/ellipse.test.ts +7 -5
- package/src/phaser/geom/util/ellipse.ts +3 -2
- package/src/phaser/geom/util/line.test.ts +10 -8
- package/src/phaser/geom/util/line.ts +6 -16
- package/src/phaser/geom/util/matrix.test.ts +20 -18
- package/src/phaser/geom/util/matrix.ts +8 -15
- package/src/phaser/geom/util/point.test.ts +8 -6
- package/src/phaser/geom/util/point.ts +24 -28
- package/src/phaser/geom/util/polygon.test.ts +12 -10
- package/src/phaser/geom/util/polygon.ts +2 -2
- package/src/phaser/geom/util/rectangle.test.ts +10 -8
- package/src/phaser/geom/util/rectangle.ts +18 -37
- package/src/phaser/geom/util/rounded_rectangle.test.ts +11 -9
- package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
- package/src/phaser/util/math.test.ts +11 -11
- package/src/phaser/util/math.ts +29 -46
package/src/phaser/core/input.ts
CHANGED
|
@@ -10,67 +10,69 @@ import { MSPointer } from './input_mspointer.js';
|
|
|
10
10
|
import { Pointer } from './input_pointer.js';
|
|
11
11
|
import { Touch } from './input_touch.js';
|
|
12
12
|
import { Signal } from './signal.js';
|
|
13
|
+
import type { Game } from './game.js';
|
|
14
|
+
import type { DisplayObject } from '../display/display_object.js';
|
|
13
15
|
|
|
14
16
|
const MAX_POINTERS = 10;
|
|
15
17
|
|
|
16
18
|
export class Input {
|
|
17
|
-
game!: any;
|
|
18
|
-
hitCanvas!: HTMLCanvasElement;
|
|
19
|
-
hitContext!: any;
|
|
20
|
-
moveCallbacks!: { callback: Function; context: any }[];
|
|
21
|
-
lockCallbacks!: any;
|
|
22
|
-
customCandidateHandler!: any;
|
|
23
|
-
customCandidateHandlerContext!: any;
|
|
24
|
-
pollRate!: number;
|
|
25
|
-
enabled!: boolean;
|
|
26
|
-
multiInputOverride!: number;
|
|
27
|
-
position!: Point;
|
|
28
|
-
speed!: Point;
|
|
29
|
-
circle!: Circle;
|
|
30
|
-
scale!: Point;
|
|
31
|
-
maxPointers!: number;
|
|
32
|
-
tapRate!: number;
|
|
33
|
-
doubleTapRate!: number;
|
|
34
|
-
holdRate!: number;
|
|
35
|
-
justPressedRate!: number;
|
|
36
|
-
justReleasedRate!: number;
|
|
37
|
-
recordPointerHistory!: boolean;
|
|
38
|
-
recordRate!: number;
|
|
39
|
-
recordLimit!: number;
|
|
40
|
-
pointer1!: any;
|
|
41
|
-
pointer2!: any;
|
|
42
|
-
pointer3!: any;
|
|
43
|
-
pointer4!: any;
|
|
44
|
-
pointer5!: any;
|
|
45
|
-
pointer6!: any;
|
|
46
|
-
pointer7!: any;
|
|
47
|
-
pointer8!: any;
|
|
48
|
-
pointer9!: any;
|
|
49
|
-
pointer10!: any;
|
|
50
|
-
pointers!: Pointer[];
|
|
51
|
-
activePointer!: Pointer;
|
|
52
|
-
mousePointer!: Pointer;
|
|
53
|
-
mouse!: Mouse;
|
|
54
|
-
touch!: Touch;
|
|
55
|
-
mspointer!: MSPointer;
|
|
56
|
-
resetLocked!: boolean;
|
|
57
|
-
onDown!: Signal;
|
|
58
|
-
onUp!: Signal;
|
|
59
|
-
onTap!: Signal;
|
|
60
|
-
onHold!: Signal;
|
|
61
|
-
minPriorityID!: number;
|
|
62
|
-
interactiveItems!: ArraySet;
|
|
63
|
-
_localPoint!: Point;
|
|
64
|
-
_pollCounter!: number;
|
|
65
|
-
_oldPosition!: Point;
|
|
66
|
-
_onClickTrampoline!: any;
|
|
67
|
-
_x!: number;
|
|
68
|
-
_y!: number;
|
|
19
|
+
public game!: any;
|
|
20
|
+
public hitCanvas!: HTMLCanvasElement;
|
|
21
|
+
public hitContext!: any;
|
|
22
|
+
public moveCallbacks!: { callback: Function; context: any }[];
|
|
23
|
+
public lockCallbacks!: any;
|
|
24
|
+
public customCandidateHandler!: any;
|
|
25
|
+
public customCandidateHandlerContext!: any;
|
|
26
|
+
public pollRate!: number;
|
|
27
|
+
public enabled!: boolean;
|
|
28
|
+
public multiInputOverride!: number;
|
|
29
|
+
public position!: Point;
|
|
30
|
+
public speed!: Point;
|
|
31
|
+
public circle!: Circle;
|
|
32
|
+
public scale!: Point;
|
|
33
|
+
public maxPointers!: number;
|
|
34
|
+
public tapRate!: number;
|
|
35
|
+
public doubleTapRate!: number;
|
|
36
|
+
public holdRate!: number;
|
|
37
|
+
public justPressedRate!: number;
|
|
38
|
+
public justReleasedRate!: number;
|
|
39
|
+
public recordPointerHistory!: boolean;
|
|
40
|
+
public recordRate!: number;
|
|
41
|
+
public recordLimit!: number;
|
|
42
|
+
public pointer1!: any;
|
|
43
|
+
public pointer2!: any;
|
|
44
|
+
public pointer3!: any;
|
|
45
|
+
public pointer4!: any;
|
|
46
|
+
public pointer5!: any;
|
|
47
|
+
public pointer6!: any;
|
|
48
|
+
public pointer7!: any;
|
|
49
|
+
public pointer8!: any;
|
|
50
|
+
public pointer9!: any;
|
|
51
|
+
public pointer10!: any;
|
|
52
|
+
public pointers!: Pointer[];
|
|
53
|
+
public activePointer!: Pointer;
|
|
54
|
+
public mousePointer!: Pointer;
|
|
55
|
+
public mouse!: Mouse;
|
|
56
|
+
public touch!: Touch;
|
|
57
|
+
public mspointer!: MSPointer;
|
|
58
|
+
public resetLocked!: boolean;
|
|
59
|
+
public onDown!: Signal;
|
|
60
|
+
public onUp!: Signal;
|
|
61
|
+
public onTap!: Signal;
|
|
62
|
+
public onHold!: Signal;
|
|
63
|
+
public minPriorityID!: number;
|
|
64
|
+
public interactiveItems!: ArraySet;
|
|
65
|
+
public _localPoint!: Point;
|
|
66
|
+
public _pollCounter!: number;
|
|
67
|
+
public _oldPosition!: Point;
|
|
68
|
+
public _onClickTrampoline!: any;
|
|
69
|
+
public _x!: number;
|
|
70
|
+
public _y!: number;
|
|
69
71
|
/**
|
|
70
72
|
* TBD.
|
|
71
|
-
* @param {
|
|
73
|
+
* @param {Game} game - TBD.
|
|
72
74
|
*/
|
|
73
|
-
constructor(game:
|
|
75
|
+
public constructor(game: Game) {
|
|
74
76
|
this.game = game;
|
|
75
77
|
this.hitCanvas = null!;
|
|
76
78
|
this.hitContext = null;
|
|
@@ -127,7 +129,7 @@ export class Input {
|
|
|
127
129
|
/**
|
|
128
130
|
* TBD.
|
|
129
131
|
*/
|
|
130
|
-
boot() {
|
|
132
|
+
public boot() {
|
|
131
133
|
this.mousePointer = new Pointer(this.game, 0, POINTER_CURSOR);
|
|
132
134
|
this.addPointer();
|
|
133
135
|
this.addPointer();
|
|
@@ -161,7 +163,7 @@ export class Input {
|
|
|
161
163
|
/**
|
|
162
164
|
* TBD.
|
|
163
165
|
*/
|
|
164
|
-
destroy() {
|
|
166
|
+
public destroy() {
|
|
165
167
|
this.mouse.stop();
|
|
166
168
|
if (this.game.device.mspointer) {
|
|
167
169
|
this.mspointer.stop();
|
|
@@ -178,7 +180,7 @@ export class Input {
|
|
|
178
180
|
* @param {Function} callback - TBD.
|
|
179
181
|
* @param {object} context - TBD.
|
|
180
182
|
*/
|
|
181
|
-
setInteractiveCandidateHandler(callback: Function, context: any) {
|
|
183
|
+
public setInteractiveCandidateHandler(callback: Function, context: any) {
|
|
182
184
|
this.customCandidateHandler = callback;
|
|
183
185
|
this.customCandidateHandlerContext = context;
|
|
184
186
|
}
|
|
@@ -188,7 +190,7 @@ export class Input {
|
|
|
188
190
|
* @param {Function} callback - TBD.
|
|
189
191
|
* @param {object} context - TBD.
|
|
190
192
|
*/
|
|
191
|
-
addMoveCallback(callback: Function, context: any) {
|
|
193
|
+
public addMoveCallback(callback: Function, context: any) {
|
|
192
194
|
this.moveCallbacks.push({ callback, context });
|
|
193
195
|
}
|
|
194
196
|
|
|
@@ -197,11 +199,11 @@ export class Input {
|
|
|
197
199
|
* @param {Function} callback - TBD.
|
|
198
200
|
* @param {object} context - TBD.
|
|
199
201
|
*/
|
|
200
|
-
deleteMoveCallback(callback: Function, context: any) {
|
|
202
|
+
public deleteMoveCallback(callback: Function, context: any) {
|
|
201
203
|
let i = this.moveCallbacks.length;
|
|
202
204
|
while (i) {
|
|
203
205
|
i -= 1;
|
|
204
|
-
if (this.moveCallbacks[i]
|
|
206
|
+
if (this.moveCallbacks[i]!.callback === callback && this.moveCallbacks[i]!.context === context) {
|
|
205
207
|
this.moveCallbacks.splice(i, 1);
|
|
206
208
|
return;
|
|
207
209
|
}
|
|
@@ -212,7 +214,7 @@ export class Input {
|
|
|
212
214
|
* TBD.
|
|
213
215
|
* @returns {Pointer} TBD.
|
|
214
216
|
*/
|
|
215
|
-
addPointer() {
|
|
217
|
+
public addPointer() {
|
|
216
218
|
if (this.pointers.length >= MAX_POINTERS) {
|
|
217
219
|
this.game.logger.warn(`Input.addPointer: Maximum limit of ${MAX_POINTERS} pointers reached.`);
|
|
218
220
|
return null;
|
|
@@ -227,7 +229,7 @@ export class Input {
|
|
|
227
229
|
/**
|
|
228
230
|
* TBD.
|
|
229
231
|
*/
|
|
230
|
-
update() {
|
|
232
|
+
public update() {
|
|
231
233
|
if (this.pollRate > 0 && this._pollCounter < this.pollRate) {
|
|
232
234
|
this._pollCounter += 1;
|
|
233
235
|
return;
|
|
@@ -236,8 +238,8 @@ export class Input {
|
|
|
236
238
|
this.speed.y = this.position.y - this._oldPosition.y;
|
|
237
239
|
this._oldPosition.copyFrom(this.position);
|
|
238
240
|
this.mousePointer.update();
|
|
239
|
-
for (
|
|
240
|
-
|
|
241
|
+
for (const pointer of this.pointers) {
|
|
242
|
+
pointer.update();
|
|
241
243
|
}
|
|
242
244
|
this._pollCounter = 0;
|
|
243
245
|
}
|
|
@@ -246,13 +248,13 @@ export class Input {
|
|
|
246
248
|
* TBD.
|
|
247
249
|
* @param {boolean} hard - TBD.
|
|
248
250
|
*/
|
|
249
|
-
reset(hard
|
|
251
|
+
public reset(hard = false) {
|
|
250
252
|
if (!this.game.isBooted || this.resetLocked) {
|
|
251
253
|
return;
|
|
252
254
|
}
|
|
253
255
|
this.mousePointer.reset();
|
|
254
|
-
for (
|
|
255
|
-
|
|
256
|
+
for (const pointer of this.pointers) {
|
|
257
|
+
pointer.reset();
|
|
256
258
|
}
|
|
257
259
|
if (this.game.canvas.style.cursor !== 'none') {
|
|
258
260
|
this.game.canvas.style.cursor = 'inherit';
|
|
@@ -276,7 +278,7 @@ export class Input {
|
|
|
276
278
|
* @param {number} x - TBD.
|
|
277
279
|
* @param {number} y - TBD.
|
|
278
280
|
*/
|
|
279
|
-
resetSpeed(x: number, y: number) {
|
|
281
|
+
public resetSpeed(x: number, y: number) {
|
|
280
282
|
this._oldPosition.setTo(x, y);
|
|
281
283
|
this.speed.setTo(0, 0);
|
|
282
284
|
}
|
|
@@ -286,7 +288,7 @@ export class Input {
|
|
|
286
288
|
* @param {MouseEvent|TouchEvent|PointerEvent} event - TBD.
|
|
287
289
|
* @returns {Pointer} TBD.
|
|
288
290
|
*/
|
|
289
|
-
startPointer(event: any | TouchEvent | PointerEvent) {
|
|
291
|
+
public startPointer(event: any | TouchEvent | PointerEvent) {
|
|
290
292
|
if (this.maxPointers >= 0 && this.countActivePointers(this.maxPointers) >= this.maxPointers) {
|
|
291
293
|
return null;
|
|
292
294
|
}
|
|
@@ -297,7 +299,7 @@ export class Input {
|
|
|
297
299
|
return this.pointer2.start(event);
|
|
298
300
|
}
|
|
299
301
|
for (let i = 2; i < this.pointers.length; i += 1) {
|
|
300
|
-
const pointer = this.pointers[i]
|
|
302
|
+
const pointer = this.pointers[i]!;
|
|
301
303
|
if (!pointer.active) {
|
|
302
304
|
return pointer.start(event);
|
|
303
305
|
}
|
|
@@ -310,7 +312,7 @@ export class Input {
|
|
|
310
312
|
* @param {MouseEvent|TouchEvent|PointerEvent} event - TBD.
|
|
311
313
|
* @returns {Pointer} TBD.
|
|
312
314
|
*/
|
|
313
|
-
updatePointer(event: any | TouchEvent | PointerEvent) {
|
|
315
|
+
public updatePointer(event: any | TouchEvent | PointerEvent) {
|
|
314
316
|
if (this.pointer1.active && this.pointer1.identifier === event.identifier) {
|
|
315
317
|
return this.pointer1.move(event);
|
|
316
318
|
}
|
|
@@ -318,7 +320,7 @@ export class Input {
|
|
|
318
320
|
return this.pointer2.move(event);
|
|
319
321
|
}
|
|
320
322
|
for (let i = 2; i < this.pointers.length; i += 1) {
|
|
321
|
-
const pointer = this.pointers[i]
|
|
323
|
+
const pointer = this.pointers[i]!;
|
|
322
324
|
if (pointer.active && pointer.identifier === event.identifier) {
|
|
323
325
|
return pointer.move(event);
|
|
324
326
|
}
|
|
@@ -331,7 +333,7 @@ export class Input {
|
|
|
331
333
|
* @param {MouseEvent|TouchEvent|PointerEvent} event - TBD.
|
|
332
334
|
* @returns {Pointer} TBD.
|
|
333
335
|
*/
|
|
334
|
-
stopPointer(event: any | TouchEvent | PointerEvent) {
|
|
336
|
+
public stopPointer(event: any | TouchEvent | PointerEvent) {
|
|
335
337
|
if (this.pointer1.active && this.pointer1.identifier === event.identifier) {
|
|
336
338
|
return this.pointer1.stop(event);
|
|
337
339
|
}
|
|
@@ -339,7 +341,7 @@ export class Input {
|
|
|
339
341
|
return this.pointer2.stop(event);
|
|
340
342
|
}
|
|
341
343
|
for (let i = 2; i < this.pointers.length; i += 1) {
|
|
342
|
-
const pointer = this.pointers[i]
|
|
344
|
+
const pointer = this.pointers[i]!;
|
|
343
345
|
if (pointer.active && pointer.identifier === event.identifier) {
|
|
344
346
|
return pointer.stop(event);
|
|
345
347
|
}
|
|
@@ -352,10 +354,10 @@ export class Input {
|
|
|
352
354
|
* @param {number} limit - TBD.
|
|
353
355
|
* @returns {number} TBD.
|
|
354
356
|
*/
|
|
355
|
-
countActivePointers(limit: number = this.pointers.length) {
|
|
357
|
+
public countActivePointers(limit: number = this.pointers.length) {
|
|
356
358
|
let count = limit;
|
|
357
359
|
for (let i = 0; i < this.pointers.length && count > 0; i += 1) {
|
|
358
|
-
const pointer = this.pointers[i]
|
|
360
|
+
const pointer = this.pointers[i]!;
|
|
359
361
|
if (pointer.active) {
|
|
360
362
|
count -= 1;
|
|
361
363
|
}
|
|
@@ -368,9 +370,8 @@ export class Input {
|
|
|
368
370
|
* @param {boolean} isActive - TBD.
|
|
369
371
|
* @returns {Pointer} TBD.
|
|
370
372
|
*/
|
|
371
|
-
getPointer(isActive
|
|
372
|
-
for (
|
|
373
|
-
const pointer = this.pointers[i];
|
|
373
|
+
public getPointer(isActive = false) {
|
|
374
|
+
for (const pointer of this.pointers) {
|
|
374
375
|
if (pointer.active === isActive) {
|
|
375
376
|
return pointer;
|
|
376
377
|
}
|
|
@@ -383,9 +384,8 @@ export class Input {
|
|
|
383
384
|
* @param {number} identifier - TBD.
|
|
384
385
|
* @returns {Pointer} TBD.
|
|
385
386
|
*/
|
|
386
|
-
getPointerFromIdentifier(identifier: number) {
|
|
387
|
-
for (
|
|
388
|
-
const pointer = this.pointers[i];
|
|
387
|
+
public getPointerFromIdentifier(identifier: number) {
|
|
388
|
+
for (const pointer of this.pointers) {
|
|
389
389
|
if (pointer.identifier === identifier) {
|
|
390
390
|
return pointer;
|
|
391
391
|
}
|
|
@@ -399,9 +399,8 @@ export class Input {
|
|
|
399
399
|
* @param {number} pointerId - TBD.
|
|
400
400
|
* @returns {Pointer} TBD.
|
|
401
401
|
*/
|
|
402
|
-
getPointerFromId(pointerId: number) {
|
|
403
|
-
for (
|
|
404
|
-
const pointer = this.pointers[i];
|
|
402
|
+
public getPointerFromId(pointerId: number) {
|
|
403
|
+
for (const pointer of this.pointers) {
|
|
405
404
|
if (pointer.pointerId === pointerId) {
|
|
406
405
|
return pointer;
|
|
407
406
|
}
|
|
@@ -412,17 +411,13 @@ export class Input {
|
|
|
412
411
|
|
|
413
412
|
/**
|
|
414
413
|
* TBD.
|
|
415
|
-
* @param {
|
|
414
|
+
* @param {DisplayObject} displayObject - TBD.
|
|
416
415
|
* @param {Pointer} pointer - TBD.
|
|
417
416
|
* @param {Point} output - TBD.
|
|
418
417
|
* @returns {Point} TBD.
|
|
419
418
|
*/
|
|
420
|
-
getLocalPosition(
|
|
421
|
-
|
|
422
|
-
pointer: Pointer,
|
|
423
|
-
output: Point | null = null
|
|
424
|
-
) {
|
|
425
|
-
const result = output || new Point();
|
|
419
|
+
public getLocalPosition(displayObject: DisplayObject, pointer: Pointer, output: Point | null = null) {
|
|
420
|
+
const result = output ?? new Point();
|
|
426
421
|
const wt = displayObject.worldTransform;
|
|
427
422
|
const id = 1 / (wt.a * wt.d + wt.c * -wt.b);
|
|
428
423
|
return result.setTo(
|
|
@@ -433,12 +428,12 @@ export class Input {
|
|
|
433
428
|
|
|
434
429
|
/**
|
|
435
430
|
* TBD.
|
|
436
|
-
* @param {
|
|
431
|
+
* @param {DisplayObject} displayObject - TBD.
|
|
437
432
|
* @param {Pointer} pointer - TBD.
|
|
438
433
|
* @param {Point} localPoint - TBD.
|
|
439
434
|
* @returns {boolean} TBD.
|
|
440
435
|
*/
|
|
441
|
-
hitTest(displayObject:
|
|
436
|
+
public hitTest(displayObject: DisplayObject, pointer: Pointer, localPoint: Point) {
|
|
442
437
|
if (!displayObject.worldVisible) {
|
|
443
438
|
return false;
|
|
444
439
|
}
|
|
@@ -447,8 +442,8 @@ export class Input {
|
|
|
447
442
|
if (displayObject.hitArea && displayObject.hitArea.contains) {
|
|
448
443
|
return displayObject.hitArea.contains(this._localPoint.x, this._localPoint.y);
|
|
449
444
|
} else if (displayObject instanceof Image) {
|
|
450
|
-
const width = displayObject.texture.frame
|
|
451
|
-
const height = displayObject.texture.frame
|
|
445
|
+
const { width } = displayObject.texture.frame;
|
|
446
|
+
const { height } = displayObject.texture.frame;
|
|
452
447
|
const x1 = -width * displayObject.anchor.x;
|
|
453
448
|
if (this._localPoint.x >= x1 && this._localPoint.x < x1 + width) {
|
|
454
449
|
const y1 = -height * displayObject.anchor.y;
|
|
@@ -457,8 +452,7 @@ export class Input {
|
|
|
457
452
|
}
|
|
458
453
|
}
|
|
459
454
|
} else if (displayObject instanceof Graphics) {
|
|
460
|
-
for (
|
|
461
|
-
const data = displayObject.graphicsData[i];
|
|
455
|
+
for (const data of displayObject.graphicsData) {
|
|
462
456
|
if (data.fill && data.shape && data.shape.contains(this._localPoint.x, this._localPoint.y)) {
|
|
463
457
|
// Only deal with fills..
|
|
464
458
|
return true;
|
|
@@ -466,8 +460,8 @@ export class Input {
|
|
|
466
460
|
}
|
|
467
461
|
}
|
|
468
462
|
// Didn't hit the parent, does it have any children?
|
|
469
|
-
for (
|
|
470
|
-
if (this.hitTest(
|
|
463
|
+
for (const child of displayObject.children) {
|
|
464
|
+
if (this.hitTest(child, pointer, localPoint)) {
|
|
471
465
|
return true;
|
|
472
466
|
}
|
|
473
467
|
}
|
|
@@ -477,7 +471,7 @@ export class Input {
|
|
|
477
471
|
/**
|
|
478
472
|
* TBD.
|
|
479
473
|
*/
|
|
480
|
-
onClickTrampoline() {
|
|
474
|
+
public onClickTrampoline() {
|
|
481
475
|
this.activePointer.processClickTrampolines();
|
|
482
476
|
}
|
|
483
477
|
|
|
@@ -485,14 +479,14 @@ export class Input {
|
|
|
485
479
|
* TBD.
|
|
486
480
|
* @returns {number} TBD.
|
|
487
481
|
*/
|
|
488
|
-
get x() {
|
|
482
|
+
public get x() {
|
|
489
483
|
return this._x;
|
|
490
484
|
}
|
|
491
485
|
|
|
492
486
|
/**
|
|
493
487
|
* TBD.
|
|
494
488
|
*/
|
|
495
|
-
set x(value) {
|
|
489
|
+
public set x(value) {
|
|
496
490
|
this._x = Math.floor(value);
|
|
497
491
|
}
|
|
498
492
|
|
|
@@ -500,14 +494,14 @@ export class Input {
|
|
|
500
494
|
* TBD.
|
|
501
495
|
* @returns {number} TBD.
|
|
502
496
|
*/
|
|
503
|
-
get y() {
|
|
497
|
+
public get y() {
|
|
504
498
|
return this._y;
|
|
505
499
|
}
|
|
506
500
|
|
|
507
501
|
/**
|
|
508
502
|
* TBD.
|
|
509
503
|
*/
|
|
510
|
-
set y(value) {
|
|
504
|
+
public set y(value) {
|
|
511
505
|
this._y = Math.floor(value);
|
|
512
506
|
}
|
|
513
507
|
|
|
@@ -515,7 +509,7 @@ export class Input {
|
|
|
515
509
|
* TBD.
|
|
516
510
|
* @returns {boolean} TBD.
|
|
517
511
|
*/
|
|
518
|
-
get pollLocked() {
|
|
512
|
+
public get pollLocked() {
|
|
519
513
|
return this.pollRate > 0 && this._pollCounter < this.pollRate;
|
|
520
514
|
}
|
|
521
515
|
|
|
@@ -523,7 +517,7 @@ export class Input {
|
|
|
523
517
|
* TBD.
|
|
524
518
|
* @returns {number} TBD.
|
|
525
519
|
*/
|
|
526
|
-
get totalInactivePointers() {
|
|
520
|
+
public get totalInactivePointers() {
|
|
527
521
|
return this.pointers.length - this.countActivePointers();
|
|
528
522
|
}
|
|
529
523
|
|
|
@@ -531,7 +525,7 @@ export class Input {
|
|
|
531
525
|
* TBD.
|
|
532
526
|
* @returns {number} TBD.
|
|
533
527
|
*/
|
|
534
|
-
get totalActivePointers() {
|
|
528
|
+
public get totalActivePointers() {
|
|
535
529
|
return this.countActivePointers();
|
|
536
530
|
}
|
|
537
531
|
|
|
@@ -539,7 +533,7 @@ export class Input {
|
|
|
539
533
|
* TBD.
|
|
540
534
|
* @returns {number} TBD.
|
|
541
535
|
*/
|
|
542
|
-
get worldX() {
|
|
536
|
+
public get worldX() {
|
|
543
537
|
return this.x;
|
|
544
538
|
}
|
|
545
539
|
|
|
@@ -547,7 +541,7 @@ export class Input {
|
|
|
547
541
|
* TBD.
|
|
548
542
|
* @returns {number} TBD.
|
|
549
543
|
*/
|
|
550
|
-
get worldY() {
|
|
544
|
+
public get worldY() {
|
|
551
545
|
return this.y;
|
|
552
546
|
}
|
|
553
547
|
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import type { Image } from '../display/image.js';
|
|
3
|
+
import { InputHandler } from './input_handler.js';
|
|
4
|
+
|
|
5
|
+
const createSprite = (): Image =>
|
|
6
|
+
({
|
|
7
|
+
x: 0,
|
|
8
|
+
y: 0,
|
|
9
|
+
game: {
|
|
10
|
+
time: { time: 0 },
|
|
11
|
+
canvas: { style: { cursor: 'default' } },
|
|
12
|
+
input: { interactiveItems: { add: () => undefined, remove: () => undefined } },
|
|
13
|
+
},
|
|
14
|
+
events: {
|
|
15
|
+
onAddedToGroup: { add: () => undefined },
|
|
16
|
+
onRemovedFromGroup: { add: () => undefined },
|
|
17
|
+
},
|
|
18
|
+
}) as unknown as Image;
|
|
19
|
+
|
|
20
|
+
describe('InputHandler', () => {
|
|
21
|
+
describe('pointerData', () => {
|
|
22
|
+
it('seeds pointer 0 from the constructor', () => {
|
|
23
|
+
const handler = new InputHandler(createSprite());
|
|
24
|
+
expect(handler._pointerData).toHaveLength(1);
|
|
25
|
+
expect(handler.pointerData(0).id).toBe(0);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('returns the same record on repeat access', () => {
|
|
29
|
+
const handler = new InputHandler(createSprite());
|
|
30
|
+
expect(handler.pointerData(0)).toBe(handler.pointerData(0));
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('creates a record on first access of an unseeded pointer', () => {
|
|
34
|
+
const handler = new InputHandler(createSprite());
|
|
35
|
+
const data = handler.pointerData(7);
|
|
36
|
+
expect(data.id).toBe(7);
|
|
37
|
+
expect(data.isDown).toBe(false);
|
|
38
|
+
expect(handler.pointerData(7)).toBe(data);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('hands back a record whose mutations are visible through the array', () => {
|
|
42
|
+
const handler = new InputHandler(createSprite());
|
|
43
|
+
handler.pointerData(3).isOver = true;
|
|
44
|
+
expect(handler._pointerData[3]?.isOver).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('exposes every field a fresh record needs', () => {
|
|
48
|
+
const handler = new InputHandler(createSprite());
|
|
49
|
+
expect(handler.pointerData(1)).toStrictEqual({
|
|
50
|
+
id: 1,
|
|
51
|
+
x: 0,
|
|
52
|
+
y: 0,
|
|
53
|
+
camX: 0,
|
|
54
|
+
camY: 0,
|
|
55
|
+
isDown: false,
|
|
56
|
+
isUp: false,
|
|
57
|
+
isOver: false,
|
|
58
|
+
isOut: false,
|
|
59
|
+
timeOver: 0,
|
|
60
|
+
timeOut: 0,
|
|
61
|
+
timeDown: 0,
|
|
62
|
+
timeUp: 0,
|
|
63
|
+
downDuration: 0,
|
|
64
|
+
isDragged: false,
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
describe('start', () => {
|
|
70
|
+
it('populates the ten pointer slots the input system tracks', () => {
|
|
71
|
+
const handler = new InputHandler(createSprite());
|
|
72
|
+
handler.start();
|
|
73
|
+
expect(handler._pointerData).toHaveLength(10);
|
|
74
|
+
expect(handler._pointerData.map((data) => data.id)).toStrictEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
75
|
+
expect(handler.enabled).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe('reset', () => {
|
|
80
|
+
it('clears pointer state back to a fresh record', () => {
|
|
81
|
+
const handler = new InputHandler(createSprite());
|
|
82
|
+
handler.start();
|
|
83
|
+
handler.pointerData(2).isDown = true;
|
|
84
|
+
handler.pointerData(2).timeDown = 1234;
|
|
85
|
+
handler.reset();
|
|
86
|
+
expect(handler.pointerData(2).isDown).toBe(false);
|
|
87
|
+
expect(handler.pointerData(2).timeDown).toBe(0);
|
|
88
|
+
expect(handler.enabled).toBe(false);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
describe('pointer accessors', () => {
|
|
93
|
+
it('read through to the backing record', () => {
|
|
94
|
+
const handler = new InputHandler(createSprite());
|
|
95
|
+
handler.start();
|
|
96
|
+
const data = handler.pointerData(4);
|
|
97
|
+
data.x = 11;
|
|
98
|
+
data.y = 22;
|
|
99
|
+
data.isDown = true;
|
|
100
|
+
data.timeDown = 99;
|
|
101
|
+
expect(handler.pointerX(4)).toBe(11);
|
|
102
|
+
expect(handler.pointerY(4)).toBe(22);
|
|
103
|
+
expect(handler.pointerDown(4)).toBe(true);
|
|
104
|
+
expect(handler.pointerTimeDown(4)).toBe(99);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('default to pointer 0', () => {
|
|
108
|
+
const handler = new InputHandler(createSprite());
|
|
109
|
+
handler.pointerData(0).x = 5;
|
|
110
|
+
expect(handler.pointerX()).toBe(5);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
});
|