melonjs 14.4.0 → 14.5.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 (207) hide show
  1. package/README.md +11 -55
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  7. package/dist/melonjs.mjs/_virtual/index2.js +1 -1
  8. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  9. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  10. package/dist/melonjs.mjs/application/application.js +1 -1
  11. package/dist/melonjs.mjs/application/header.js +1 -1
  12. package/dist/melonjs.mjs/application/resize.js +1 -1
  13. package/dist/melonjs.mjs/application/settings.js +1 -1
  14. package/dist/melonjs.mjs/audio/audio.js +4 -4
  15. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  16. package/dist/melonjs.mjs/const.js +1 -1
  17. package/dist/melonjs.mjs/entity/entity.js +43 -9
  18. package/dist/melonjs.mjs/geometries/ellipse.js +2 -3
  19. package/dist/melonjs.mjs/geometries/line.js +1 -1
  20. package/dist/melonjs.mjs/geometries/path2d.js +18 -42
  21. package/dist/melonjs.mjs/geometries/point.js +1 -6
  22. package/dist/melonjs.mjs/geometries/poly.js +2 -5
  23. package/dist/melonjs.mjs/geometries/rectangle.js +13 -9
  24. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  25. package/dist/melonjs.mjs/index.js +8 -6
  26. package/dist/melonjs.mjs/input/gamepad.js +10 -16
  27. package/dist/melonjs.mjs/input/input.js +1 -1
  28. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  29. package/dist/melonjs.mjs/input/pointer.js +1 -1
  30. package/dist/melonjs.mjs/input/pointerevent.js +2 -16
  31. package/dist/melonjs.mjs/lang/console.js +1 -1
  32. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  33. package/dist/melonjs.mjs/level/level.js +3 -3
  34. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -8
  36. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +8 -4
  39. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +5 -5
  40. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  45. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  48. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  49. package/dist/melonjs.mjs/loader/cache.js +24 -0
  50. package/dist/melonjs.mjs/loader/loader.js +331 -716
  51. package/dist/melonjs.mjs/loader/loadingscreen.js +4 -4
  52. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  53. package/dist/melonjs.mjs/loader/parser.js +281 -0
  54. package/dist/melonjs.mjs/loader/settings.js +91 -0
  55. package/dist/melonjs.mjs/math/color.js +1 -1
  56. package/dist/melonjs.mjs/math/math.js +1 -1
  57. package/dist/melonjs.mjs/math/matrix2.js +7 -9
  58. package/dist/melonjs.mjs/math/matrix3.js +18 -21
  59. package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
  60. package/dist/melonjs.mjs/math/observable_vector3.js +3 -4
  61. package/dist/melonjs.mjs/math/vector2.js +3 -3
  62. package/dist/melonjs.mjs/math/vector3.js +3 -4
  63. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
  66. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
  67. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  68. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  69. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  70. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  71. package/dist/melonjs.mjs/particles/emitter.js +3 -3
  72. package/dist/melonjs.mjs/particles/particle.js +1 -1
  73. package/dist/melonjs.mjs/particles/settings.js +1 -1
  74. package/dist/melonjs.mjs/physics/body.js +18 -14
  75. package/dist/melonjs.mjs/physics/bounds.js +18 -70
  76. package/dist/melonjs.mjs/physics/collision.js +1 -1
  77. package/dist/melonjs.mjs/physics/detector.js +1 -1
  78. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  79. package/dist/melonjs.mjs/physics/response.js +1 -1
  80. package/dist/melonjs.mjs/physics/sat.js +1 -1
  81. package/dist/melonjs.mjs/physics/world.js +1 -1
  82. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  83. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  84. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  85. package/dist/melonjs.mjs/renderable/container.js +25 -19
  86. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  87. package/dist/melonjs.mjs/renderable/imagelayer.js +7 -1
  88. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  89. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  90. package/dist/melonjs.mjs/renderable/renderable.js +126 -105
  91. package/dist/melonjs.mjs/renderable/sprite.js +33 -54
  92. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  93. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  94. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  95. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  96. package/dist/melonjs.mjs/state/stage.js +1 -1
  97. package/dist/melonjs.mjs/state/state.js +2 -2
  98. package/dist/melonjs.mjs/system/device.js +1 -1
  99. package/dist/melonjs.mjs/system/dom.js +1 -1
  100. package/dist/melonjs.mjs/system/event.js +1 -1
  101. package/dist/melonjs.mjs/system/platform.js +1 -1
  102. package/dist/melonjs.mjs/system/pooling.js +8 -18
  103. package/dist/melonjs.mjs/system/save.js +1 -1
  104. package/dist/melonjs.mjs/system/timer.js +1 -1
  105. package/dist/melonjs.mjs/text/bitmaptext.js +66 -8
  106. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  107. package/dist/melonjs.mjs/text/glyph.js +1 -1
  108. package/dist/melonjs.mjs/text/text.js +1 -1
  109. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  110. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  111. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  112. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  113. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  114. package/dist/melonjs.mjs/utils/agent.js +1 -1
  115. package/dist/melonjs.mjs/utils/array.js +1 -1
  116. package/dist/melonjs.mjs/utils/file.js +1 -1
  117. package/dist/melonjs.mjs/utils/function.js +1 -1
  118. package/dist/melonjs.mjs/utils/string.js +2 -2
  119. package/dist/melonjs.mjs/utils/utils.js +2 -4
  120. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  121. package/dist/melonjs.mjs/video/renderer.js +1 -1
  122. package/dist/melonjs.mjs/video/texture/atlas.js +10 -9
  123. package/dist/melonjs.mjs/video/texture/cache.js +3 -3
  124. package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
  125. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  126. package/dist/melonjs.mjs/video/video.js +2 -2
  127. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +235 -0
  129. package/{src/video/webgl → dist/melonjs.mjs/video/webgl/compositors}/webgl_compositor.js +28 -205
  130. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  138. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  139. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +2 -2
  141. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +2 -2
  142. package/dist/melonjs.module.js +17844 -17809
  143. package/dist/types/entity/entity.d.ts +2 -2
  144. package/dist/types/geometries/path2d.d.ts +5 -31
  145. package/dist/types/geometries/point.d.ts +2 -7
  146. package/dist/types/geometries/poly.d.ts +0 -1
  147. package/dist/types/index.d.ts +2 -2
  148. package/dist/types/loader/cache.d.ts +7 -0
  149. package/dist/types/loader/loader.d.ts +166 -181
  150. package/dist/types/loader/parser.d.ts +41 -0
  151. package/dist/types/loader/settings.d.ts +57 -0
  152. package/dist/types/particles/emitter.d.ts +4 -4
  153. package/dist/types/physics/bounds.d.ts +29 -84
  154. package/dist/types/renderable/container.d.ts +0 -11
  155. package/dist/types/renderable/renderable.d.ts +37 -31
  156. package/dist/types/renderable/sprite.d.ts +3 -3
  157. package/dist/types/state/state.d.ts +1 -1
  158. package/dist/types/system/pooling.d.ts +2 -2
  159. package/dist/types/video/renderer.d.ts +1 -1
  160. package/dist/types/video/webgl/compositors/compositor.d.ts +101 -0
  161. package/dist/types/video/webgl/compositors/webgl_compositor.d.ts +86 -0
  162. package/dist/types/video/webgl/webgl_compositor.d.ts +2 -3
  163. package/dist/types/video/webgl/webgl_renderer.d.ts +1 -1
  164. package/package.json +16 -15
  165. package/src/audio/audio.js +3 -3
  166. package/src/entity/entity.js +42 -8
  167. package/src/geometries/ellipse.js +1 -2
  168. package/src/geometries/path2d.js +17 -41
  169. package/src/geometries/point.js +0 -5
  170. package/src/geometries/poly.js +1 -4
  171. package/src/geometries/rectangle.js +12 -8
  172. package/src/index.js +2 -2
  173. package/src/input/gamepad.js +9 -15
  174. package/src/input/pointerevent.js +1 -15
  175. package/src/level/level.js +2 -2
  176. package/src/level/tiled/TMXLayer.js +0 -7
  177. package/src/level/tiled/TMXTileMap.js +7 -3
  178. package/src/level/tiled/TMXTileset.js +4 -4
  179. package/src/loader/cache.js +16 -0
  180. package/src/loader/loader.js +339 -711
  181. package/src/loader/loadingscreen.js +3 -3
  182. package/src/loader/parser.js +279 -0
  183. package/src/loader/settings.js +85 -0
  184. package/src/math/matrix2.js +6 -8
  185. package/src/math/matrix3.js +17 -20
  186. package/src/math/observable_vector2.js +2 -2
  187. package/src/math/observable_vector3.js +2 -3
  188. package/src/math/vector2.js +2 -2
  189. package/src/math/vector3.js +2 -3
  190. package/src/particles/emitter.js +2 -2
  191. package/src/physics/body.js +17 -13
  192. package/src/physics/bounds.js +17 -69
  193. package/src/renderable/container.js +24 -18
  194. package/src/renderable/imagelayer.js +6 -0
  195. package/src/renderable/renderable.js +125 -104
  196. package/src/renderable/sprite.js +32 -53
  197. package/src/state/state.js +1 -1
  198. package/src/system/pooling.js +7 -17
  199. package/src/text/bitmaptext.js +65 -7
  200. package/src/utils/string.js +1 -1
  201. package/src/utils/utils.js +1 -3
  202. package/src/video/texture/atlas.js +9 -8
  203. package/src/video/texture/cache.js +2 -2
  204. package/src/video/video.js +1 -1
  205. package/src/video/webgl/compositors/compositor.js +227 -0
  206. package/src/video/webgl/compositors/webgl_compositor.js +300 -0
  207. package/src/video/webgl/webgl_renderer.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -35,14 +35,14 @@ class ObjectPool {
35
35
  * @param {boolean} [recycling=false] - enables object recycling for the specified class
36
36
  * @example
37
37
  * // implement CherryEntity
38
- * class CherryEntity extends Spritesheet {
38
+ * class Cherry extends Sprite {
39
39
  * onResetEvent() {
40
40
  * // reset object mutable properties
41
41
  * this.lifeBar = 100;
42
42
  * }
43
43
  * };
44
44
  * // add our users defined entities in the object pool and enable object recycling
45
- * me.pool.register("cherryentity", CherryEntity, true);
45
+ * me.pool.register("cherrysprite", Cherry, true);
46
46
  */
47
47
  register(className, classObj, recycling = false) {
48
48
  if (typeof (classObj) !== "undefined") {
@@ -76,11 +76,7 @@ class ObjectPool {
76
76
  * me.game.world.removeChild(enemy);
77
77
  * me.game.world.removeChild(bullet);
78
78
  */
79
- pull(name) {
80
- var args = new Array(arguments.length);
81
- for (var i = 0; i < arguments.length; i++) {
82
- args[i] = arguments[i];
83
- }
79
+ pull(name, ...args) {
84
80
  var className = this.objectClass[name];
85
81
  if (className) {
86
82
  var proto = className["class"],
@@ -88,18 +84,12 @@ class ObjectPool {
88
84
  obj;
89
85
 
90
86
  if (poolArray && ((obj = poolArray.pop()))) {
91
- // pull an existing instance from the pool
92
- args.shift();
93
- // call the object onResetEvent function if defined
94
- if (typeof(obj.onResetEvent) === "function") {
95
- obj.onResetEvent.apply(obj, args);
96
- }
87
+ // poolable object must implement a `onResetEvent` method
88
+ obj.onResetEvent.apply(obj, args);
97
89
  this.instance_counter--;
98
- }
99
- else {
90
+ } else {
100
91
  // create a new instance
101
- args[0] = proto;
102
- obj = new (proto.bind.apply(proto, args))();
92
+ obj = new (proto.bind.apply(proto, [ proto, ...args ]))();
103
93
  if (poolArray) {
104
94
  obj.className = name;
105
95
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import Color from '../math/color.js';
9
9
  import pool from '../system/pooling.js';
10
- import loader from '../loader/loader.js';
10
+ import { getImage, getBinary } from '../loader/loader.js';
11
11
  import Renderable from '../renderable/renderable.js';
12
12
  import TextMetrics from './textmetrics.js';
13
13
 
@@ -102,7 +102,7 @@ import TextMetrics from './textmetrics.js';
102
102
  * font image
103
103
  * @private
104
104
  */
105
- this.fontImage = (typeof settings.font === "object") ? settings.font : loader.getImage(settings.font);
105
+ this.fontImage = (typeof settings.font === "object") ? settings.font : getImage(settings.font);
106
106
 
107
107
  if (typeof settings.fontData !== "string") {
108
108
  /**
@@ -110,11 +110,11 @@ import TextMetrics from './textmetrics.js';
110
110
  * @private
111
111
  */
112
112
  // use settings.font to retreive the data from the loader
113
- this.fontData = pool.pull("BitmapTextData", loader.getBinary(settings.font));
113
+ this.fontData = pool.pull("BitmapTextData", getBinary(settings.font));
114
114
  } else {
115
115
  this.fontData = pool.pull("BitmapTextData",
116
116
  // if starting/includes "info face" the whole data string was passed as parameter
117
- (settings.fontData.includes("info face")) ? settings.fontData : loader.getBinary(settings.fontData)
117
+ (settings.fontData.includes("info face")) ? settings.fontData : getBinary(settings.fontData)
118
118
  );
119
119
  }
120
120
 
@@ -183,11 +183,70 @@ import TextMetrics from './textmetrics.js';
183
183
  this._text = this.metrics.wordWrap(this._text, this.wordWrapWidth);
184
184
  }
185
185
 
186
- this.getBounds().addBounds(this.metrics.measureText(this._text), true);
186
+ this.updateBounds();
187
187
 
188
188
  return this;
189
189
  }
190
190
 
191
+ /**
192
+ * update the bounding box for this Bitmap Text.
193
+ * @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
194
+ * @returns {Bounds} this Bitmap Text bounding box Rectangle object
195
+ */
196
+ updateBounds(absolute = true) {
197
+ var bounds = this.getBounds();
198
+
199
+ bounds.clear();
200
+
201
+ if (typeof this.metrics !== "undefined") {
202
+ var ax, ay;
203
+
204
+ bounds.addBounds(this.metrics.measureText(this._text));
205
+
206
+ switch (this.textAlign) {
207
+ case "right":
208
+ ax = this.metrics.width * 1.0;
209
+ break;
210
+
211
+ case "center":
212
+ ax = this.metrics.width * 0.5;
213
+ break;
214
+
215
+ default :
216
+ ax = this.metrics.width * 0.0;
217
+ break;
218
+ }
219
+
220
+ // adjust y pos based on alignment value
221
+ switch (this.textBaseline) {
222
+ case "middle":
223
+ ay = this.metrics.height * 0.5;
224
+ break;
225
+
226
+ case "ideographic":
227
+ case "alphabetic":
228
+ case "bottom":
229
+ ay = this.metrics.height * 1.0;
230
+ break;
231
+
232
+ default :
233
+ ay = this.metrics.height * 0.0;
234
+ break;
235
+ }
236
+
237
+ // translate the bounds accordingly
238
+ bounds.translate(ax, ay);
239
+ }
240
+
241
+ if (absolute === true) {
242
+ if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
243
+ bounds.translate(this.ancestor.getAbsolutePosition());
244
+ }
245
+ }
246
+
247
+ return bounds;
248
+ }
249
+
191
250
  /**
192
251
  * defines the color used to tint the bitmap text
193
252
  * @public
@@ -214,9 +273,8 @@ import TextMetrics from './textmetrics.js';
214
273
  resize(scale) {
215
274
  this.fontScale.set(scale, scale);
216
275
 
217
- this.getBounds().addBounds(this.metrics.measureText(this._text), true);
276
+ this.updateBounds();
218
277
 
219
- // clear the cache text to recalculate bounds
220
278
  this.isDirty = true;
221
279
 
222
280
  return this;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -34,7 +34,7 @@ function isNumeric(str) {
34
34
  if (typeof str === "string") {
35
35
  str = str.trim();
36
36
  }
37
- return !isNaN(str) && /[+-]?([0-9]*[.])?[0-9]+/.test(str);
37
+ return !isNaN(str) && /^[+-]?(\d+(\.\d+)?|\.\d+)$/.test(str);
38
38
  }
39
39
 
40
40
  /**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -107,9 +107,7 @@ var utils = {
107
107
  }
108
108
 
109
109
  // parse the url
110
- url.slice(1).split("&").filter((value) => {
111
- return (value !== "");
112
- }).forEach((value) => {
110
+ url.slice(1).split("&").filter((value) => value !== "").forEach((value) => {
113
111
  var kv = value.split("=");
114
112
  var k = kv.shift();
115
113
  var v = kv.join("=");
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -11,7 +11,7 @@ import TextureCache from './cache.js';
11
11
  import Sprite from '../../renderable/sprite.js';
12
12
  import { renderer } from '../video.js';
13
13
  import pool from '../../system/pooling.js';
14
- import loader from '../../loader/loader.js';
14
+ import { getImage } from '../../loader/loader.js';
15
15
  import { ETA } from '../../math/math.js';
16
16
 
17
17
  /**
@@ -105,7 +105,7 @@ class TextureAtlas {
105
105
  // set the texture
106
106
  if (typeof(src) === "undefined") {
107
107
  // get the texture name from the atlas meta data
108
- var image = loader.getImage(atlas.meta.image);
108
+ var image = getImage(atlas.meta.image);
109
109
  if (!image) {
110
110
  throw new Error(
111
111
  "Atlas texture '" + image + "' not found"
@@ -113,7 +113,7 @@ class TextureAtlas {
113
113
  }
114
114
  this.sources.set(atlas.meta.image, image);
115
115
  } else {
116
- this.sources.set(atlas.meta.image || "default", typeof src === "string" ? loader.getImage(src) : src);
116
+ this.sources.set(atlas.meta.image || "default", typeof src === "string" ? getImage(src) : src);
117
117
  }
118
118
  this.repeat = "no-repeat";
119
119
  }
@@ -127,13 +127,13 @@ class TextureAtlas {
127
127
  }
128
128
  this.format = "ShoeBox";
129
129
  this.repeat = "no-repeat";
130
- this.sources.set("default", typeof src === "string" ? loader.getImage(src) : src);
130
+ this.sources.set("default", typeof src === "string" ? getImage(src) : src);
131
131
  }
132
132
  // Internal texture atlas
133
133
  else if (atlas.meta.app.includes("melonJS")) {
134
134
  this.format = "melonJS";
135
135
  this.repeat = atlas.meta.repeat || "no-repeat";
136
- this.sources.set("default", typeof src === "string" ? loader.getImage(src) : src);
136
+ this.sources.set("default", typeof src === "string" ? getImage(src) : src);
137
137
  }
138
138
  // initialize the atlas
139
139
  this.atlases.set(atlas.meta.image || "default", this.parse(atlas));
@@ -147,7 +147,7 @@ class TextureAtlas {
147
147
 
148
148
  if (typeof(src) !== "undefined") {
149
149
  // overwrite if specified
150
- atlas.image = typeof src === "string" ? loader.getImage(src) : src;
150
+ atlas.image = typeof src === "string" ? getImage(src) : src;
151
151
  }
152
152
  // initialize the atlas
153
153
  this.atlases.set("default", this.parseFromSpriteSheet(atlas));
@@ -353,12 +353,13 @@ class TextureAtlas {
353
353
  region = this.getAtlas(atlas)[name];
354
354
  } else {
355
355
  // look for the given region in each existing atlas
356
- this.atlases.forEach((atlas) => {
356
+ for (let atlas of this.atlases.values()) {
357
357
  if (typeof atlas[name] !== "undefined") {
358
358
  // there should be only one
359
359
  region = atlas[name];
360
+ break;
360
361
  }
361
- });
362
+ }
362
363
  }
363
364
  return region;
364
365
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -64,8 +64,8 @@ class TextureCache {
64
64
  } else {
65
65
  // manage cases where a specific atlas is specified
66
66
  this.cache.forEach((value, key) => {
67
- var _atlas = value.getAtlas();
68
- if (key === image && _atlas[0].width === atlas.framewidth && _atlas[0].height === atlas.frameheight) {
67
+ var _atlas = value.getAtlas()[0];
68
+ if (key === image && _atlas.width === atlas.framewidth && _atlas.height === atlas.frameheight) {
69
69
  entry = value;
70
70
  }
71
71
  });
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -94,7 +94,7 @@ function init(width, height, options) {
94
94
  // initialize the default game Application with the given options
95
95
  game.init(width, height, options);
96
96
  } catch (e) {
97
- console(e.message);
97
+ console.log(e.message);
98
98
  // me.video.init() historically returns false if failing at creating/using a HTML5 canvas
99
99
  return false;
100
100
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.4.0
2
+ * melonJS Game Engine - v14.5.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license