@vpmedia/phaser 1.120.0 → 1.121.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.
Files changed (153) hide show
  1. package/dist/index.js +499 -607
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation.d.ts.map +1 -1
  4. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  5. package/dist/phaser/core/animation_parser.d.ts +1 -1
  6. package/dist/phaser/core/array_set.d.ts.map +1 -1
  7. package/dist/phaser/core/callback.d.ts +12 -0
  8. package/dist/phaser/core/callback.d.ts.map +1 -0
  9. package/dist/phaser/core/device.d.ts +1 -5
  10. package/dist/phaser/core/device.d.ts.map +1 -1
  11. package/dist/phaser/core/dom.d.ts.map +1 -1
  12. package/dist/phaser/core/factory.d.ts +2 -1
  13. package/dist/phaser/core/factory.d.ts.map +1 -1
  14. package/dist/phaser/core/game.d.ts +3 -0
  15. package/dist/phaser/core/game.d.ts.map +1 -1
  16. package/dist/phaser/core/input.d.ts +11 -9
  17. package/dist/phaser/core/input.d.ts.map +1 -1
  18. package/dist/phaser/core/input_event.d.ts +1 -1
  19. package/dist/phaser/core/input_event.d.ts.map +1 -1
  20. package/dist/phaser/core/input_handler.d.ts.map +1 -1
  21. package/dist/phaser/core/input_mouse.d.ts.map +1 -1
  22. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  23. package/dist/phaser/core/input_pointer.d.ts +3 -2
  24. package/dist/phaser/core/input_pointer.d.ts.map +1 -1
  25. package/dist/phaser/core/input_touch.d.ts.map +1 -1
  26. package/dist/phaser/core/loader.d.ts +5 -4
  27. package/dist/phaser/core/loader.d.ts.map +1 -1
  28. package/dist/phaser/core/scale_manager.d.ts +5 -4
  29. package/dist/phaser/core/scale_manager.d.ts.map +1 -1
  30. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  31. package/dist/phaser/core/signal.d.ts +14 -7
  32. package/dist/phaser/core/signal.d.ts.map +1 -1
  33. package/dist/phaser/core/signal_binding.d.ts +10 -10
  34. package/dist/phaser/core/signal_binding.d.ts.map +1 -1
  35. package/dist/phaser/core/sound.d.ts +3 -3
  36. package/dist/phaser/core/sound.d.ts.map +1 -1
  37. package/dist/phaser/core/sound_manager.d.ts +9 -3
  38. package/dist/phaser/core/sound_manager.d.ts.map +1 -1
  39. package/dist/phaser/core/sound_sprite.d.ts +19 -7
  40. package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
  41. package/dist/phaser/core/timer.d.ts +5 -4
  42. package/dist/phaser/core/timer.d.ts.map +1 -1
  43. package/dist/phaser/core/timer_event.d.ts +3 -2
  44. package/dist/phaser/core/timer_event.d.ts.map +1 -1
  45. package/dist/phaser/core/tween.d.ts +7 -6
  46. package/dist/phaser/core/tween.d.ts.map +1 -1
  47. package/dist/phaser/core/tween_data.d.ts +2 -1
  48. package/dist/phaser/core/tween_data.d.ts.map +1 -1
  49. package/dist/phaser/core/tween_easing.d.ts +31 -31
  50. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  51. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  52. package/dist/phaser/display/button.d.ts +2 -1
  53. package/dist/phaser/display/button.d.ts.map +1 -1
  54. package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
  55. package/dist/phaser/display/canvas/renderer.d.ts +1 -1
  56. package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
  57. package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
  58. package/dist/phaser/display/canvas/util.d.ts +2 -2
  59. package/dist/phaser/display/canvas/util.d.ts.map +1 -1
  60. package/dist/phaser/display/display_object.d.ts +8 -6
  61. package/dist/phaser/display/display_object.d.ts.map +1 -1
  62. package/dist/phaser/display/graphics.d.ts +7 -3
  63. package/dist/phaser/display/graphics.d.ts.map +1 -1
  64. package/dist/phaser/display/group.d.ts +1 -1
  65. package/dist/phaser/display/group.d.ts.map +1 -1
  66. package/dist/phaser/display/image.d.ts.map +1 -1
  67. package/dist/phaser/display/sprite_util.d.ts.map +1 -1
  68. package/dist/phaser/display/text.d.ts +5 -0
  69. package/dist/phaser/display/text.d.ts.map +1 -1
  70. package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
  71. package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
  72. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  73. package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  74. package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
  75. package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  76. package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
  77. package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
  78. package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  79. package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
  80. package/dist/phaser/geom/polygon.d.ts +11 -5
  81. package/dist/phaser/geom/polygon.d.ts.map +1 -1
  82. package/dist/phaser/geom/rectangle.d.ts.map +1 -1
  83. package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  84. package/dist/phaser/util/math.d.ts.map +1 -1
  85. package/package.json +1 -1
  86. package/src/phaser/core/animation.ts +1 -2
  87. package/src/phaser/core/animation_manager.ts +3 -11
  88. package/src/phaser/core/animation_parser.ts +2 -2
  89. package/src/phaser/core/array_set.ts +8 -10
  90. package/src/phaser/core/cache.ts +2 -2
  91. package/src/phaser/core/callback.ts +14 -0
  92. package/src/phaser/core/device.ts +24 -53
  93. package/src/phaser/core/device_util.ts +6 -6
  94. package/src/phaser/core/dom.ts +10 -7
  95. package/src/phaser/core/factory.ts +3 -2
  96. package/src/phaser/core/game.ts +4 -5
  97. package/src/phaser/core/input.ts +16 -12
  98. package/src/phaser/core/input_event.ts +1 -1
  99. package/src/phaser/core/input_handler.ts +21 -22
  100. package/src/phaser/core/input_mouse.ts +12 -17
  101. package/src/phaser/core/input_mspointer.ts +8 -11
  102. package/src/phaser/core/input_pointer.ts +22 -21
  103. package/src/phaser/core/input_touch.ts +16 -19
  104. package/src/phaser/core/loader.ts +75 -86
  105. package/src/phaser/core/loader_parser.ts +6 -6
  106. package/src/phaser/core/scale_manager.ts +34 -42
  107. package/src/phaser/core/scene_manager.ts +2 -1
  108. package/src/phaser/core/signal.ts +21 -13
  109. package/src/phaser/core/signal_binding.ts +20 -21
  110. package/src/phaser/core/sound.ts +9 -11
  111. package/src/phaser/core/sound_manager.ts +53 -47
  112. package/src/phaser/core/sound_sprite.ts +34 -21
  113. package/src/phaser/core/stage.ts +4 -4
  114. package/src/phaser/core/timer.ts +13 -30
  115. package/src/phaser/core/timer_event.ts +3 -2
  116. package/src/phaser/core/tween.ts +9 -8
  117. package/src/phaser/core/tween_data.ts +15 -41
  118. package/src/phaser/core/tween_easing.test.ts +35 -35
  119. package/src/phaser/core/tween_easing.ts +33 -33
  120. package/src/phaser/core/tween_manager.ts +77 -75
  121. package/src/phaser/display/bitmap_text.ts +7 -11
  122. package/src/phaser/display/button.ts +3 -2
  123. package/src/phaser/display/canvas/graphics.ts +7 -7
  124. package/src/phaser/display/canvas/pool.ts +5 -6
  125. package/src/phaser/display/canvas/renderer.ts +7 -4
  126. package/src/phaser/display/canvas/tinter.ts +9 -11
  127. package/src/phaser/display/canvas/util.test.ts +122 -0
  128. package/src/phaser/display/canvas/util.ts +34 -35
  129. package/src/phaser/display/display_object.ts +30 -43
  130. package/src/phaser/display/graphics.ts +30 -45
  131. package/src/phaser/display/group.ts +1 -1
  132. package/src/phaser/display/image.ts +9 -16
  133. package/src/phaser/display/sprite_util.ts +0 -1
  134. package/src/phaser/display/text.ts +27 -43
  135. package/src/phaser/display/webgl/base_texture.ts +3 -3
  136. package/src/phaser/display/webgl/earcut.ts +2 -3
  137. package/src/phaser/display/webgl/fast_sprite_batch.ts +1 -2
  138. package/src/phaser/display/webgl/filter_manager.ts +6 -18
  139. package/src/phaser/display/webgl/filter_texture.ts +3 -3
  140. package/src/phaser/display/webgl/graphics.ts +28 -38
  141. package/src/phaser/display/webgl/graphics_data.ts +0 -1
  142. package/src/phaser/display/webgl/render_texture.ts +4 -13
  143. package/src/phaser/display/webgl/renderer.ts +0 -1
  144. package/src/phaser/display/webgl/sprite_batch.ts +2 -9
  145. package/src/phaser/display/webgl/texture.ts +12 -15
  146. package/src/phaser/geom/point.ts +1 -1
  147. package/src/phaser/geom/polygon.test.ts +59 -0
  148. package/src/phaser/geom/polygon.ts +43 -45
  149. package/src/phaser/geom/rectangle.ts +3 -15
  150. package/src/phaser/geom/rounded_rectangle.ts +2 -4
  151. package/src/phaser/geom/util/point.ts +1 -1
  152. package/src/phaser/geom/util/rectangle.ts +2 -2
  153. package/src/phaser/util/math.ts +1 -5
@@ -3,28 +3,28 @@
3
3
  * @param {number} k - TBD.
4
4
  * @returns {number} TBD.
5
5
  */
6
- export const LinearNone = (k: number): number => k;
6
+ export const linearNone = (k: number): number => k;
7
7
 
8
8
  /**
9
9
  * TBD.
10
10
  * @param {number} k - TBD.
11
11
  * @returns {number} TBD.
12
12
  */
13
- export const QuadraticIn = (k: number): number => k * k;
13
+ export const quadraticIn = (k: number): number => k * k;
14
14
 
15
15
  /**
16
16
  * TBD.
17
17
  * @param {number} k - TBD.
18
18
  * @returns {number} TBD.
19
19
  */
20
- export const QuadraticOut = (k: number): number => k * (2 - k);
20
+ export const quadraticOut = (k: number): number => k * (2 - k);
21
21
 
22
22
  /**
23
23
  * TBD.
24
24
  * @param {number} k - TBD.
25
25
  * @returns {number} TBD.
26
26
  */
27
- export const QuadraticInOut = (k: number): number => {
27
+ export const quadraticInOut = (k: number): number => {
28
28
  const t = k * 2;
29
29
  if (t < 1) {
30
30
  return 0.5 * t * t;
@@ -38,14 +38,14 @@ export const QuadraticInOut = (k: number): number => {
38
38
  * @param {number} k - TBD.
39
39
  * @returns {number} TBD.
40
40
  */
41
- export const CubicIn = (k: number): number => k * k * k;
41
+ export const cubicIn = (k: number): number => k * k * k;
42
42
 
43
43
  /**
44
44
  * TBD.
45
45
  * @param {number} k - TBD.
46
46
  * @returns {number} TBD.
47
47
  */
48
- export const CubicOut = (k: number): number => {
48
+ export const cubicOut = (k: number): number => {
49
49
  const u = k - 1;
50
50
  return u * u * u + 1;
51
51
  };
@@ -55,7 +55,7 @@ export const CubicOut = (k: number): number => {
55
55
  * @param {number} k - TBD.
56
56
  * @returns {number} TBD.
57
57
  */
58
- export const CubicInOut = (k: number): number => {
58
+ export const cubicInOut = (k: number): number => {
59
59
  const t = k * 2;
60
60
  if (t < 1) {
61
61
  return 0.5 * t * t * t;
@@ -69,14 +69,14 @@ export const CubicInOut = (k: number): number => {
69
69
  * @param {number} k - TBD.
70
70
  * @returns {number} TBD.
71
71
  */
72
- export const QuarticIn = (k: number): number => k * k * k * k;
72
+ export const quarticIn = (k: number): number => k * k * k * k;
73
73
 
74
74
  /**
75
75
  * TBD.
76
76
  * @param {number} k - TBD.
77
77
  * @returns {number} TBD.
78
78
  */
79
- export const QuarticOut = (k: number): number => {
79
+ export const quarticOut = (k: number): number => {
80
80
  const u = k - 1;
81
81
  return 1 - u * u * u * u;
82
82
  };
@@ -86,7 +86,7 @@ export const QuarticOut = (k: number): number => {
86
86
  * @param {number} k - TBD.
87
87
  * @returns {number} TBD.
88
88
  */
89
- export const QuarticInOut = (k: number): number => {
89
+ export const quarticInOut = (k: number): number => {
90
90
  const t = k * 2;
91
91
  if (t < 1) {
92
92
  return 0.5 * t * t * t * t;
@@ -100,14 +100,14 @@ export const QuarticInOut = (k: number): number => {
100
100
  * @param {number} k - TBD.
101
101
  * @returns {number} TBD.
102
102
  */
103
- export const QuinticIn = (k: number): number => k * k * k * k * k;
103
+ export const quinticIn = (k: number): number => k * k * k * k * k;
104
104
 
105
105
  /**
106
106
  * TBD.
107
107
  * @param {number} k - TBD.
108
108
  * @returns {number} TBD.
109
109
  */
110
- export const QuinticOut = (k: number): number => {
110
+ export const quinticOut = (k: number): number => {
111
111
  const u = k - 1;
112
112
  return u * u * u * u * u + 1;
113
113
  };
@@ -117,7 +117,7 @@ export const QuinticOut = (k: number): number => {
117
117
  * @param {number} k - TBD.
118
118
  * @returns {number} TBD.
119
119
  */
120
- export const QuinticInOut = (k: number): number => {
120
+ export const quinticInOut = (k: number): number => {
121
121
  const t = k * 2;
122
122
  if (t < 1) {
123
123
  return 0.5 * t * t * t * t * t;
@@ -131,7 +131,7 @@ export const QuinticInOut = (k: number): number => {
131
131
  * @param {number} k - TBD.
132
132
  * @returns {number} TBD.
133
133
  */
134
- export const SinusoidalIn = (k: number): number => {
134
+ export const sinusoidalIn = (k: number): number => {
135
135
  if (k === 0) {
136
136
  return 0;
137
137
  }
@@ -146,7 +146,7 @@ export const SinusoidalIn = (k: number): number => {
146
146
  * @param {number} k - TBD.
147
147
  * @returns {number} TBD.
148
148
  */
149
- export const SinusoidalOut = (k: number): number => {
149
+ export const sinusoidalOut = (k: number): number => {
150
150
  if (k === 0) {
151
151
  return 0;
152
152
  }
@@ -161,7 +161,7 @@ export const SinusoidalOut = (k: number): number => {
161
161
  * @param {number} k - TBD.
162
162
  * @returns {number} TBD.
163
163
  */
164
- export const SinusoidalInOut = (k: number): number => {
164
+ export const sinusoidalInOut = (k: number): number => {
165
165
  if (k === 0) {
166
166
  return 0;
167
167
  }
@@ -176,21 +176,21 @@ export const SinusoidalInOut = (k: number): number => {
176
176
  * @param {number} k - TBD.
177
177
  * @returns {number} TBD.
178
178
  */
179
- export const ExponentialIn = (k: number): number => (k === 0 ? 0 : 1024 ** (k - 1));
179
+ export const exponentialIn = (k: number): number => (k === 0 ? 0 : 1024 ** (k - 1));
180
180
 
181
181
  /**
182
182
  * TBD.
183
183
  * @param {number} k - TBD.
184
184
  * @returns {number} TBD.
185
185
  */
186
- export const ExponentialOut = (k: number): number => (k === 1 ? 1 : 1 - 2 ** (-10 * k));
186
+ export const exponentialOut = (k: number): number => (k === 1 ? 1 : 1 - 2 ** (-10 * k));
187
187
 
188
188
  /**
189
189
  * TBD.
190
190
  * @param {number} k - TBD.
191
191
  * @returns {number} TBD.
192
192
  */
193
- export const ExponentialInOut = (k: number): number => {
193
+ export const exponentialInOut = (k: number): number => {
194
194
  if (k === 0) {
195
195
  return 0;
196
196
  }
@@ -209,14 +209,14 @@ export const ExponentialInOut = (k: number): number => {
209
209
  * @param {number} k - TBD.
210
210
  * @returns {number} TBD.
211
211
  */
212
- export const CircularIn = (k: number): number => 1 - Math.sqrt(1 - k * k);
212
+ export const circularIn = (k: number): number => 1 - Math.sqrt(1 - k * k);
213
213
 
214
214
  /**
215
215
  * TBD.
216
216
  * @param {number} k - TBD.
217
217
  * @returns {number} TBD.
218
218
  */
219
- export const CircularOut = (k: number): number => {
219
+ export const circularOut = (k: number): number => {
220
220
  const u = k - 1;
221
221
  return Math.sqrt(1 - u * u);
222
222
  };
@@ -226,7 +226,7 @@ export const CircularOut = (k: number): number => {
226
226
  * @param {number} k - TBD.
227
227
  * @returns {number} TBD.
228
228
  */
229
- export const CircularInOut = (k: number): number => {
229
+ export const circularInOut = (k: number): number => {
230
230
  const t = k * 2;
231
231
  if (t < 1) {
232
232
  return -0.5 * (Math.sqrt(1 - t * t) - 1);
@@ -244,7 +244,7 @@ const ELASTIC_PHASE = ELASTIC_PERIOD / 4;
244
244
  * @param {number} k - TBD.
245
245
  * @returns {number} TBD.
246
246
  */
247
- export const ElasticIn = (k: number): number => {
247
+ export const elasticIn = (k: number): number => {
248
248
  if (k === 0) {
249
249
  return 0;
250
250
  }
@@ -260,7 +260,7 @@ export const ElasticIn = (k: number): number => {
260
260
  * @param {number} k - TBD.
261
261
  * @returns {number} TBD.
262
262
  */
263
- export const ElasticOut = (k: number): number => {
263
+ export const elasticOut = (k: number): number => {
264
264
  if (k === 0) {
265
265
  return 0;
266
266
  }
@@ -275,7 +275,7 @@ export const ElasticOut = (k: number): number => {
275
275
  * @param {number} k - TBD.
276
276
  * @returns {number} TBD.
277
277
  */
278
- export const ElasticInOut = (k: number): number => {
278
+ export const elasticInOut = (k: number): number => {
279
279
  if (k === 0) {
280
280
  return 0;
281
281
  }
@@ -299,14 +299,14 @@ const BACK_OVERSHOOT_IN_OUT = BACK_OVERSHOOT * 1.525;
299
299
  * @param {number} k - TBD.
300
300
  * @returns {number} TBD.
301
301
  */
302
- export const BackIn = (k: number): number => k * k * ((BACK_OVERSHOOT + 1) * k - BACK_OVERSHOOT);
302
+ export const backIn = (k: number): number => k * k * ((BACK_OVERSHOOT + 1) * k - BACK_OVERSHOOT);
303
303
 
304
304
  /**
305
305
  * TBD.
306
306
  * @param {number} k - TBD.
307
307
  * @returns {number} TBD.
308
308
  */
309
- export const BackOut = (k: number): number => {
309
+ export const backOut = (k: number): number => {
310
310
  const u = k - 1;
311
311
  return u * u * ((BACK_OVERSHOOT + 1) * u + BACK_OVERSHOOT) + 1;
312
312
  };
@@ -316,7 +316,7 @@ export const BackOut = (k: number): number => {
316
316
  * @param {number} k - TBD.
317
317
  * @returns {number} TBD.
318
318
  */
319
- export const BackInOut = (k: number): number => {
319
+ export const backInOut = (k: number): number => {
320
320
  const t = k * 2;
321
321
  if (t < 1) {
322
322
  return 0.5 * (t * t * ((BACK_OVERSHOOT_IN_OUT + 1) * t - BACK_OVERSHOOT_IN_OUT));
@@ -330,7 +330,7 @@ export const BackInOut = (k: number): number => {
330
330
  * @param {number} k - TBD.
331
331
  * @returns {number} TBD.
332
332
  */
333
- export const BounceOut = (k: number): number => {
333
+ export const bounceOut = (k: number): number => {
334
334
  if (k < 1 / 2.75) {
335
335
  return 7.5625 * k * k;
336
336
  }
@@ -351,16 +351,16 @@ export const BounceOut = (k: number): number => {
351
351
  * @param {number} k - TBD.
352
352
  * @returns {number} TBD.
353
353
  */
354
- export const BounceIn = (k: number): number => 1 - BounceOut(1 - k);
354
+ export const bounceIn = (k: number): number => 1 - bounceOut(1 - k);
355
355
 
356
356
  /**
357
357
  * TBD.
358
358
  * @param {number} k - TBD.
359
359
  * @returns {number} TBD.
360
360
  */
361
- export const BounceInOut = (k: number): number => {
361
+ export const bounceInOut = (k: number): number => {
362
362
  if (k < 0.5) {
363
- return BounceIn(k * 2) * 0.5;
363
+ return bounceIn(k * 2) * 0.5;
364
364
  }
365
- return BounceOut(k * 2 - 1) * 0.5 + 0.5;
365
+ return bounceOut(k * 2 - 1) * 0.5 + 0.5;
366
366
  };
@@ -2,37 +2,37 @@ import type { Game } from './game.js';
2
2
  import { GROUP } from './const.js';
3
3
  import { Tween } from './tween.js';
4
4
  import {
5
- BackIn,
6
- BackInOut,
7
- BackOut,
8
- BounceIn,
9
- BounceInOut,
10
- BounceOut,
11
- CircularIn,
12
- CircularInOut,
13
- CircularOut,
14
- CubicIn,
15
- CubicInOut,
16
- CubicOut,
17
- ElasticIn,
18
- ElasticInOut,
19
- ElasticOut,
20
- ExponentialIn,
21
- ExponentialInOut,
22
- ExponentialOut,
23
- LinearNone,
24
- QuadraticIn,
25
- QuadraticInOut,
26
- QuadraticOut,
27
- QuarticIn,
28
- QuarticInOut,
29
- QuarticOut,
30
- QuinticIn,
31
- QuinticInOut,
32
- QuinticOut,
33
- SinusoidalIn,
34
- SinusoidalInOut,
35
- SinusoidalOut,
5
+ backIn,
6
+ backInOut,
7
+ backOut,
8
+ bounceIn,
9
+ bounceInOut,
10
+ bounceOut,
11
+ circularIn,
12
+ circularInOut,
13
+ circularOut,
14
+ cubicIn,
15
+ cubicInOut,
16
+ cubicOut,
17
+ elasticIn,
18
+ elasticInOut,
19
+ elasticOut,
20
+ exponentialIn,
21
+ exponentialInOut,
22
+ exponentialOut,
23
+ linearNone,
24
+ quadraticIn,
25
+ quadraticInOut,
26
+ quadraticOut,
27
+ quarticIn,
28
+ quarticInOut,
29
+ quarticOut,
30
+ quinticIn,
31
+ quinticInOut,
32
+ quinticOut,
33
+ sinusoidalIn,
34
+ sinusoidalInOut,
35
+ sinusoidalOut,
36
36
  } from './tween_easing.js';
37
37
 
38
38
  /** What a tween can be attached to: any object, or a list of them. */
@@ -55,47 +55,47 @@ export class TweenManager {
55
55
  this._add = [];
56
56
  /** @type {{[key: string]: (k: number) => number}} */
57
57
  this.easeMap = {
58
- Linear: LinearNone,
59
- Quad: QuadraticOut,
60
- Cubic: CubicOut,
61
- Quart: QuarticOut,
62
- Quint: QuinticOut,
63
- Sine: SinusoidalOut,
64
- Expo: ExponentialOut,
65
- Circ: CircularOut,
66
- Elastic: ElasticOut,
67
- Back: BackOut,
68
- Bounce: BounceOut,
69
- 'Quad.easeIn': QuadraticIn,
70
- 'Cubic.easeIn': CubicIn,
71
- 'Quart.easeIn': QuarticIn,
72
- 'Quint.easeIn': QuinticIn,
73
- 'Sine.easeIn': SinusoidalIn,
74
- 'Expo.easeIn': ExponentialIn,
75
- 'Circ.easeIn': CircularIn,
76
- 'Elastic.easeIn': ElasticIn,
77
- 'Back.easeIn': BackIn,
78
- 'Bounce.easeIn': BounceIn,
79
- 'Quad.easeOut': QuadraticOut,
80
- 'Cubic.easeOut': CubicOut,
81
- 'Quart.easeOut': QuarticOut,
82
- 'Quint.easeOut': QuinticOut,
83
- 'Sine.easeOut': SinusoidalOut,
84
- 'Expo.easeOut': ExponentialOut,
85
- 'Circ.easeOut': CircularOut,
86
- 'Elastic.easeOut': ElasticOut,
87
- 'Back.easeOut': BackOut,
88
- 'Bounce.easeOut': BounceOut,
89
- 'Quad.easeInOut': QuadraticInOut,
90
- 'Cubic.easeInOut': CubicInOut,
91
- 'Quart.easeInOut': QuarticInOut,
92
- 'Quint.easeInOut': QuinticInOut,
93
- 'Sine.easeInOut': SinusoidalInOut,
94
- 'Expo.easeInOut': ExponentialInOut,
95
- 'Circ.easeInOut': CircularInOut,
96
- 'Elastic.easeInOut': ElasticInOut,
97
- 'Back.easeInOut': BackInOut,
98
- 'Bounce.easeInOut': BounceInOut,
58
+ Linear: linearNone,
59
+ Quad: quadraticOut,
60
+ Cubic: cubicOut,
61
+ Quart: quarticOut,
62
+ Quint: quinticOut,
63
+ Sine: sinusoidalOut,
64
+ Expo: exponentialOut,
65
+ Circ: circularOut,
66
+ Elastic: elasticOut,
67
+ Back: backOut,
68
+ Bounce: bounceOut,
69
+ 'Quad.easeIn': quadraticIn,
70
+ 'Cubic.easeIn': cubicIn,
71
+ 'Quart.easeIn': quarticIn,
72
+ 'Quint.easeIn': quinticIn,
73
+ 'Sine.easeIn': sinusoidalIn,
74
+ 'Expo.easeIn': exponentialIn,
75
+ 'Circ.easeIn': circularIn,
76
+ 'Elastic.easeIn': elasticIn,
77
+ 'Back.easeIn': backIn,
78
+ 'Bounce.easeIn': bounceIn,
79
+ 'Quad.easeOut': quadraticOut,
80
+ 'Cubic.easeOut': cubicOut,
81
+ 'Quart.easeOut': quarticOut,
82
+ 'Quint.easeOut': quinticOut,
83
+ 'Sine.easeOut': sinusoidalOut,
84
+ 'Expo.easeOut': exponentialOut,
85
+ 'Circ.easeOut': circularOut,
86
+ 'Elastic.easeOut': elasticOut,
87
+ 'Back.easeOut': backOut,
88
+ 'Bounce.easeOut': bounceOut,
89
+ 'Quad.easeInOut': quadraticInOut,
90
+ 'Cubic.easeInOut': cubicInOut,
91
+ 'Quart.easeInOut': quarticInOut,
92
+ 'Quint.easeInOut': quinticInOut,
93
+ 'Sine.easeInOut': sinusoidalInOut,
94
+ 'Expo.easeInOut': exponentialInOut,
95
+ 'Circ.easeInOut': circularInOut,
96
+ 'Elastic.easeInOut': elasticInOut,
97
+ 'Back.easeInOut': backInOut,
98
+ 'Bounce.easeInOut': bounceInOut,
99
99
  };
100
100
 
101
101
  this.game.onPause.add(this._pauseAll, this);
@@ -140,12 +140,14 @@ export class TweenManager {
140
140
  }
141
141
  return;
142
142
  }
143
- for (const tween of this._tweens.slice()) {
143
+ const running = [...this._tweens];
144
+ for (const tween of running) {
144
145
  if (obj === tween.target) {
145
146
  this.remove(tween);
146
147
  }
147
148
  }
148
- for (const tween of this._add.slice()) {
149
+ const pending = [...this._add];
150
+ for (const tween of pending) {
149
151
  if (obj === tween.target) {
150
152
  this.remove(tween);
151
153
  }
@@ -210,7 +212,7 @@ export class TweenManager {
210
212
  }
211
213
  // If there are any new tweens to be added, do so now - otherwise they can be spliced out of the array before ever running
212
214
  if (addTweens > 0) {
213
- this._tweens = this._tweens.concat(this._add);
215
+ this._tweens = [...this._tweens, ...this._add];
214
216
  this._add.length = 0;
215
217
  }
216
218
  return true;
@@ -123,12 +123,12 @@ export class BitmapText extends DisplayObject {
123
123
  if (/(?:\r\n|\r|\n)/.test(text.charAt(i))) {
124
124
  return {
125
125
  width: w,
126
- text: text.substr(0, i),
126
+ text: text.slice(0, i),
127
127
  end,
128
128
  chars,
129
129
  };
130
130
  }
131
- let charCode = text.charCodeAt(i);
131
+ let charCode = text.codePointAt(i) ?? 32;
132
132
  let charData = data.chars[charCode];
133
133
  let c = 0;
134
134
  // If the character data isn't found in the data array
@@ -154,7 +154,7 @@ export class BitmapText extends DisplayObject {
154
154
  // The last space was at "lastSpace" which was "i - lastSpace" characters ago
155
155
  return {
156
156
  width: wrappedWidth || w,
157
- text: text.substr(0, i - (i - lastSpace)),
157
+ text: text.slice(0, lastSpace),
158
158
  end,
159
159
  chars,
160
160
  };
@@ -189,11 +189,7 @@ export class BitmapText extends DisplayObject {
189
189
  const line = lines[i]!;
190
190
  let output = '';
191
191
  for (let c = 0; c < line.length; c += 1) {
192
- if (data.chars[line.charCodeAt(c)]) {
193
- output = output.concat(line[c]!);
194
- } else {
195
- output = output.concat(replace);
196
- }
192
+ output = output.concat(data.chars[line.codePointAt(c) ?? 32] ? line[c]! : replace);
197
193
  }
198
194
  lines[i] = output;
199
195
  }
@@ -208,7 +204,7 @@ export class BitmapText extends DisplayObject {
208
204
  if (!data) {
209
205
  return;
210
206
  }
211
- let text = this.text;
207
+ let { text } = this;
212
208
  const scale = this._fontSize / data.size;
213
209
  const lines: BitmapTextLine[] = [];
214
210
  let y = 0;
@@ -222,7 +218,7 @@ export class BitmapText extends DisplayObject {
222
218
  }
223
219
  y += data.lineHeight * scale;
224
220
  text = text.slice(line.text.length + 1);
225
- end = line.end;
221
+ ({ end } = line);
226
222
  } while (!end);
227
223
  this.textHeight = y;
228
224
  let t = 0;
@@ -236,7 +232,7 @@ export class BitmapText extends DisplayObject {
236
232
  align = (this.textWidth - currentLine.width) / 2;
237
233
  }
238
234
  for (let c = 0; c < currentLine.text.length; c += 1) {
239
- let charCode = currentLine.text.charCodeAt(c);
235
+ let charCode = currentLine.text.codePointAt(c) ?? 32;
240
236
  let charData = data.chars[charCode];
241
237
  if (charData === undefined) {
242
238
  charCode = 32;
@@ -3,6 +3,7 @@ import { InputHandler } from '../core/input_handler.js';
3
3
  import { Signal } from '../core/signal.js';
4
4
  import { Image } from './image.js';
5
5
  import type { Game } from '../core/game.js';
6
+ import type { SignalListener } from '../core/signal.js';
6
7
 
7
8
  const STATE_OVER = 'Over';
8
9
  const STATE_OUT = 'Out';
@@ -45,8 +46,8 @@ export class Button extends Image {
45
46
  x = 0,
46
47
  y = 0,
47
48
  key: string | null = null,
48
- callback: Function | null = null,
49
- callbackContext: unknown | null = null,
49
+ callback: SignalListener | null = null,
50
+ callbackContext: unknown = null,
50
51
  overFrame: string | null = null,
51
52
  outFrame: string | null = null,
52
53
  downFrame: string | null = null,
@@ -48,13 +48,13 @@ export const renderGraphics = (graphics: Graphics, context: CanvasRenderingConte
48
48
  context.lineWidth = data.lineWidth;
49
49
  if (shape instanceof Polygon) {
50
50
  context.beginPath();
51
- const { points } = shape;
52
- context.moveTo(points[0], points[1]);
51
+ const points = shape.points as number[];
52
+ context.moveTo(points[0]!, points[1]!);
53
53
  for (let j = 1; j < points.length / 2; j += 1) {
54
- context.lineTo(points[j * 2], points[j * 2 + 1]);
54
+ context.lineTo(points[j * 2]!, points[j * 2 + 1]!);
55
55
  }
56
56
  if (shape.closed) {
57
- context.lineTo(points[0], points[1]);
57
+ context.lineTo(points[0]!, points[1]!);
58
58
  }
59
59
  // if the first and last point are the same close the path - much neater :)
60
60
  if (points[0] === points.at(-2) && points[1] === points.at(-1)) {
@@ -173,10 +173,10 @@ export const renderGraphicsMask = (graphics: Graphics, context: CanvasRenderingC
173
173
  const data = graphics.graphicsData[i]!;
174
174
  const { shape } = data;
175
175
  if (shape instanceof Polygon) {
176
- const { points } = shape;
177
- context.moveTo(points[0], points[1]);
176
+ const points = shape.points as number[];
177
+ context.moveTo(points[0]!, points[1]!);
178
178
  for (let j = 1; j < points.length / 2; j += 1) {
179
- context.lineTo(points[j * 2], points[j * 2 + 1]);
179
+ context.lineTo(points[j * 2]!, points[j * 2 + 1]!);
180
180
  }
181
181
  // if the first and last point are the same close the path - much neater :)
182
182
  if (points[0] === points.at(-2) && points[1] === points.at(-1)) {
@@ -97,19 +97,18 @@ export const create = (parent: any, width?: any, height?: any, skipPool = false)
97
97
  }
98
98
  const idx = getFirst();
99
99
  const pool = getPool();
100
- let canvas;
100
+ let entry;
101
101
  if (idx === -1 || skipPool) {
102
- const container = {
102
+ entry = {
103
103
  parent,
104
104
  canvas: document.createElement('canvas'),
105
105
  };
106
- pool.push(container);
107
- canvas = container.canvas;
106
+ pool.push(entry);
108
107
  } else {
109
- const entry = pool[idx]!;
108
+ entry = pool[idx]!;
110
109
  entry.parent = parent;
111
- canvas = entry.canvas;
112
110
  }
111
+ const { canvas } = entry;
113
112
  if (width !== undefined) {
114
113
  canvas.width = width;
115
114
  canvas.height = height;
@@ -37,7 +37,7 @@ export class CanvasRenderer {
37
37
  public contextLost!: any;
38
38
  public width!: number;
39
39
  public height!: number;
40
- public view!: any;
40
+ public view!: HTMLCanvasElement;
41
41
  public context!: CanvasRenderingContext2D;
42
42
  public refresh!: any;
43
43
  public count!: any;
@@ -59,7 +59,10 @@ export class CanvasRenderer {
59
59
  this.height = game.height * this.resolution;
60
60
  this.view = game.canvas;
61
61
  /** @type {CanvasRenderingContext2D} */
62
- this.context = this.view.getContext('2d', { willReadFrequently: false, alpha: this.transparent });
62
+ this.context = this.view.getContext('2d', {
63
+ willReadFrequently: false,
64
+ alpha: this.transparent,
65
+ }) as CanvasRenderingContext2D;
63
66
  if (!this.context) {
64
67
  throw new Error(ENGINE_ERROR_CREATING_CANVAS_2D_CONTEXT);
65
68
  }
@@ -107,8 +110,8 @@ export class CanvasRenderer {
107
110
  * @param {boolean} removeView - Whether to remove the view from the DOM.
108
111
  */
109
112
  public destroy(removeView = true): void {
110
- if (removeView && this.view.parent) {
111
- this.view.parent.removeChild(this.view);
113
+ if (removeView) {
114
+ this.view.remove();
112
115
  }
113
116
  }
114
117
 
@@ -14,7 +14,8 @@ import type { Image } from '../image.js';
14
14
  */
15
15
  export const getTintedTexture = (sprite: Image, color: number): HTMLCanvasElement => {
16
16
  const canvas = sprite.tintedTexture ?? create('CanvasTinter', 1, 1);
17
- globalThis.PhaserRegistry.CANVAS_TINT_METHOD(sprite.texture, color, canvas);
17
+ const tint = globalThis.PhaserRegistry.CANVAS_TINT_METHOD;
18
+ tint(sprite.texture, color, canvas);
18
19
  return canvas;
19
20
  };
20
21
 
@@ -91,22 +92,19 @@ export const tintWithPerPixel = (texture: Texture, color: number, canvas: HTMLCa
91
92
  crop.width,
92
93
  crop.height
93
94
  );
94
- const rgbValues = hex2rgb(color);
95
- const r = rgbValues[0];
96
- const g = rgbValues[1];
97
- const b = rgbValues[2];
95
+ const [r, g, b] = hex2rgb(color);
98
96
  const pixelData = context.getImageData(0, 0, crop.width, crop.height);
99
97
  const pixels = pixelData.data;
100
98
  for (let i = 0; i < pixels.length; i += 4) {
101
- pixels[i + 0] = pixels[i + 0]! * r;
102
- pixels[i + 1] = pixels[i + 1]! * g;
103
- pixels[i + 2] = pixels[i + 2]! * b;
99
+ pixels[i + 0]! *= r;
100
+ pixels[i + 1]! *= g;
101
+ pixels[i + 2]! *= b;
104
102
  const canHandleAlpha = globalThis.PhaserRegistry.CAN_CANVAS_HANDLE_ALPHA;
105
103
  if (!canHandleAlpha) {
106
104
  const alpha = pixels[i + 3]!;
107
- pixels[i + 0] = pixels[i + 0]! / (255 / alpha);
108
- pixels[i + 1] = pixels[i + 1]! / (255 / alpha);
109
- pixels[i + 2] = pixels[i + 2]! / (255 / alpha);
105
+ pixels[i + 0]! /= 255 / alpha;
106
+ pixels[i + 1]! /= 255 / alpha;
107
+ pixels[i + 2]! /= 255 / alpha;
110
108
  }
111
109
  }
112
110
  context.putImageData(pixelData, 0, 0);