@vpmedia/phaser 1.112.0 → 1.114.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 +12 -10
- 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.test.ts +110 -0
- 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
|
@@ -2,13 +2,13 @@ import { Frame } from './frame.js';
|
|
|
2
2
|
import { FrameData } from './frame_data.js';
|
|
3
3
|
|
|
4
4
|
export const cloneFrame = (frame: Frame, output: Frame | null = null): Frame => {
|
|
5
|
-
const result = output
|
|
5
|
+
const result = output ?? new Frame(frame.index, frame.x, frame.y, frame.width, frame.height);
|
|
6
6
|
result.initialize(frame.index, frame.x, frame.y, frame.width, frame.height);
|
|
7
7
|
return result;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export const cloneFrameData = (frameData: FrameData, output: FrameData | null = null): FrameData => {
|
|
11
|
-
const result = output
|
|
11
|
+
const result = output ?? new FrameData();
|
|
12
12
|
for (let i = 0; i < frameData.total; i += 1) {
|
|
13
13
|
result.addFrame(frameData.getFrame(i).clone());
|
|
14
14
|
}
|
package/src/phaser/core/game.ts
CHANGED
|
@@ -18,43 +18,44 @@ import { Stage } from './stage.js';
|
|
|
18
18
|
import { Time } from './time.js';
|
|
19
19
|
import { TweenManager } from './tween_manager.js';
|
|
20
20
|
import { World } from './world.js';
|
|
21
|
+
import { getRegistry } from './registry.js';
|
|
21
22
|
|
|
22
23
|
export class Game {
|
|
23
|
-
config!: any;
|
|
24
|
-
id!: number;
|
|
25
|
-
parent!: string | HTMLElement;
|
|
26
|
-
width!: number;
|
|
27
|
-
height!: number;
|
|
28
|
-
renderer!: CanvasRenderer | WebGLRenderer;
|
|
29
|
-
state!: SceneManager;
|
|
30
|
-
isBooted!: boolean;
|
|
31
|
-
paused!: boolean;
|
|
32
|
-
raf!: RequestAnimationFrame;
|
|
33
|
-
add!: GameObjectFactory;
|
|
34
|
-
cache!: Cache;
|
|
35
|
-
input!: Input;
|
|
36
|
-
load!: Loader;
|
|
37
|
-
scale!: ScaleManager;
|
|
38
|
-
sound!: SoundManager;
|
|
39
|
-
stage!: Stage;
|
|
40
|
-
time!: Time;
|
|
41
|
-
tweens!: TweenManager;
|
|
42
|
-
world!: World;
|
|
43
|
-
device!: Device;
|
|
44
|
-
logger!: Logger;
|
|
45
|
-
canvas!: HTMLCanvasElement;
|
|
46
|
-
context!:
|
|
24
|
+
public config!: any;
|
|
25
|
+
public id!: number;
|
|
26
|
+
public parent!: string | HTMLElement;
|
|
27
|
+
public width!: number;
|
|
28
|
+
public height!: number;
|
|
29
|
+
public renderer!: CanvasRenderer | WebGLRenderer;
|
|
30
|
+
public state!: SceneManager;
|
|
31
|
+
public isBooted!: boolean;
|
|
32
|
+
public paused!: boolean;
|
|
33
|
+
public raf!: RequestAnimationFrame;
|
|
34
|
+
public add!: GameObjectFactory;
|
|
35
|
+
public cache!: Cache;
|
|
36
|
+
public input!: Input;
|
|
37
|
+
public load!: Loader;
|
|
38
|
+
public scale!: ScaleManager;
|
|
39
|
+
public sound!: SoundManager;
|
|
40
|
+
public stage!: Stage;
|
|
41
|
+
public time!: Time;
|
|
42
|
+
public tweens!: TweenManager;
|
|
43
|
+
public world!: World;
|
|
44
|
+
public device!: Device;
|
|
45
|
+
public logger!: Logger;
|
|
46
|
+
public canvas!: HTMLCanvasElement;
|
|
47
|
+
public context!:
|
|
47
48
|
| CanvasRenderingContext2D
|
|
48
49
|
| ImageBitmapRenderingContext
|
|
49
50
|
| WebGLRenderingContext
|
|
50
51
|
| WebGL2RenderingContext
|
|
51
52
|
| null;
|
|
52
|
-
onPause!: Signal;
|
|
53
|
-
onResume!: Signal;
|
|
54
|
-
onBoot!: Signal;
|
|
55
|
-
isPaused!: boolean;
|
|
56
|
-
contextLostBinded!: any;
|
|
57
|
-
contextRestoredBinded!: any;
|
|
53
|
+
public onPause!: Signal;
|
|
54
|
+
public onResume!: Signal;
|
|
55
|
+
public onBoot!: Signal;
|
|
56
|
+
public isPaused!: boolean;
|
|
57
|
+
public contextLostBinded!: any;
|
|
58
|
+
public contextRestoredBinded!: any;
|
|
58
59
|
/**
|
|
59
60
|
* Creates a new Game instance.
|
|
60
61
|
* @param {object} gameConfig - The configuration object for the game.
|
|
@@ -75,10 +76,8 @@ export class Game {
|
|
|
75
76
|
* @param {string|HTMLElement} gameConfig.parent - The parent element to append the canvas to.
|
|
76
77
|
* @param {object} gameConfig.state - The initial state object or class.
|
|
77
78
|
*/
|
|
78
|
-
constructor(gameConfig: any = {}) {
|
|
79
|
-
|
|
80
|
-
window.PhaserRegistry = {};
|
|
81
|
-
}
|
|
79
|
+
public constructor(gameConfig: any = {}) {
|
|
80
|
+
getRegistry();
|
|
82
81
|
this.config = {};
|
|
83
82
|
this.id = 0;
|
|
84
83
|
this.parent = '';
|
|
@@ -112,7 +111,7 @@ export class Game {
|
|
|
112
111
|
/**
|
|
113
112
|
* Boots the game and initializes all systems.
|
|
114
113
|
*/
|
|
115
|
-
boot() {
|
|
114
|
+
public boot() {
|
|
116
115
|
if (this.isBooted) {
|
|
117
116
|
return;
|
|
118
117
|
}
|
|
@@ -148,7 +147,7 @@ export class Game {
|
|
|
148
147
|
/**
|
|
149
148
|
* Creates the renderer canvas element.
|
|
150
149
|
*/
|
|
151
|
-
createRendererCanvas() {
|
|
150
|
+
public createRendererCanvas() {
|
|
152
151
|
this.logger.info('createRendererCanvas');
|
|
153
152
|
if (this.canvas) {
|
|
154
153
|
removeFromDOM(this.canvas);
|
|
@@ -161,7 +160,7 @@ export class Game {
|
|
|
161
160
|
if (this.config.canvasStyle) {
|
|
162
161
|
const canvasStyle = this.config.canvasStyle as Record<string, string>;
|
|
163
162
|
for (const property of Object.keys(canvasStyle)) {
|
|
164
|
-
this.canvas.style.setProperty(property, canvasStyle[property]);
|
|
163
|
+
this.canvas.style.setProperty(property, canvasStyle[property] ?? null);
|
|
165
164
|
}
|
|
166
165
|
} else {
|
|
167
166
|
this.canvas.style.setProperty('-webkit-full-screen', 'width: 100%; height: 100%');
|
|
@@ -171,7 +170,7 @@ export class Game {
|
|
|
171
170
|
/**
|
|
172
171
|
* Initializes the renderer and sets up the rendering context.
|
|
173
172
|
*/
|
|
174
|
-
initRenderer() {
|
|
173
|
+
public initRenderer() {
|
|
175
174
|
let isWebGlReady = false;
|
|
176
175
|
if (this.config.renderType === RENDER_AUTO || this.config.renderType === RENDER_WEBGL) {
|
|
177
176
|
try {
|
|
@@ -186,11 +185,11 @@ export class Game {
|
|
|
186
185
|
isWebGlReady = true;
|
|
187
186
|
} catch (error) {
|
|
188
187
|
isWebGlReady = false;
|
|
189
|
-
if (
|
|
190
|
-
this.logger.warn('WebGL program info', { log:
|
|
188
|
+
if (globalThis.PhaserRegistry?.GL_PROGRAM_INFO_LOG) {
|
|
189
|
+
this.logger.warn('WebGL program info', { log: globalThis.PhaserRegistry.GL_PROGRAM_INFO_LOG });
|
|
191
190
|
}
|
|
192
|
-
if (
|
|
193
|
-
this.logger.warn('WebGL shader info', { log:
|
|
191
|
+
if (globalThis.PhaserRegistry?.GL_SHADER_INFO_LOG) {
|
|
192
|
+
this.logger.warn('WebGL shader info', { log: globalThis.PhaserRegistry.GL_SHADER_INFO_LOG });
|
|
194
193
|
}
|
|
195
194
|
const typedError = error instanceof Error ? error : new Error(String(error));
|
|
196
195
|
this.logger.fatal('Game', { error: typedError });
|
|
@@ -222,7 +221,7 @@ export class Game {
|
|
|
222
221
|
* @param {string} key - The configuration key to parse.
|
|
223
222
|
* @param {*} defaultValue - The default value if the key is not found in config.
|
|
224
223
|
*/
|
|
225
|
-
parseConfigElement(config: any, key: string, defaultValue?: any) {
|
|
224
|
+
public parseConfigElement(config: any, key: string, defaultValue?: any) {
|
|
226
225
|
if (config[key] !== undefined) {
|
|
227
226
|
this.config[key] = config[key];
|
|
228
227
|
} else {
|
|
@@ -234,7 +233,7 @@ export class Game {
|
|
|
234
233
|
* Parses the configuration object and sets up game properties.
|
|
235
234
|
* @param {object} config - The configuration object to parse.
|
|
236
235
|
*/
|
|
237
|
-
parseConfig(config: any) {
|
|
236
|
+
public parseConfig(config: any) {
|
|
238
237
|
this.logger = config.logger ?? getLogger(['phaser']);
|
|
239
238
|
this.logger.info('parseConfig');
|
|
240
239
|
this.parseConfigElement(config, 'width', 800);
|
|
@@ -265,7 +264,7 @@ export class Game {
|
|
|
265
264
|
* Called when the WebGL context is lost.
|
|
266
265
|
* @param {WebGLContextEvent | Event} event - The WebGL context loss event.
|
|
267
266
|
*/
|
|
268
|
-
contextLost(event: any) {
|
|
267
|
+
public contextLost(event: any) {
|
|
269
268
|
this.logger.info('contextLost', event);
|
|
270
269
|
event.preventDefault();
|
|
271
270
|
if (this.renderer) {
|
|
@@ -277,7 +276,7 @@ export class Game {
|
|
|
277
276
|
* Called when the WebGL context is restored.
|
|
278
277
|
* @param {WebGLContextEvent | Event} event - The WebGL context restore event.
|
|
279
278
|
*/
|
|
280
|
-
contextRestored(event: any) {
|
|
279
|
+
public contextRestored(event: any) {
|
|
281
280
|
this.logger.info('contextRestored', event);
|
|
282
281
|
if (this.renderer) {
|
|
283
282
|
this.renderer.initContext(this);
|
|
@@ -290,7 +289,7 @@ export class Game {
|
|
|
290
289
|
* Updates the game state.
|
|
291
290
|
* @param {number} time - The current timestamp.
|
|
292
291
|
*/
|
|
293
|
-
update(time: number) {
|
|
292
|
+
public update(time: number) {
|
|
294
293
|
this.time.update(time);
|
|
295
294
|
if (!this.isPaused) {
|
|
296
295
|
this.scale.preUpdate();
|
|
@@ -313,7 +312,7 @@ export class Game {
|
|
|
313
312
|
/**
|
|
314
313
|
* Destroys the game and cleans up all resources.
|
|
315
314
|
*/
|
|
316
|
-
destroy() {
|
|
315
|
+
public destroy() {
|
|
317
316
|
this.logger.info('destroy');
|
|
318
317
|
this.isPaused = true;
|
|
319
318
|
|
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
|
}
|