@vpmedia/phaser 1.112.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 +1261 -1314
- 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.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 -5
- package/src/phaser/core/animation.ts +64 -60
- package/src/phaser/core/animation_manager.ts +50 -53
- 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 +22 -26
- 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 +47 -48
- 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 +173 -152
- 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 +52 -51
- 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 +25 -25
- 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
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Point } from '../geom/point.js';
|
|
2
2
|
import { distance } from '../util/math.js';
|
|
3
3
|
import { GROUP } from './const.js';
|
|
4
|
+
import type { Image } from '../display/image.js';
|
|
5
|
+
import type { DisplayObject } from '../display/display_object.js';
|
|
6
|
+
import type { Pointer } from './input_pointer.js';
|
|
7
|
+
import type { Rectangle } from '../geom/rectangle.js';
|
|
4
8
|
|
|
5
9
|
interface PointerData {
|
|
6
10
|
id: number;
|
|
@@ -20,56 +24,74 @@ interface PointerData {
|
|
|
20
24
|
isDragged: boolean;
|
|
21
25
|
}
|
|
22
26
|
|
|
27
|
+
const createPointerData = (id: number): PointerData => ({
|
|
28
|
+
id,
|
|
29
|
+
x: 0,
|
|
30
|
+
y: 0,
|
|
31
|
+
camX: 0,
|
|
32
|
+
camY: 0,
|
|
33
|
+
isDown: false,
|
|
34
|
+
isUp: false,
|
|
35
|
+
isOver: false,
|
|
36
|
+
isOut: false,
|
|
37
|
+
timeOver: 0,
|
|
38
|
+
timeOut: 0,
|
|
39
|
+
timeDown: 0,
|
|
40
|
+
timeUp: 0,
|
|
41
|
+
downDuration: 0,
|
|
42
|
+
isDragged: false,
|
|
43
|
+
});
|
|
44
|
+
|
|
23
45
|
export class InputHandler {
|
|
24
|
-
sprite!: any;
|
|
25
|
-
game!: any;
|
|
26
|
-
enabled!: boolean;
|
|
27
|
-
checked!: boolean;
|
|
28
|
-
priorityID!: number;
|
|
29
|
-
useHandCursor!: boolean;
|
|
30
|
-
_setHandCursor!: boolean;
|
|
31
|
-
isDragged!: boolean;
|
|
32
|
-
allowHorizontalDrag!: boolean;
|
|
33
|
-
allowVerticalDrag!: boolean;
|
|
34
|
-
bringToTop!: boolean;
|
|
35
|
-
snapOffset!: any;
|
|
36
|
-
snapOnDrag!: boolean;
|
|
37
|
-
snapOnRelease!: boolean;
|
|
38
|
-
snapX!: number;
|
|
39
|
-
snapY!: number;
|
|
40
|
-
snapOffsetX!: number;
|
|
41
|
-
snapOffsetY!: number;
|
|
42
|
-
pixelPerfectOver!: boolean;
|
|
43
|
-
pixelPerfectClick!: boolean;
|
|
44
|
-
pixelPerfectAlpha!: number;
|
|
45
|
-
draggable!: boolean;
|
|
46
|
-
boundsRect!: any;
|
|
47
|
-
boundsSprite!: any;
|
|
48
|
-
scaleLayer!: boolean;
|
|
49
|
-
dragOffset!: Point;
|
|
50
|
-
dragFromCenter!: boolean;
|
|
51
|
-
dragStopBlocksInputUp!: boolean;
|
|
52
|
-
dragStartPoint!: Point;
|
|
53
|
-
dragDistanceThreshold!: number;
|
|
54
|
-
dragTimeThreshold!: number;
|
|
55
|
-
downPoint!: Point;
|
|
56
|
-
snapPoint!: Point;
|
|
57
|
-
_dragPoint!: Point;
|
|
58
|
-
_dragPhase!: boolean;
|
|
59
|
-
_pendingDrag!: boolean;
|
|
60
|
-
_dragTimePass!: boolean;
|
|
61
|
-
_dragDistancePass!: boolean;
|
|
62
|
-
_wasEnabled!: boolean;
|
|
63
|
-
_tempPoint!:
|
|
64
|
-
_pointerData!: PointerData[];
|
|
65
|
-
_dx!: any;
|
|
66
|
-
_dy!: any;
|
|
67
|
-
_draggedPointerID!: any;
|
|
68
|
-
/**
|
|
69
|
-
* TBD.
|
|
70
|
-
* @param {
|
|
71
|
-
*/
|
|
72
|
-
constructor(sprite:
|
|
46
|
+
public sprite!: any;
|
|
47
|
+
public game!: any;
|
|
48
|
+
public enabled!: boolean;
|
|
49
|
+
public checked!: boolean;
|
|
50
|
+
public priorityID!: number;
|
|
51
|
+
public useHandCursor!: boolean;
|
|
52
|
+
public _setHandCursor!: boolean;
|
|
53
|
+
public isDragged!: boolean;
|
|
54
|
+
public allowHorizontalDrag!: boolean;
|
|
55
|
+
public allowVerticalDrag!: boolean;
|
|
56
|
+
public bringToTop!: boolean;
|
|
57
|
+
public snapOffset!: any;
|
|
58
|
+
public snapOnDrag!: boolean;
|
|
59
|
+
public snapOnRelease!: boolean;
|
|
60
|
+
public snapX!: number;
|
|
61
|
+
public snapY!: number;
|
|
62
|
+
public snapOffsetX!: number;
|
|
63
|
+
public snapOffsetY!: number;
|
|
64
|
+
public pixelPerfectOver!: boolean;
|
|
65
|
+
public pixelPerfectClick!: boolean;
|
|
66
|
+
public pixelPerfectAlpha!: number;
|
|
67
|
+
public draggable!: boolean;
|
|
68
|
+
public boundsRect!: any;
|
|
69
|
+
public boundsSprite!: any;
|
|
70
|
+
public scaleLayer!: boolean;
|
|
71
|
+
public dragOffset!: Point;
|
|
72
|
+
public dragFromCenter!: boolean;
|
|
73
|
+
public dragStopBlocksInputUp!: boolean;
|
|
74
|
+
public dragStartPoint!: Point;
|
|
75
|
+
public dragDistanceThreshold!: number;
|
|
76
|
+
public dragTimeThreshold!: number;
|
|
77
|
+
public downPoint!: Point;
|
|
78
|
+
public snapPoint!: Point;
|
|
79
|
+
public _dragPoint!: Point;
|
|
80
|
+
public _dragPhase!: boolean;
|
|
81
|
+
public _pendingDrag!: boolean;
|
|
82
|
+
public _dragTimePass!: boolean;
|
|
83
|
+
public _dragDistancePass!: boolean;
|
|
84
|
+
public _wasEnabled!: boolean;
|
|
85
|
+
public _tempPoint!: Point;
|
|
86
|
+
public _pointerData!: PointerData[];
|
|
87
|
+
public _dx!: any;
|
|
88
|
+
public _dy!: any;
|
|
89
|
+
public _draggedPointerID!: any;
|
|
90
|
+
/**
|
|
91
|
+
* TBD.
|
|
92
|
+
* @param {Image} sprite - TBD.
|
|
93
|
+
*/
|
|
94
|
+
public constructor(sprite: Image) {
|
|
73
95
|
this.sprite = sprite;
|
|
74
96
|
this.game = sprite.game;
|
|
75
97
|
this.enabled = false;
|
|
@@ -110,57 +132,24 @@ export class InputHandler {
|
|
|
110
132
|
this._dragDistancePass = false;
|
|
111
133
|
this._wasEnabled = false;
|
|
112
134
|
this._tempPoint = new Point();
|
|
113
|
-
this._pointerData = [];
|
|
114
|
-
this._pointerData.push({
|
|
115
|
-
id: 0,
|
|
116
|
-
x: 0,
|
|
117
|
-
y: 0,
|
|
118
|
-
camX: 0,
|
|
119
|
-
camY: 0,
|
|
120
|
-
isDown: false,
|
|
121
|
-
isUp: false,
|
|
122
|
-
isOver: false,
|
|
123
|
-
isOut: false,
|
|
124
|
-
timeOver: 0,
|
|
125
|
-
timeOut: 0,
|
|
126
|
-
timeDown: 0,
|
|
127
|
-
timeUp: 0,
|
|
128
|
-
downDuration: 0,
|
|
129
|
-
isDragged: false,
|
|
130
|
-
});
|
|
135
|
+
this._pointerData = [createPointerData(0)];
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
/**
|
|
134
139
|
* TBD.
|
|
135
140
|
* @param {number} priority - TBD.
|
|
136
141
|
* @param {boolean} useHandCursor - TBD.
|
|
137
|
-
* @returns {
|
|
142
|
+
* @returns {DisplayObject} TBD.
|
|
138
143
|
*/
|
|
139
|
-
start(priority
|
|
144
|
+
public start(priority = 0, useHandCursor = false) {
|
|
140
145
|
// Turning on
|
|
141
|
-
if (this.enabled
|
|
146
|
+
if (!this.enabled) {
|
|
142
147
|
// Register, etc
|
|
143
148
|
this.game.input.interactiveItems.add(this);
|
|
144
149
|
this.useHandCursor = useHandCursor;
|
|
145
150
|
this.priorityID = priority;
|
|
146
151
|
for (let i = 0; i < 10; i += 1) {
|
|
147
|
-
this._pointerData[i] =
|
|
148
|
-
id: i,
|
|
149
|
-
x: 0,
|
|
150
|
-
y: 0,
|
|
151
|
-
camX: 0,
|
|
152
|
-
camY: 0,
|
|
153
|
-
isDown: false,
|
|
154
|
-
isUp: false,
|
|
155
|
-
isOver: false,
|
|
156
|
-
isOut: false,
|
|
157
|
-
timeOver: 0,
|
|
158
|
-
timeOut: 0,
|
|
159
|
-
timeDown: 0,
|
|
160
|
-
timeUp: 0,
|
|
161
|
-
downDuration: 0,
|
|
162
|
-
isDragged: false,
|
|
163
|
-
};
|
|
152
|
+
this._pointerData[i] = createPointerData(i);
|
|
164
153
|
}
|
|
165
154
|
this.snapOffset = new Point();
|
|
166
155
|
this.enabled = true;
|
|
@@ -174,7 +163,7 @@ export class InputHandler {
|
|
|
174
163
|
/**
|
|
175
164
|
* TBD.
|
|
176
165
|
*/
|
|
177
|
-
addedToGroup() {
|
|
166
|
+
public addedToGroup() {
|
|
178
167
|
if (this._dragPhase) {
|
|
179
168
|
return;
|
|
180
169
|
}
|
|
@@ -186,7 +175,7 @@ export class InputHandler {
|
|
|
186
175
|
/**
|
|
187
176
|
* TBD.
|
|
188
177
|
*/
|
|
189
|
-
removedFromGroup() {
|
|
178
|
+
public removedFromGroup() {
|
|
190
179
|
if (this._dragPhase) {
|
|
191
180
|
return;
|
|
192
181
|
}
|
|
@@ -201,33 +190,32 @@ export class InputHandler {
|
|
|
201
190
|
/**
|
|
202
191
|
* TBD.
|
|
203
192
|
*/
|
|
204
|
-
reset() {
|
|
193
|
+
public reset() {
|
|
205
194
|
this.enabled = false;
|
|
206
195
|
for (let i = 0; i < 10; i += 1) {
|
|
207
|
-
this._pointerData[i] =
|
|
208
|
-
id: i,
|
|
209
|
-
x: 0,
|
|
210
|
-
y: 0,
|
|
211
|
-
camX: 0,
|
|
212
|
-
camY: 0,
|
|
213
|
-
isDown: false,
|
|
214
|
-
isUp: false,
|
|
215
|
-
isOver: false,
|
|
216
|
-
isOut: false,
|
|
217
|
-
timeOver: 0,
|
|
218
|
-
timeOut: 0,
|
|
219
|
-
timeDown: 0,
|
|
220
|
-
timeUp: 0,
|
|
221
|
-
downDuration: 0,
|
|
222
|
-
isDragged: false,
|
|
223
|
-
};
|
|
196
|
+
this._pointerData[i] = createPointerData(i);
|
|
224
197
|
}
|
|
225
198
|
}
|
|
226
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Returns the tracking record for a pointer, creating it on first use.
|
|
202
|
+
* @param {number} pointerId - TBD.
|
|
203
|
+
* @returns {PointerData} TBD.
|
|
204
|
+
*/
|
|
205
|
+
public pointerData(pointerId: number): PointerData {
|
|
206
|
+
const existing = this._pointerData[pointerId];
|
|
207
|
+
if (existing) {
|
|
208
|
+
return existing;
|
|
209
|
+
}
|
|
210
|
+
const created = createPointerData(pointerId);
|
|
211
|
+
this._pointerData[pointerId] = created;
|
|
212
|
+
return created;
|
|
213
|
+
}
|
|
214
|
+
|
|
227
215
|
/**
|
|
228
216
|
* TBD.
|
|
229
217
|
*/
|
|
230
|
-
stop() {
|
|
218
|
+
public stop() {
|
|
231
219
|
if (this.enabled) {
|
|
232
220
|
this.enabled = false;
|
|
233
221
|
this.game.input.interactiveItems.remove(this);
|
|
@@ -237,7 +225,7 @@ export class InputHandler {
|
|
|
237
225
|
/**
|
|
238
226
|
* TBD.
|
|
239
227
|
*/
|
|
240
|
-
destroy() {
|
|
228
|
+
public destroy() {
|
|
241
229
|
if (this.sprite) {
|
|
242
230
|
if (this._setHandCursor) {
|
|
243
231
|
this.game.canvas.style.cursor = 'default';
|
|
@@ -259,7 +247,7 @@ export class InputHandler {
|
|
|
259
247
|
* @param {boolean} includePixelPerfect - TBD.
|
|
260
248
|
* @returns {boolean} TBD.
|
|
261
249
|
*/
|
|
262
|
-
validForInput(highestID: number, highestRenderID: number, includePixelPerfect
|
|
250
|
+
public validForInput(highestID: number, highestRenderID: number, includePixelPerfect = true) {
|
|
263
251
|
if (
|
|
264
252
|
!this.enabled ||
|
|
265
253
|
this.sprite.scale.x === 0 ||
|
|
@@ -283,7 +271,7 @@ export class InputHandler {
|
|
|
283
271
|
* TBD.
|
|
284
272
|
* @returns {boolean} TBD.
|
|
285
273
|
*/
|
|
286
|
-
isPixelPerfect() {
|
|
274
|
+
public isPixelPerfect() {
|
|
287
275
|
return this.pixelPerfectClick || this.pixelPerfectOver;
|
|
288
276
|
}
|
|
289
277
|
|
|
@@ -292,8 +280,8 @@ export class InputHandler {
|
|
|
292
280
|
* @param {number} pointerId - TBD.
|
|
293
281
|
* @returns {number} TBD.
|
|
294
282
|
*/
|
|
295
|
-
pointerX(pointerId
|
|
296
|
-
return this.
|
|
283
|
+
public pointerX(pointerId = 0) {
|
|
284
|
+
return this.pointerData(pointerId).x;
|
|
297
285
|
}
|
|
298
286
|
|
|
299
287
|
/**
|
|
@@ -301,8 +289,8 @@ export class InputHandler {
|
|
|
301
289
|
* @param {number} pointerId - TBD.
|
|
302
290
|
* @returns {number} TBD.
|
|
303
291
|
*/
|
|
304
|
-
pointerY(pointerId
|
|
305
|
-
return this.
|
|
292
|
+
public pointerY(pointerId = 0) {
|
|
293
|
+
return this.pointerData(pointerId).y;
|
|
306
294
|
}
|
|
307
295
|
|
|
308
296
|
/**
|
|
@@ -310,8 +298,8 @@ export class InputHandler {
|
|
|
310
298
|
* @param {number} pointerId - TBD.
|
|
311
299
|
* @returns {boolean} TBD.
|
|
312
300
|
*/
|
|
313
|
-
pointerDown(pointerId
|
|
314
|
-
return this.
|
|
301
|
+
public pointerDown(pointerId = 0) {
|
|
302
|
+
return this.pointerData(pointerId).isDown;
|
|
315
303
|
}
|
|
316
304
|
|
|
317
305
|
/**
|
|
@@ -319,8 +307,8 @@ export class InputHandler {
|
|
|
319
307
|
* @param {number} pointerId - TBD.
|
|
320
308
|
* @returns {boolean} TBD.
|
|
321
309
|
*/
|
|
322
|
-
pointerUp(pointerId
|
|
323
|
-
return this.
|
|
310
|
+
public pointerUp(pointerId = 0) {
|
|
311
|
+
return this.pointerData(pointerId).isUp;
|
|
324
312
|
}
|
|
325
313
|
|
|
326
314
|
/**
|
|
@@ -328,8 +316,8 @@ export class InputHandler {
|
|
|
328
316
|
* @param {number} pointerId - TBD.
|
|
329
317
|
* @returns {number} TBD.
|
|
330
318
|
*/
|
|
331
|
-
pointerTimeDown(pointerId
|
|
332
|
-
return this.
|
|
319
|
+
public pointerTimeDown(pointerId = 0) {
|
|
320
|
+
return this.pointerData(pointerId).timeDown;
|
|
333
321
|
}
|
|
334
322
|
|
|
335
323
|
/**
|
|
@@ -337,8 +325,8 @@ export class InputHandler {
|
|
|
337
325
|
* @param {number} pointerId - TBD.
|
|
338
326
|
* @returns {number} TBD.
|
|
339
327
|
*/
|
|
340
|
-
pointerTimeUp(pointerId
|
|
341
|
-
return this.
|
|
328
|
+
public pointerTimeUp(pointerId = 0) {
|
|
329
|
+
return this.pointerData(pointerId).timeUp;
|
|
342
330
|
}
|
|
343
331
|
|
|
344
332
|
/**
|
|
@@ -346,19 +334,19 @@ export class InputHandler {
|
|
|
346
334
|
* @param {number} pointerId - TBD.
|
|
347
335
|
* @returns {boolean} TBD.
|
|
348
336
|
*/
|
|
349
|
-
pointerOver(pointerId: number | null = null) {
|
|
337
|
+
public pointerOver(pointerId: number | null = null) {
|
|
350
338
|
if (!this.enabled) {
|
|
351
339
|
return false;
|
|
352
340
|
}
|
|
353
341
|
if (pointerId === undefined || pointerId === null) {
|
|
354
342
|
for (let i = 0; i < 10; i += 1) {
|
|
355
|
-
if (this.
|
|
343
|
+
if (this.pointerData(i).isOver) {
|
|
356
344
|
return true;
|
|
357
345
|
}
|
|
358
346
|
}
|
|
359
347
|
return false;
|
|
360
348
|
}
|
|
361
|
-
return this.
|
|
349
|
+
return this.pointerData(pointerId).isOver;
|
|
362
350
|
}
|
|
363
351
|
|
|
364
352
|
/**
|
|
@@ -366,19 +354,19 @@ export class InputHandler {
|
|
|
366
354
|
* @param {number} pointerId - TBD.
|
|
367
355
|
* @returns {boolean} TBD.
|
|
368
356
|
*/
|
|
369
|
-
pointerOut(pointerId: number | null = null) {
|
|
357
|
+
public pointerOut(pointerId: number | null = null) {
|
|
370
358
|
if (!this.enabled) {
|
|
371
359
|
return false;
|
|
372
360
|
}
|
|
373
361
|
if (pointerId === undefined || pointerId === null) {
|
|
374
362
|
for (let i = 0; i < 10; i += 1) {
|
|
375
|
-
if (this.
|
|
363
|
+
if (this.pointerData(i).isOut) {
|
|
376
364
|
return true;
|
|
377
365
|
}
|
|
378
366
|
}
|
|
379
367
|
return false;
|
|
380
368
|
}
|
|
381
|
-
return this.
|
|
369
|
+
return this.pointerData(pointerId).isOut;
|
|
382
370
|
}
|
|
383
371
|
|
|
384
372
|
/**
|
|
@@ -386,8 +374,8 @@ export class InputHandler {
|
|
|
386
374
|
* @param {number} pointerId - TBD.
|
|
387
375
|
* @returns {number} TBD.
|
|
388
376
|
*/
|
|
389
|
-
pointerTimeOver(pointerId
|
|
390
|
-
return this.
|
|
377
|
+
public pointerTimeOver(pointerId = 0) {
|
|
378
|
+
return this.pointerData(pointerId).timeOver;
|
|
391
379
|
}
|
|
392
380
|
|
|
393
381
|
/**
|
|
@@ -395,8 +383,8 @@ export class InputHandler {
|
|
|
395
383
|
* @param {number} pointerId - TBD.
|
|
396
384
|
* @returns {number} TBD.
|
|
397
385
|
*/
|
|
398
|
-
pointerTimeOut(pointerId
|
|
399
|
-
return this.
|
|
386
|
+
public pointerTimeOut(pointerId = 0) {
|
|
387
|
+
return this.pointerData(pointerId).timeOut;
|
|
400
388
|
}
|
|
401
389
|
|
|
402
390
|
/**
|
|
@@ -404,17 +392,17 @@ export class InputHandler {
|
|
|
404
392
|
* @param {number} pointerId - TBD.
|
|
405
393
|
* @returns {boolean} TBD.
|
|
406
394
|
*/
|
|
407
|
-
pointerDragged(pointerId
|
|
408
|
-
return this.
|
|
395
|
+
public pointerDragged(pointerId = 0) {
|
|
396
|
+
return this.pointerData(pointerId).isDragged;
|
|
409
397
|
}
|
|
410
398
|
|
|
411
399
|
/**
|
|
412
400
|
* TBD.
|
|
413
|
-
* @param {
|
|
401
|
+
* @param {Pointer} pointer - TBD.
|
|
414
402
|
* @param {boolean} fastTest - TBD.
|
|
415
403
|
* @returns {boolean} TBD.
|
|
416
404
|
*/
|
|
417
|
-
checkPointerDown(pointer:
|
|
405
|
+
public checkPointerDown(pointer: Pointer, fastTest = false) {
|
|
418
406
|
if (
|
|
419
407
|
!pointer.isDown ||
|
|
420
408
|
!this.enabled ||
|
|
@@ -439,11 +427,11 @@ export class InputHandler {
|
|
|
439
427
|
|
|
440
428
|
/**
|
|
441
429
|
* TBD.
|
|
442
|
-
* @param {
|
|
430
|
+
* @param {Pointer} pointer - TBD.
|
|
443
431
|
* @param {boolean} fastTest - TBD.
|
|
444
432
|
* @returns {boolean} TBD.
|
|
445
433
|
*/
|
|
446
|
-
checkPointerOver(pointer:
|
|
434
|
+
public checkPointerOver(pointer: Pointer, fastTest = false) {
|
|
447
435
|
if (
|
|
448
436
|
!this.enabled ||
|
|
449
437
|
!this.sprite ||
|
|
@@ -469,10 +457,10 @@ export class InputHandler {
|
|
|
469
457
|
* TBD.
|
|
470
458
|
* @param {number} x - TBD.
|
|
471
459
|
* @param {number} y - TBD.
|
|
472
|
-
* @param {
|
|
460
|
+
* @param {Pointer} pointer - TBD.
|
|
473
461
|
* @returns {boolean} TBD.
|
|
474
462
|
*/
|
|
475
|
-
checkPixel(x: number | null, y: number | null, pointer?: any) {
|
|
463
|
+
public checkPixel(x: number | null, y: number | null, pointer?: any) {
|
|
476
464
|
// Grab a pixel from our image into the hitCanvas and then test it
|
|
477
465
|
if (this.sprite.texture.baseTexture.source) {
|
|
478
466
|
if (x === null || y === null) {
|
|
@@ -518,10 +506,10 @@ export class InputHandler {
|
|
|
518
506
|
|
|
519
507
|
/**
|
|
520
508
|
* TBD.
|
|
521
|
-
* @param {
|
|
509
|
+
* @param {Pointer} pointer - TBD.
|
|
522
510
|
* @returns {boolean} TBD.
|
|
523
511
|
*/
|
|
524
|
-
update(pointer:
|
|
512
|
+
public update(pointer: Pointer) {
|
|
525
513
|
if (this.sprite === null || this.sprite.parent === undefined) {
|
|
526
514
|
// Abort. We've been destroyed.
|
|
527
515
|
return false;
|
|
@@ -541,10 +529,10 @@ export class InputHandler {
|
|
|
541
529
|
return true;
|
|
542
530
|
} else if (this.draggable && this._draggedPointerID === pointer.id) {
|
|
543
531
|
return this.updateDrag(pointer, false);
|
|
544
|
-
} else if (this.
|
|
532
|
+
} else if (this.pointerData(pointer.id).isOver) {
|
|
545
533
|
if (this.checkPointerOver(pointer)) {
|
|
546
|
-
this.
|
|
547
|
-
this.
|
|
534
|
+
this.pointerData(pointer.id).x = pointer.x - this.sprite.x;
|
|
535
|
+
this.pointerData(pointer.id).y = pointer.y - this.sprite.y;
|
|
548
536
|
return true;
|
|
549
537
|
}
|
|
550
538
|
this._pointerOutHandler(pointer);
|
|
@@ -555,23 +543,23 @@ export class InputHandler {
|
|
|
555
543
|
|
|
556
544
|
/**
|
|
557
545
|
* TBD.
|
|
558
|
-
* @param {
|
|
546
|
+
* @param {Pointer} pointer - TBD.
|
|
559
547
|
* @param {boolean} silent - TBD.
|
|
560
548
|
*/
|
|
561
|
-
_pointerOverHandler(pointer:
|
|
549
|
+
public _pointerOverHandler(pointer: Pointer, silent: boolean) {
|
|
562
550
|
if (this.sprite === null) {
|
|
563
551
|
// Abort. We've been destroyed.
|
|
564
552
|
return;
|
|
565
553
|
}
|
|
566
|
-
const data = this.
|
|
567
|
-
if (data.isOver
|
|
568
|
-
const sendEvent = data.isOver
|
|
554
|
+
const data = this.pointerData(pointer.id);
|
|
555
|
+
if (!data.isOver || pointer.dirty) {
|
|
556
|
+
const sendEvent = !data.isOver;
|
|
569
557
|
data.isOver = true;
|
|
570
558
|
data.isOut = false;
|
|
571
559
|
data.timeOver = this.game.time.time;
|
|
572
560
|
data.x = pointer.x - this.sprite.x;
|
|
573
561
|
data.y = pointer.y - this.sprite.y;
|
|
574
|
-
if (this.useHandCursor && data.isDragged
|
|
562
|
+
if (this.useHandCursor && !data.isDragged) {
|
|
575
563
|
this.game.canvas.style.cursor = 'pointer';
|
|
576
564
|
this._setHandCursor = true;
|
|
577
565
|
}
|
|
@@ -586,19 +574,19 @@ export class InputHandler {
|
|
|
586
574
|
|
|
587
575
|
/**
|
|
588
576
|
* TBD.
|
|
589
|
-
* @param {
|
|
577
|
+
* @param {Pointer} pointer - TBD.
|
|
590
578
|
* @param {boolean} silent - TBD.
|
|
591
579
|
*/
|
|
592
|
-
_pointerOutHandler(pointer:
|
|
580
|
+
public _pointerOutHandler(pointer: Pointer, silent = false) {
|
|
593
581
|
if (this.sprite === null) {
|
|
594
582
|
// Abort. We've been destroyed.
|
|
595
583
|
return;
|
|
596
584
|
}
|
|
597
|
-
const data = this.
|
|
585
|
+
const data = this.pointerData(pointer.id);
|
|
598
586
|
data.isOver = false;
|
|
599
587
|
data.isOut = true;
|
|
600
588
|
data.timeOut = this.game.time.time;
|
|
601
|
-
if (this.useHandCursor && data.isDragged
|
|
589
|
+
if (this.useHandCursor && !data.isDragged) {
|
|
602
590
|
this.game.canvas.style.cursor = 'default';
|
|
603
591
|
this._setHandCursor = false;
|
|
604
592
|
}
|
|
@@ -612,14 +600,14 @@ export class InputHandler {
|
|
|
612
600
|
|
|
613
601
|
/**
|
|
614
602
|
* TBD.
|
|
615
|
-
* @param {
|
|
603
|
+
* @param {Pointer} pointer - TBD.
|
|
616
604
|
*/
|
|
617
|
-
_touchedHandler(pointer:
|
|
605
|
+
public _touchedHandler(pointer: Pointer) {
|
|
618
606
|
if (this.sprite === null) {
|
|
619
607
|
// Abort. We've been destroyed.
|
|
620
608
|
return;
|
|
621
609
|
}
|
|
622
|
-
const data = this.
|
|
610
|
+
const data = this.pointerData(pointer.id);
|
|
623
611
|
if (!data.isDown && data.isOver) {
|
|
624
612
|
if (this.pixelPerfectClick && !this.checkPixel(null, null, pointer)) {
|
|
625
613
|
return;
|
|
@@ -642,7 +630,7 @@ export class InputHandler {
|
|
|
642
630
|
}
|
|
643
631
|
}
|
|
644
632
|
// Start drag
|
|
645
|
-
if (this.draggable && this.isDragged
|
|
633
|
+
if (this.draggable && !this.isDragged) {
|
|
646
634
|
if (this.dragTimeThreshold === 0 && this.dragDistanceThreshold === 0) {
|
|
647
635
|
this.startDrag(pointer);
|
|
648
636
|
} else {
|
|
@@ -664,9 +652,9 @@ export class InputHandler {
|
|
|
664
652
|
|
|
665
653
|
/**
|
|
666
654
|
* TBD.
|
|
667
|
-
* @param {
|
|
655
|
+
* @param {Pointer} pointer - TBD.
|
|
668
656
|
*/
|
|
669
|
-
dragTimeElapsed(pointer:
|
|
657
|
+
public dragTimeElapsed(pointer: Pointer) {
|
|
670
658
|
this._dragTimePass = true;
|
|
671
659
|
if (this._pendingDrag && this.sprite) {
|
|
672
660
|
if (this._dragDistancePass) {
|
|
@@ -677,14 +665,14 @@ export class InputHandler {
|
|
|
677
665
|
|
|
678
666
|
/**
|
|
679
667
|
* TBD.
|
|
680
|
-
* @param {
|
|
668
|
+
* @param {Pointer} pointer - TBD.
|
|
681
669
|
*/
|
|
682
|
-
_releasedHandler(pointer:
|
|
670
|
+
public _releasedHandler(pointer: Pointer) {
|
|
683
671
|
if (this.sprite === null) {
|
|
684
672
|
// Abort. We've been destroyed.
|
|
685
673
|
return;
|
|
686
674
|
}
|
|
687
|
-
const data = this.
|
|
675
|
+
const data = this.pointerData(pointer.id);
|
|
688
676
|
// If was previously touched by this Pointer, check if still is AND still over this item
|
|
689
677
|
if (data.isDown && pointer.isUp) {
|
|
690
678
|
data.isDown = false;
|
|
@@ -725,11 +713,11 @@ export class InputHandler {
|
|
|
725
713
|
|
|
726
714
|
/**
|
|
727
715
|
* TBD.
|
|
728
|
-
* @param {
|
|
716
|
+
* @param {Pointer} pointer - TBD.
|
|
729
717
|
* @param {boolean} fromStart - TBD.
|
|
730
718
|
* @returns {boolean} TBD.
|
|
731
719
|
*/
|
|
732
|
-
updateDrag(pointer:
|
|
720
|
+
public updateDrag(pointer: Pointer, fromStart = false) {
|
|
733
721
|
if (pointer.isUp) {
|
|
734
722
|
this.stopDrag(pointer);
|
|
735
723
|
return false;
|
|
@@ -769,8 +757,8 @@ export class InputHandler {
|
|
|
769
757
|
* @param {number} delay - TBD.
|
|
770
758
|
* @returns {boolean} TBD.
|
|
771
759
|
*/
|
|
772
|
-
justOver(pointerId
|
|
773
|
-
return this.
|
|
760
|
+
public justOver(pointerId = 0, delay = 500) {
|
|
761
|
+
return this.pointerData(pointerId).isOver && this.overDuration(pointerId) < delay;
|
|
774
762
|
}
|
|
775
763
|
|
|
776
764
|
/**
|
|
@@ -779,8 +767,8 @@ export class InputHandler {
|
|
|
779
767
|
* @param {number} delay - TBD.
|
|
780
768
|
* @returns {boolean} TBD.
|
|
781
769
|
*/
|
|
782
|
-
justOut(pointerId
|
|
783
|
-
return this.
|
|
770
|
+
public justOut(pointerId = 0, delay = 500) {
|
|
771
|
+
return this.pointerData(pointerId).isOut && this.game.time.time - this.pointerData(pointerId).timeOut < delay;
|
|
784
772
|
}
|
|
785
773
|
|
|
786
774
|
/**
|
|
@@ -789,8 +777,8 @@ export class InputHandler {
|
|
|
789
777
|
* @param {number} delay - TBD.
|
|
790
778
|
* @returns {boolean} TBD.
|
|
791
779
|
*/
|
|
792
|
-
justPressed(pointerId
|
|
793
|
-
return this.
|
|
780
|
+
public justPressed(pointerId = 0, delay = 500) {
|
|
781
|
+
return this.pointerData(pointerId).isDown && this.downDuration(pointerId) < delay;
|
|
794
782
|
}
|
|
795
783
|
|
|
796
784
|
/**
|
|
@@ -799,8 +787,8 @@ export class InputHandler {
|
|
|
799
787
|
* @param {number} delay - TBD.
|
|
800
788
|
* @returns {boolean} TBD.
|
|
801
789
|
*/
|
|
802
|
-
justReleased(pointerId
|
|
803
|
-
return this.
|
|
790
|
+
public justReleased(pointerId = 0, delay = 500) {
|
|
791
|
+
return this.pointerData(pointerId).isUp && this.game.time.time - this.pointerData(pointerId).timeUp < delay;
|
|
804
792
|
}
|
|
805
793
|
|
|
806
794
|
/**
|
|
@@ -808,9 +796,9 @@ export class InputHandler {
|
|
|
808
796
|
* @param {number} pointerId - TBD.
|
|
809
797
|
* @returns {number} TBD.
|
|
810
798
|
*/
|
|
811
|
-
overDuration(pointerId
|
|
812
|
-
if (this.
|
|
813
|
-
return this.game.time.time - this.
|
|
799
|
+
public overDuration(pointerId = 0) {
|
|
800
|
+
if (this.pointerData(pointerId).isOver) {
|
|
801
|
+
return this.game.time.time - this.pointerData(pointerId).timeOver;
|
|
814
802
|
}
|
|
815
803
|
return -1;
|
|
816
804
|
}
|
|
@@ -820,9 +808,9 @@ export class InputHandler {
|
|
|
820
808
|
* @param {number} pointerId - TBD.
|
|
821
809
|
* @returns {number} TBD.
|
|
822
810
|
*/
|
|
823
|
-
downDuration(pointerId
|
|
824
|
-
if (this.
|
|
825
|
-
return this.game.time.time - this.
|
|
811
|
+
public downDuration(pointerId = 0) {
|
|
812
|
+
if (this.pointerData(pointerId).isDown) {
|
|
813
|
+
return this.game.time.time - this.pointerData(pointerId).timeDown;
|
|
826
814
|
}
|
|
827
815
|
return -1;
|
|
828
816
|
}
|
|
@@ -833,16 +821,16 @@ export class InputHandler {
|
|
|
833
821
|
* @param {boolean} bringToTop - TBD.
|
|
834
822
|
* @param {boolean} pixelPerfect - TBD.
|
|
835
823
|
* @param {number} alphaThreshold - TBD.
|
|
836
|
-
* @param {
|
|
837
|
-
* @param {
|
|
838
|
-
*/
|
|
839
|
-
enableDrag(
|
|
840
|
-
lockCenter
|
|
841
|
-
bringToTop
|
|
842
|
-
pixelPerfect
|
|
843
|
-
alphaThreshold
|
|
844
|
-
boundsRect:
|
|
845
|
-
boundsSprite:
|
|
824
|
+
* @param {Rectangle | null | undefined} boundsRect - TBD.
|
|
825
|
+
* @param {DisplayObject | null | undefined} boundsSprite - TBD.
|
|
826
|
+
*/
|
|
827
|
+
public enableDrag(
|
|
828
|
+
lockCenter = false,
|
|
829
|
+
bringToTop = false,
|
|
830
|
+
pixelPerfect = false,
|
|
831
|
+
alphaThreshold = 255,
|
|
832
|
+
boundsRect: Rectangle | null | undefined = null,
|
|
833
|
+
boundsSprite: DisplayObject | null | undefined = null
|
|
846
834
|
) {
|
|
847
835
|
this._dragPoint = new Point();
|
|
848
836
|
this.draggable = true;
|
|
@@ -862,10 +850,10 @@ export class InputHandler {
|
|
|
862
850
|
/**
|
|
863
851
|
* TBD.
|
|
864
852
|
*/
|
|
865
|
-
disableDrag() {
|
|
853
|
+
public disableDrag() {
|
|
866
854
|
if (this._pointerData) {
|
|
867
855
|
for (let i = 0; i < 10; i += 1) {
|
|
868
|
-
this.
|
|
856
|
+
this.pointerData(i).isDragged = false;
|
|
869
857
|
}
|
|
870
858
|
}
|
|
871
859
|
this.draggable = false;
|
|
@@ -876,16 +864,16 @@ export class InputHandler {
|
|
|
876
864
|
|
|
877
865
|
/**
|
|
878
866
|
* TBD.
|
|
879
|
-
* @param {
|
|
867
|
+
* @param {Pointer} pointer - TBD.
|
|
880
868
|
*/
|
|
881
|
-
startDrag(pointer:
|
|
882
|
-
const x = this.sprite
|
|
883
|
-
const y = this.sprite
|
|
869
|
+
public startDrag(pointer: Pointer) {
|
|
870
|
+
const { x } = this.sprite;
|
|
871
|
+
const { y } = this.sprite;
|
|
884
872
|
this.isDragged = true;
|
|
885
873
|
this._draggedPointerID = pointer.id;
|
|
886
|
-
this.
|
|
887
|
-
this.
|
|
888
|
-
this.
|
|
874
|
+
this.pointerData(pointer.id).camX = 0;
|
|
875
|
+
this.pointerData(pointer.id).camY = 0;
|
|
876
|
+
this.pointerData(pointer.id).isDragged = true;
|
|
889
877
|
if (this.dragFromCenter) {
|
|
890
878
|
const bounds = this.sprite.getBounds();
|
|
891
879
|
this.sprite.x = this.globalToLocalX(pointer.x) + (this.sprite.x - bounds.centerX);
|
|
@@ -910,7 +898,7 @@ export class InputHandler {
|
|
|
910
898
|
* @param {number} x - TBD.
|
|
911
899
|
* @returns {number} TBD.
|
|
912
900
|
*/
|
|
913
|
-
globalToLocalX(x: number) {
|
|
901
|
+
public globalToLocalX(x: number) {
|
|
914
902
|
if (this.scaleLayer) {
|
|
915
903
|
x -= this.game.scale.grid.boundsFluid.x;
|
|
916
904
|
x *= this.game.scale.grid.scaleFluidInversed.x;
|
|
@@ -923,7 +911,7 @@ export class InputHandler {
|
|
|
923
911
|
* @param {number} y - TBD.
|
|
924
912
|
* @returns {number} TBD.
|
|
925
913
|
*/
|
|
926
|
-
globalToLocalY(y: number) {
|
|
914
|
+
public globalToLocalY(y: number) {
|
|
927
915
|
if (this.scaleLayer) {
|
|
928
916
|
y -= this.game.scale.grid.boundsFluid.y;
|
|
929
917
|
y *= this.game.scale.grid.scaleFluidInversed.y;
|
|
@@ -933,12 +921,12 @@ export class InputHandler {
|
|
|
933
921
|
|
|
934
922
|
/**
|
|
935
923
|
* TBD.
|
|
936
|
-
* @param {
|
|
924
|
+
* @param {Pointer} pointer - TBD.
|
|
937
925
|
*/
|
|
938
|
-
stopDrag(pointer:
|
|
926
|
+
public stopDrag(pointer: Pointer) {
|
|
939
927
|
this.isDragged = false;
|
|
940
928
|
this._draggedPointerID = -1;
|
|
941
|
-
this.
|
|
929
|
+
this.pointerData(pointer.id).isDragged = false;
|
|
942
930
|
this._dragPhase = false;
|
|
943
931
|
this._pendingDrag = false;
|
|
944
932
|
if (this.snapOnRelease) {
|
|
@@ -950,7 +938,7 @@ export class InputHandler {
|
|
|
950
938
|
(this.snapOffsetY % this.snapY);
|
|
951
939
|
}
|
|
952
940
|
this.sprite.events.onDragStop$dispatch(this.sprite, pointer);
|
|
953
|
-
if (this.checkPointerOver(pointer)
|
|
941
|
+
if (!this.checkPointerOver(pointer)) {
|
|
954
942
|
this._pointerOutHandler(pointer);
|
|
955
943
|
}
|
|
956
944
|
}
|
|
@@ -960,7 +948,7 @@ export class InputHandler {
|
|
|
960
948
|
* @param {boolean} allowHorizontal - TBD.
|
|
961
949
|
* @param {boolean} allowVertical - TBD.
|
|
962
950
|
*/
|
|
963
|
-
setDragLock(allowHorizontal
|
|
951
|
+
public setDragLock(allowHorizontal = true, allowVertical = true) {
|
|
964
952
|
this.allowHorizontalDrag = allowHorizontal;
|
|
965
953
|
this.allowVerticalDrag = allowVertical;
|
|
966
954
|
}
|
|
@@ -974,14 +962,7 @@ export class InputHandler {
|
|
|
974
962
|
* @param {number} snapOffsetX - TBD.
|
|
975
963
|
* @param {number} snapOffsetY - TBD.
|
|
976
964
|
*/
|
|
977
|
-
enableSnap(
|
|
978
|
-
snapX: number,
|
|
979
|
-
snapY: number,
|
|
980
|
-
onDrag: boolean = true,
|
|
981
|
-
onRelease: boolean = false,
|
|
982
|
-
snapOffsetX: number = 0,
|
|
983
|
-
snapOffsetY: number = 0
|
|
984
|
-
) {
|
|
965
|
+
public enableSnap(snapX: number, snapY: number, onDrag = true, onRelease = false, snapOffsetX = 0, snapOffsetY = 0) {
|
|
985
966
|
this.snapX = snapX;
|
|
986
967
|
this.snapY = snapY;
|
|
987
968
|
this.snapOffsetX = snapOffsetX;
|
|
@@ -993,7 +974,7 @@ export class InputHandler {
|
|
|
993
974
|
/**
|
|
994
975
|
* TBD.
|
|
995
976
|
*/
|
|
996
|
-
disableSnap() {
|
|
977
|
+
public disableSnap() {
|
|
997
978
|
this.snapOnDrag = false;
|
|
998
979
|
this.snapOnRelease = false;
|
|
999
980
|
}
|
|
@@ -1001,7 +982,7 @@ export class InputHandler {
|
|
|
1001
982
|
/**
|
|
1002
983
|
* TBD.
|
|
1003
984
|
*/
|
|
1004
|
-
checkBoundsRect() {
|
|
985
|
+
public checkBoundsRect() {
|
|
1005
986
|
if (this.sprite.left < this.boundsRect.left) {
|
|
1006
987
|
this.sprite.x = this.boundsRect.x + this.sprite.offsetX;
|
|
1007
988
|
} else if (this.sprite.right > this.boundsRect.right) {
|
|
@@ -1017,7 +998,7 @@ export class InputHandler {
|
|
|
1017
998
|
/**
|
|
1018
999
|
* TBD.
|
|
1019
1000
|
*/
|
|
1020
|
-
checkBoundsSprite() {
|
|
1001
|
+
public checkBoundsSprite() {
|
|
1021
1002
|
if (this.sprite.left < this.boundsSprite.left) {
|
|
1022
1003
|
this.sprite.x = this.boundsSprite.left + this.sprite.offsetX;
|
|
1023
1004
|
} else if (this.sprite.right > this.boundsSprite.right) {
|