@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,16 +1,14 @@
|
|
|
1
1
|
import { Texture } from '../display/webgl/texture.js';
|
|
2
2
|
import { Rectangle } from '../geom/rectangle.js';
|
|
3
|
+
import type { BaseTexture } from '../display/webgl/base_texture.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Finalizes bitmap font data by attaching textures to characters.
|
|
6
|
-
* @param {
|
|
7
|
+
* @param {BaseTexture} baseTexture - The base texture for the font.
|
|
7
8
|
* @param {object} bitmapFontData - The bitmap font data to finalize.
|
|
8
9
|
* @returns {object} The finalized bitmap font data.
|
|
9
10
|
*/
|
|
10
|
-
export const finalizeBitmapFont = (
|
|
11
|
-
baseTexture: import('../display/webgl/base_texture.js').BaseTexture,
|
|
12
|
-
bitmapFontData: any
|
|
13
|
-
) => {
|
|
11
|
+
export const finalizeBitmapFont = (baseTexture: BaseTexture, bitmapFontData: any) => {
|
|
14
12
|
Object.keys(bitmapFontData.chars).forEach((charCode) => {
|
|
15
13
|
const letter = bitmapFontData.chars[charCode];
|
|
16
14
|
letter.texture = new Texture(baseTexture, new Rectangle(letter.x, letter.y, letter.width, letter.height));
|
|
@@ -21,43 +19,38 @@ export const finalizeBitmapFont = (
|
|
|
21
19
|
/**
|
|
22
20
|
* Parses XML bitmap font data.
|
|
23
21
|
* @param {object} xml - The XML document containing the bitmap font data.
|
|
24
|
-
* @param {
|
|
22
|
+
* @param {BaseTexture} baseTexture - The base texture for the font.
|
|
25
23
|
* @param {number} xSpacing - Horizontal spacing between characters.
|
|
26
24
|
* @param {number} ySpacing - Vertical spacing between characters.
|
|
27
25
|
* @returns {object} The parsed bitmap font data.
|
|
28
26
|
*/
|
|
29
|
-
export const xmlBitmapFont = (
|
|
30
|
-
xml: any,
|
|
31
|
-
baseTexture: import('../display/webgl/base_texture.js').BaseTexture,
|
|
32
|
-
xSpacing: number,
|
|
33
|
-
ySpacing: number
|
|
34
|
-
) => {
|
|
27
|
+
export const xmlBitmapFont = (xml: any, baseTexture: BaseTexture, xSpacing: number, ySpacing: number) => {
|
|
35
28
|
const data: any = {};
|
|
36
|
-
const info = xml.
|
|
37
|
-
const common = xml.
|
|
29
|
+
const info = xml.querySelectorAll('info')[0];
|
|
30
|
+
const common = xml.querySelectorAll('common')[0];
|
|
38
31
|
data.font = info.getAttribute('face');
|
|
39
|
-
data.size =
|
|
40
|
-
data.lineHeight =
|
|
32
|
+
data.size = Math.trunc(Number(info.getAttribute('size')));
|
|
33
|
+
data.lineHeight = Math.trunc(Number(common.getAttribute('lineHeight'))) + ySpacing;
|
|
41
34
|
data.chars = {};
|
|
42
|
-
const letters = xml.
|
|
35
|
+
const letters = xml.querySelectorAll('char');
|
|
43
36
|
for (let i = 0; i < letters.length; i += 1) {
|
|
44
|
-
const charCode =
|
|
37
|
+
const charCode = Math.trunc(Number(letters[i].getAttribute('id')));
|
|
45
38
|
data.chars[charCode] = {
|
|
46
|
-
x:
|
|
47
|
-
y:
|
|
48
|
-
width:
|
|
49
|
-
height:
|
|
50
|
-
xOffset:
|
|
51
|
-
yOffset:
|
|
52
|
-
xAdvance:
|
|
39
|
+
x: Math.trunc(Number(letters[i].getAttribute('x'))),
|
|
40
|
+
y: Math.trunc(Number(letters[i].getAttribute('y'))),
|
|
41
|
+
width: Math.trunc(Number(letters[i].getAttribute('width'))),
|
|
42
|
+
height: Math.trunc(Number(letters[i].getAttribute('height'))),
|
|
43
|
+
xOffset: Math.trunc(Number(letters[i].getAttribute('xoffset'))),
|
|
44
|
+
yOffset: Math.trunc(Number(letters[i].getAttribute('yoffset'))),
|
|
45
|
+
xAdvance: Math.trunc(Number(letters[i].getAttribute('xadvance'))) + xSpacing,
|
|
53
46
|
kerning: {},
|
|
54
47
|
};
|
|
55
48
|
}
|
|
56
|
-
const kernings = xml.
|
|
49
|
+
const kernings = xml.querySelectorAll('kerning');
|
|
57
50
|
for (let i = 0; i < kernings.length; i += 1) {
|
|
58
|
-
const first =
|
|
59
|
-
const second =
|
|
60
|
-
const amount =
|
|
51
|
+
const first = Math.trunc(Number(kernings[i].getAttribute('first')));
|
|
52
|
+
const second = Math.trunc(Number(kernings[i].getAttribute('second')));
|
|
53
|
+
const amount = Math.trunc(Number(kernings[i].getAttribute('amount')));
|
|
61
54
|
data.chars[second].kerning[first] = amount;
|
|
62
55
|
}
|
|
63
56
|
return finalizeBitmapFont(baseTexture, data);
|
|
@@ -66,34 +59,23 @@ export const xmlBitmapFont = (
|
|
|
66
59
|
/**
|
|
67
60
|
* Parses XML bitmap font data (alias for xmlBitmapFont).
|
|
68
61
|
* @param {object} xml - The XML document containing the bitmap font data.
|
|
69
|
-
* @param {
|
|
62
|
+
* @param {BaseTexture} baseTexture - The base texture for the font.
|
|
70
63
|
* @param {number} xSpacing - Horizontal spacing between characters.
|
|
71
64
|
* @param {number} ySpacing - Vertical spacing between characters.
|
|
72
65
|
* @returns {object} The parsed bitmap font data.
|
|
73
66
|
*/
|
|
74
|
-
export const bitmapFont = (
|
|
75
|
-
xml
|
|
76
|
-
baseTexture: import('../display/webgl/base_texture.js').BaseTexture,
|
|
77
|
-
xSpacing: number,
|
|
78
|
-
ySpacing: number
|
|
79
|
-
) => {
|
|
80
|
-
return xmlBitmapFont(xml, baseTexture, xSpacing, ySpacing);
|
|
81
|
-
};
|
|
67
|
+
export const bitmapFont = (xml: any, baseTexture: BaseTexture, xSpacing: number, ySpacing: number) =>
|
|
68
|
+
xmlBitmapFont(xml, baseTexture, xSpacing, ySpacing);
|
|
82
69
|
|
|
83
70
|
/**
|
|
84
71
|
* Parses JSON bitmap font data.
|
|
85
72
|
* @param {object} json - The JSON object containing the bitmap font data.
|
|
86
|
-
* @param {
|
|
73
|
+
* @param {BaseTexture} baseTexture - The base texture for the font.
|
|
87
74
|
* @param {number} xSpacing - Horizontal spacing between characters.
|
|
88
75
|
* @param {number} ySpacing - Vertical spacing between characters.
|
|
89
76
|
* @returns {object} The parsed bitmap font data.
|
|
90
77
|
*/
|
|
91
|
-
export const jsonBitmapFont = (
|
|
92
|
-
json: any,
|
|
93
|
-
baseTexture: import('../display/webgl/base_texture.js').BaseTexture,
|
|
94
|
-
xSpacing: number,
|
|
95
|
-
ySpacing: number
|
|
96
|
-
) => {
|
|
78
|
+
export const jsonBitmapFont = (json: any, baseTexture: BaseTexture, xSpacing: number, ySpacing: number) => {
|
|
97
79
|
const data: {
|
|
98
80
|
font: string;
|
|
99
81
|
size: number;
|
|
@@ -101,28 +83,28 @@ export const jsonBitmapFont = (
|
|
|
101
83
|
chars: Record<number, { kerning: Record<number, number>; [key: string]: unknown }>;
|
|
102
84
|
} = {
|
|
103
85
|
font: json.font.info._face,
|
|
104
|
-
size:
|
|
105
|
-
lineHeight:
|
|
86
|
+
size: Math.trunc(Number(json.font.info._size)),
|
|
87
|
+
lineHeight: Math.trunc(Number(json.font.common._lineHeight)) + ySpacing,
|
|
106
88
|
chars: {},
|
|
107
89
|
};
|
|
108
90
|
json.font.chars.char.forEach((letter: Record<string, string>) => {
|
|
109
|
-
const charCode =
|
|
91
|
+
const charCode = Math.trunc(Number(letter['_id']));
|
|
110
92
|
data.chars[charCode] = {
|
|
111
|
-
x:
|
|
112
|
-
y:
|
|
113
|
-
width:
|
|
114
|
-
height:
|
|
115
|
-
xOffset:
|
|
116
|
-
yOffset:
|
|
117
|
-
xAdvance:
|
|
93
|
+
x: Math.trunc(Number(letter['_x'])),
|
|
94
|
+
y: Math.trunc(Number(letter['_y'])),
|
|
95
|
+
width: Math.trunc(Number(letter['_width'])),
|
|
96
|
+
height: Math.trunc(Number(letter['_height'])),
|
|
97
|
+
xOffset: Math.trunc(Number(letter['_xoffset'])),
|
|
98
|
+
yOffset: Math.trunc(Number(letter['_yoffset'])),
|
|
99
|
+
xAdvance: Math.trunc(Number(letter['_xadvance'])) + xSpacing,
|
|
118
100
|
kerning: {},
|
|
119
101
|
};
|
|
120
102
|
});
|
|
121
103
|
if (json.font.kernings && json.font.kernings.kerning) {
|
|
122
104
|
json.font.kernings.kerning.forEach((kerning: Record<string, string>) => {
|
|
123
|
-
const char = data.chars[
|
|
105
|
+
const char = data.chars[Math.trunc(Number(kerning['_second']))];
|
|
124
106
|
if (char) {
|
|
125
|
-
char.kerning[
|
|
107
|
+
char.kerning[Math.trunc(Number(kerning['_first']))] = Math.trunc(Number(kerning['_amount']));
|
|
126
108
|
}
|
|
127
109
|
});
|
|
128
110
|
}
|
package/src/phaser/core/raf.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { Game } from './game.js';
|
|
1
2
|
export class RequestAnimationFrame {
|
|
2
|
-
game: any;
|
|
3
|
-
rafId: number;
|
|
3
|
+
public game: any;
|
|
4
|
+
public rafId: number;
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Constructor.
|
|
7
|
-
* @param {
|
|
8
|
+
* @param {Game} game - Reference to the game instance.
|
|
8
9
|
*/
|
|
9
|
-
constructor(game:
|
|
10
|
+
public constructor(game: Game) {
|
|
10
11
|
this.game = game;
|
|
11
12
|
this.rafId = 0;
|
|
12
13
|
}
|
|
@@ -14,14 +15,14 @@ export class RequestAnimationFrame {
|
|
|
14
15
|
/**
|
|
15
16
|
* Starts an animation frame request.
|
|
16
17
|
*/
|
|
17
|
-
start = () => {
|
|
18
|
+
public start = () => {
|
|
18
19
|
this.rafId = requestAnimationFrame(this.update);
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Cancels an animation frame request.
|
|
23
24
|
*/
|
|
24
|
-
stop = () => {
|
|
25
|
+
public stop = () => {
|
|
25
26
|
cancelAnimationFrame(this.rafId);
|
|
26
27
|
};
|
|
27
28
|
|
|
@@ -29,7 +30,7 @@ export class RequestAnimationFrame {
|
|
|
29
30
|
* Performs an animation frame request.
|
|
30
31
|
* @param {number} rafTime - The timestamp provided by the browser's animation frame.
|
|
31
32
|
*/
|
|
32
|
-
update = (rafTime: number) => {
|
|
33
|
+
public update = (rafTime: number) => {
|
|
33
34
|
this.game.update(rafTime);
|
|
34
35
|
this.rafId = requestAnimationFrame(this.update);
|
|
35
36
|
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { getRegistry } from './registry.js';
|
|
3
|
+
|
|
4
|
+
describe('getRegistry', () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
// @ts-expect-error the registry is created on demand, so tests may clear it
|
|
7
|
+
delete globalThis.PhaserRegistry;
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it('creates the registry on first access', () => {
|
|
11
|
+
expect(globalThis.PhaserRegistry).toBeUndefined();
|
|
12
|
+
expect(getRegistry()).toBeDefined();
|
|
13
|
+
expect(globalThis.PhaserRegistry).toBeDefined();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('returns the same object on repeat access', () => {
|
|
17
|
+
expect(getRegistry()).toBe(getRegistry());
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('preserves members written by subsystems', () => {
|
|
21
|
+
getRegistry().GL_CONTEXT_ID = 7;
|
|
22
|
+
expect(getRegistry().GL_CONTEXT_ID).toBe(7);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('does not clobber a registry that already exists', () => {
|
|
26
|
+
const existing = getRegistry();
|
|
27
|
+
existing.stencilBufferLimit = 3;
|
|
28
|
+
expect(getRegistry()).toBe(existing);
|
|
29
|
+
expect(getRegistry().stencilBufferLimit).toBe(3);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the process-wide engine registry, creating it on first access.
|
|
3
|
+
* Members are populated lazily by the subsystems that own them.
|
|
4
|
+
* @returns {PhaserRegistryState} The engine registry.
|
|
5
|
+
*/
|
|
6
|
+
export const getRegistry = (): PhaserRegistryState => {
|
|
7
|
+
globalThis.PhaserRegistry ??= {} as PhaserRegistryState;
|
|
8
|
+
return globalThis.PhaserRegistry;
|
|
9
|
+
};
|