melonjs 14.1.1 → 14.2.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 (240) hide show
  1. package/README.md +11 -7
  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 +7 -3
  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 +7 -3
  8. package/dist/melonjs.mjs/_virtual/make-built-in.js +10 -0
  9. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  10. package/dist/melonjs.mjs/_virtual/object-define-property.js +10 -0
  11. package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +10 -0
  12. package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +10 -0
  13. package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +10 -0
  14. package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +10 -0
  15. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  16. package/dist/melonjs.mjs/_virtual/shared.js +10 -0
  17. package/dist/melonjs.mjs/application/application.js +21 -14
  18. package/dist/melonjs.mjs/application/resize.js +119 -0
  19. package/dist/melonjs.mjs/audio/audio.js +1 -1
  20. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  21. package/dist/melonjs.mjs/entity/entity.js +1 -1
  22. package/dist/melonjs.mjs/game.js +1 -1
  23. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  24. package/dist/melonjs.mjs/geometries/line.js +1 -1
  25. package/dist/melonjs.mjs/geometries/path2d.js +3 -3
  26. package/dist/melonjs.mjs/geometries/point.js +1 -1
  27. package/dist/melonjs.mjs/geometries/poly.js +3 -3
  28. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  29. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  30. package/dist/melonjs.mjs/index.js +3 -34
  31. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  32. package/dist/melonjs.mjs/input/input.js +1 -1
  33. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  34. package/dist/melonjs.mjs/input/pointer.js +1 -1
  35. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  36. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  37. package/dist/melonjs.mjs/level/level.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  45. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  48. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  49. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  50. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  51. package/dist/melonjs.mjs/loader/loader.js +1 -1
  52. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  53. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  54. package/dist/melonjs.mjs/math/color.js +1 -1
  55. package/dist/melonjs.mjs/math/math.js +1 -1
  56. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  57. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  58. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  59. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  60. package/dist/melonjs.mjs/math/vector2.js +1 -1
  61. package/dist/melonjs.mjs/math/vector3.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +3 -2
  63. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +3 -2
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +3 -2
  66. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +13 -0
  67. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +13 -0
  68. package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +22 -0
  69. package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +21 -0
  70. package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +45 -0
  71. package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +19 -0
  72. package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +43 -0
  73. package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +32 -0
  74. package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +24 -0
  75. package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +17 -0
  76. package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +43 -0
  77. package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +23 -0
  78. package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +18 -0
  79. package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +18 -0
  80. package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +22 -0
  81. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +14 -0
  82. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +39 -0
  83. package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +18 -0
  84. package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +19 -0
  85. package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +72 -0
  86. package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +16 -0
  87. package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +19 -0
  88. package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +18 -0
  89. package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +29 -0
  90. package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +22 -0
  91. package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +22 -0
  92. package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +21 -0
  93. package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +25 -0
  94. package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +23 -0
  95. package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +10 -0
  96. package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +24 -0
  97. package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +28 -0
  98. package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +27 -0
  99. package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +88 -0
  100. package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +22 -0
  101. package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +34 -0
  102. package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +14 -0
  103. package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +22 -0
  104. package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +27 -0
  105. package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +18 -0
  106. package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +68 -0
  107. package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +19 -0
  108. package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +58 -0
  109. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +41 -0
  110. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +23 -0
  111. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +12 -0
  112. package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +14 -0
  113. package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +35 -0
  114. package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +23 -0
  115. package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +28 -0
  116. package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +31 -0
  117. package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +21 -0
  118. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +21 -0
  119. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +19 -0
  120. package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +24 -0
  121. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +22 -0
  122. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +28 -0
  123. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +22 -0
  124. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +45 -0
  125. package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +26 -0
  126. package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +23 -0
  127. package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +19 -0
  128. package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +20 -0
  129. package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +20 -0
  130. package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +20 -0
  131. package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +41 -0
  132. package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +21 -0
  133. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +19 -0
  134. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +19 -0
  135. package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +18 -0
  136. package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +20 -0
  137. package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +18 -0
  138. package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +24 -0
  139. package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +18 -0
  140. package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +41 -0
  141. package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +12 -0
  142. package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +18 -0
  143. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +22 -0
  144. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +19 -0
  145. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +19 -0
  146. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +22 -0
  147. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +4 -5
  148. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +3 -3
  149. package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +9 -0
  150. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +12 -0
  151. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3 -2
  152. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  153. package/dist/melonjs.mjs/particles/particle.js +1 -1
  154. package/dist/melonjs.mjs/particles/settings.js +1 -1
  155. package/dist/melonjs.mjs/physics/body.js +1 -1
  156. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  157. package/dist/melonjs.mjs/physics/collision.js +1 -1
  158. package/dist/melonjs.mjs/physics/detector.js +1 -5
  159. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  160. package/dist/melonjs.mjs/physics/response.js +1 -1
  161. package/dist/melonjs.mjs/physics/sat.js +1 -1
  162. package/dist/melonjs.mjs/physics/world.js +1 -1
  163. package/dist/melonjs.mjs/plugin/plugin.js +4 -4
  164. package/dist/melonjs.mjs/polyfill/console.js +18 -0
  165. package/dist/melonjs.mjs/polyfill/performance.js +27 -0
  166. package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +46 -0
  167. package/dist/melonjs.mjs/polyfill/roundrect.js +242 -0
  168. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  169. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  170. package/dist/melonjs.mjs/renderable/container.js +1 -1
  171. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  172. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  173. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  174. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  175. package/dist/melonjs.mjs/renderable/re_container.js +1016 -0
  176. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  177. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  178. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  179. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  180. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  181. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  182. package/dist/melonjs.mjs/state/stage.js +1 -1
  183. package/dist/melonjs.mjs/state/state.js +1 -1
  184. package/dist/melonjs.mjs/system/device.js +8 -8
  185. package/dist/melonjs.mjs/system/dom.js +3 -2
  186. package/dist/melonjs.mjs/system/event.js +1 -1
  187. package/dist/melonjs.mjs/system/platform.js +1 -1
  188. package/dist/melonjs.mjs/system/pooling.js +1 -1
  189. package/dist/melonjs.mjs/system/save.js +1 -1
  190. package/dist/melonjs.mjs/system/timer.js +1 -1
  191. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  192. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  193. package/dist/melonjs.mjs/text/glyph.js +1 -1
  194. package/dist/melonjs.mjs/text/text.js +1 -1
  195. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  196. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  197. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  198. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  199. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  200. package/dist/melonjs.mjs/utils/agent.js +1 -1
  201. package/dist/melonjs.mjs/utils/array.js +1 -1
  202. package/dist/melonjs.mjs/utils/file.js +1 -1
  203. package/dist/melonjs.mjs/utils/function.js +1 -1
  204. package/dist/melonjs.mjs/utils/string.js +1 -1
  205. package/dist/melonjs.mjs/utils/utils.js +4 -29
  206. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  207. package/dist/melonjs.mjs/video/renderer.js +19 -6
  208. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  209. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  210. package/dist/melonjs.mjs/video/texture/canvas_texture.js +20 -1
  211. package/dist/melonjs.mjs/video/utils/resize.js +116 -0
  212. package/dist/melonjs.mjs/video/video.js +20 -162
  213. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  214. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  215. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  216. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  217. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  218. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  219. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  220. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  221. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  222. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  223. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  224. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +1 -1
  225. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  226. package/dist/melonjs.module.js +23849 -22262
  227. package/dist/types/index.d.ts +108 -0
  228. package/package.json +20 -20
  229. package/src/application/application.js +20 -13
  230. package/src/input/pointerevent.js +5 -6
  231. package/src/physics/detector.js +0 -4
  232. package/src/plugin/plugin.js +1 -1
  233. package/src/system/device.js +7 -7
  234. package/src/system/dom.js +2 -1
  235. package/src/utils/utils.js +3 -28
  236. package/src/video/renderer.js +20 -7
  237. package/src/video/texture/canvas_texture.js +19 -0
  238. package/src/video/utils/resize.js +107 -0
  239. package/src/video/video.js +17 -159
  240. package/dist/melonjs.module.d.ts +0 -13959
package/README.md CHANGED
@@ -3,7 +3,6 @@ melonJS 2
3
3
  ![melonJS Logo](https://github.com/melonjs/melonJS/raw/master/media/Banner/Banner%20-%20Billboard%20-%20Original%20Logo%20-%20horizontal.png)
4
4
 
5
5
  [![Build Status](https://travis-ci.org/melonjs/melonJS.svg)](https://travis-ci.org/melonjs/melonJS)
6
- [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/melonjs/melonJS.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/melonjs/melonJS/context:javascript)
7
6
  [![Build Size](https://badgen.net/bundlephobia/min/melonjs)](https://bundlephobia.com/result?p=melonjs)
8
7
  [![NPM Package](https://img.shields.io/npm/v/melonjs)](https://www.npmjs.com/package/melonjs)
9
8
  [![jsDeliver](https://data.jsdelivr.com/v1/package/npm/melonjs/badge?style=rounded)](https://www.jsdelivr.com/package/npm/melonjs)
@@ -107,7 +106,7 @@ A few demos of melonJS capabilities :
107
106
  * [Platformer Demo](https://melonjs.github.io/examples/platformer/)
108
107
  * [Isometric Demo](https://melonjs.github.io/examples/isometric_rpg/)
109
108
  * [Sprite Demo](https://melonjs.github.io/examples/sprite/)
110
- * [Masking Demo](https://melonjs.github.io/examples/masking/)
109
+ * [Masking Demo](https://melonjs.github.io/examples/masking/) (WARNING: may potentially trigger seizures for people with photosensitive epilepsy)
111
110
  * [Primitive Drawing Demo](https://melonjs.github.io/examples/graphics/)
112
111
  * [UI Demo](https://melonjs.github.io/examples/UI/)
113
112
 
@@ -162,7 +161,7 @@ melonJS 2 now only provides an ES6 Bundle :
162
161
  | ------------------- | ----------- |
163
162
  | `melonjs.module.js` | the ES6 Module (ESM) Bundle |
164
163
  | `melonjs.mjs` | a tree-shakeable ES6 Module Directory |
165
- | `melonjs.module.d.ts` | typescript declaration file for the ES6 Module (ESM) Bundle |
164
+ | `types/index.d.ts` | typescript declaration files for the ES6 Module (ESM) Bundle |
166
165
 
167
166
  >Note: if you need your application to be compatible with ES5, refer to our [boilerplate](https://github.com/melonjs/es6-boilerplate) that provides automatic transpiling to ES5.
168
167
 
@@ -178,10 +177,10 @@ Or can simply be added to your html, using [jsDeliver](https://www.jsdelivr.com/
178
177
 
179
178
  ```html
180
179
  <!-- load the ES6 module bundle of melonJS v10.0 -->
181
- <script src="https://esm.run/melonjs@10.0"></script>
180
+ <script type="module" src="https://esm.run/melonjs@10.0"></script>
182
181
  <!-- omit the version completely to get the latest one -->
183
182
  <!-- you should NOT use this in production -->
184
- <script src="https://esm.run/melonjs"></script>
183
+ <script type="module" src="https://esm.run/melonjs"></script>
185
184
  ```
186
185
  > Note: starting from the 10.0.0 version, the debug plugin is no longer provided as part of the melonJS library release, and has been moved to the official [boilerplate](https://github.com/melonjs/es6-boilerplate)
187
186
 
@@ -204,8 +203,13 @@ Then build the melonJS source by running:
204
203
 
205
204
  The generated files will be available under the `build` directory :
206
205
  - `melonjs.module.js` : plain ES6 module
207
- - `melonjs.module.js` : a ES6 chunk directory used for tree-shaking
208
- - `melonjs.module.d.ts` : typescript declaration for the ES6 Module
206
+ - `melonjs.mjs` : a ES6 chunk directory used for tree-shaking
207
+
208
+ If you need to create the corresponding typing you can use the follwing :
209
+
210
+ $ npm run types
211
+
212
+ This will generate all the `.d.ts` file under the `dist/types` directory.
209
213
 
210
214
  To run the melonJS test suite simply use the following:
211
215
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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,10 +1,14 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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
6
6
  * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
- var earcut = {exports: {}};
8
+ var earcutExports = {};
9
+ var earcut = {
10
+ get exports(){ return earcutExports; },
11
+ set exports(v){ earcutExports = v; },
12
+ };
9
13
 
10
- export { earcut as e };
14
+ export { earcut as __module, earcutExports as exports };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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,10 +1,14 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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
6
6
  * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
- var eventemitter3 = {exports: {}};
8
+ var eventemitter3Exports = {};
9
+ var eventemitter3 = {
10
+ get exports(){ return eventemitter3Exports; },
11
+ set exports(v){ eventemitter3Exports = v; },
12
+ };
9
13
 
10
- export { eventemitter3 as e };
14
+ export { eventemitter3 as __module, eventemitter3Exports as exports };
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var makeBuiltIn = {exports: {}};
9
+
10
+ export { makeBuiltIn as m };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var objectDefineProperty = {};
9
+
10
+ export { objectDefineProperty as __exports };
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var objectGetOwnPropertyDescriptor = {};
9
+
10
+ export { objectGetOwnPropertyDescriptor as __exports };
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var objectGetOwnPropertyNames = {};
9
+
10
+ export { objectGetOwnPropertyNames as __exports };
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var objectGetOwnPropertySymbols = {};
9
+
10
+ export { objectGetOwnPropertySymbols as __exports };
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var objectPropertyIsEnumerable = {};
9
+
10
+ export { objectPropertyIsEnumerable as __exports };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.3
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ var shared = {exports: {}};
9
+
10
+ export { shared as s };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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
@@ -19,9 +19,15 @@ import World from '../physics/world.js';
19
19
  */
20
20
  class Application {
21
21
  constructor() {
22
+
23
+ /**
24
+ * the parent HTML element holding the main canvas of this application
25
+ * @type {HTMLElement}
26
+ */
27
+ this.parentElement = undefined;
28
+
22
29
  /**
23
- * a reference to the current active stage "default" camera
24
- * @public
30
+ * the active stage "default" camera
25
31
  * @type {Camera2d}
26
32
  */
27
33
  this.viewport = undefined;
@@ -29,7 +35,6 @@ import World from '../physics/world.js';
29
35
  /**
30
36
  * a reference to the game world, <br>
31
37
  * a world is a virtual environment containing all the game objects
32
- * @public
33
38
  * @type {World}
34
39
  */
35
40
  this.world = undefined;
@@ -37,7 +42,6 @@ import World from '../physics/world.js';
37
42
  /**
38
43
  * when true, all objects will be added under the root world container.<br>
39
44
  * When false, a `me.Container` object will be created for each corresponding groups
40
- * @public
41
45
  * @type {boolean}
42
46
  * @default true
43
47
  */
@@ -46,7 +50,6 @@ import World from '../physics/world.js';
46
50
  /**
47
51
  * Specify the property to be used when sorting renderables.
48
52
  * Accepted values : "x", "y", "z"
49
- * @public
50
53
  * @type {string}
51
54
  * @default "z"
52
55
  */
@@ -57,13 +60,17 @@ import World from '../physics/world.js';
57
60
  * Use this value to implement frame prediction in drawing events,
58
61
  * for creating smooth motion while running game update logic at
59
62
  * a lower fps.
60
- * @public
61
63
  * @type {DOMHighResTimeStamp}
62
- * @name lastUpdate
63
- * @memberof Application
64
64
  */
65
65
  this.lastUpdate = 0;
66
66
 
67
+ /**
68
+ * true when this app instance has been initialized
69
+ * @type {boolean}
70
+ * @default false
71
+ */
72
+ this.isInitialized = false;
73
+
67
74
  // to know when we have to refresh the display
68
75
  this.isDirty = true;
69
76
 
@@ -96,6 +103,7 @@ import World from '../physics/world.js';
96
103
  // set the reference to this application instance
97
104
  this.world.app = this;
98
105
  this.lastUpdate = globalThis.performance.now();
106
+ this.isInitialized = true;
99
107
  emit(GAME_INIT, this);
100
108
  }
101
109
 
@@ -147,12 +155,11 @@ import World from '../physics/world.js';
147
155
  }
148
156
 
149
157
  /**
150
- * Returns the parent container of the specified Child in the game world
151
- * @param {Renderable} child
152
- * @returns {Container}
158
+ * Returns the parent HTML Element holding the main canvas of this application
159
+ * @returns {HTMLElement}
153
160
  */
154
- getParentContainer(child) {
155
- return child.ancestor;
161
+ getParentElement() {
162
+ return this.parentElement;
156
163
  }
157
164
 
158
165
  /**
@@ -0,0 +1,119 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.2.0
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ import { getParentBounds, devicePixelRatio } from '../system/device.js';
9
+
10
+ /**
11
+ * scale the "displayed" canvas by the given scalar.
12
+ * this will modify the size of canvas element directly.
13
+ * Only use this if you are not using the automatic scaling feature.
14
+ * @param {Application} game - the game application instance triggering the resize
15
+ * @param {number} x - x scaling multiplier
16
+ * @param {number} y - y scaling multiplier
17
+ */
18
+ function scale(game, x, y) {
19
+ var renderer = game.renderer;
20
+ var canvas = renderer.getCanvas();
21
+ var context = renderer.getContext();
22
+ var settings = renderer.settings;
23
+ var pixelRatio = devicePixelRatio;
24
+
25
+ var w = settings.zoomX = canvas.width * x * pixelRatio;
26
+ var h = settings.zoomY = canvas.height * y * pixelRatio;
27
+
28
+ // update the global scale variable
29
+ renderer.scaleRatio.set(x * pixelRatio, y * pixelRatio);
30
+
31
+ // adjust CSS style based on device pixel ratio
32
+ canvas.style.width = (w / pixelRatio) + "px";
33
+ canvas.style.height = (h / pixelRatio) + "px";
34
+
35
+ // if anti-alias and blend mode were resetted (e.g. Canvas mode)
36
+ renderer.setAntiAlias(context, settings.antiAlias);
37
+ renderer.setBlendMode(settings.blendMode, context);
38
+
39
+ // force repaint
40
+ game.repaint();
41
+ }
42
+
43
+ /**
44
+ * callback for window resize event
45
+ * @param {Application} game - the game application instance triggering the resize
46
+ */
47
+ function onresize(game) {
48
+ var renderer = game.renderer;
49
+ var settings = renderer.settings;
50
+ var scaleX = 1, scaleY = 1;
51
+
52
+ if (settings.autoScale) {
53
+
54
+ // set max the canvas max size if CSS values are defined
55
+ var canvasMaxWidth = Infinity;
56
+ var canvasMaxHeight = Infinity;
57
+
58
+ if (globalThis.getComputedStyle) {
59
+ var style = globalThis.getComputedStyle(renderer.getCanvas(), null);
60
+ canvasMaxWidth = parseInt(style.maxWidth, 10) || Infinity;
61
+ canvasMaxHeight = parseInt(style.maxHeight, 10) || Infinity;
62
+ }
63
+
64
+ // get the maximum canvas size within the parent div containing the canvas container
65
+ var nodeBounds = getParentBounds(game.getParentElement());
66
+
67
+ var _max_width = Math.min(canvasMaxWidth, nodeBounds.width);
68
+ var _max_height = Math.min(canvasMaxHeight, nodeBounds.height);
69
+
70
+ // calculate final canvas width & height
71
+ var screenRatio = _max_width / _max_height;
72
+
73
+ if ((settings.scaleMethod === "fill-min" && screenRatio > renderer.designRatio) ||
74
+ (settings.scaleMethod === "fill-max" && screenRatio < renderer.designRatio) ||
75
+ (settings.scaleMethod === "flex-width")
76
+ ) {
77
+ // resize the display canvas to fill the parent container
78
+ var sWidth = Math.min(canvasMaxWidth, settings.height * screenRatio);
79
+ scaleX = scaleY = _max_width / sWidth;
80
+ renderer.resize(Math.floor(sWidth), settings.height);
81
+ }
82
+ else if ((settings.scaleMethod === "fill-min" && screenRatio < renderer.designRatio) ||
83
+ (settings.scaleMethod === "fill-max" && screenRatio > renderer.designRatio) ||
84
+ (settings.scaleMethod === "flex-height")
85
+ ) {
86
+ // resize the display canvas to fill the parent container
87
+ var sHeight = Math.min(canvasMaxHeight, settings.width * (_max_height / _max_width));
88
+ scaleX = scaleY = _max_height / sHeight;
89
+ renderer.resize(settings.width, Math.floor(sHeight));
90
+ }
91
+ else if (settings.scaleMethod === "flex") {
92
+ // resize the display canvas to fill the parent container
93
+ renderer.resize(Math.floor(_max_width), Math.floor(_max_height));
94
+ }
95
+ else if (settings.scaleMethod === "stretch") {
96
+ // scale the display canvas to fit with the parent container
97
+ scaleX = _max_width / settings.width;
98
+ scaleY = _max_height / settings.height;
99
+ }
100
+ else {
101
+ // scale the display canvas to fit the parent container
102
+ // make sure we maintain the original aspect ratio
103
+ if (screenRatio < renderer.designRatio) {
104
+ scaleX = scaleY = _max_width / settings.width;
105
+ }
106
+ else {
107
+ scaleX = scaleY = _max_height / settings.height;
108
+ }
109
+ }
110
+
111
+ // adjust scaling ratio based on the new scaling ratio
112
+ scale(game, scaleX, scaleY);
113
+ } else {
114
+ // adjust scaling ratio based on the given settings
115
+ scale(game, settings.scale, settings.scale);
116
+ }
117
+ }
118
+
119
+ export { onresize };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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
@@ -8,7 +8,7 @@
8
8
  import pool from '../system/pooling.js';
9
9
  import { TAU } from '../math/math.js';
10
10
  import '../node_modules/earcut/src/earcut.js';
11
- import { e as earcut } from '../_virtual/earcut.js';
11
+ import { exports as earcutExports } from '../_virtual/earcut.js';
12
12
 
13
13
  /**
14
14
  * @classdesc
@@ -76,7 +76,7 @@ import { e as earcut } from '../_virtual/earcut.js';
76
76
  var i = 0;
77
77
  var points = this.points;
78
78
  var vertices = this.vertices;
79
- var indices = earcut.exports(points.flatMap(p => [p.x, p.y]));
79
+ var indices = earcutExports(points.flatMap(p => [p.x, p.y]));
80
80
 
81
81
  // calculate all vertices
82
82
  for (i = 0; i < indices.length; i++ ) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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
@@ -8,7 +8,7 @@
8
8
  import '../node_modules/earcut/src/earcut.js';
9
9
  import Vector2d from '../math/vector2.js';
10
10
  import pool from '../system/pooling.js';
11
- import { e as earcut } from '../_virtual/earcut.js';
11
+ import { exports as earcutExports } from '../_virtual/earcut.js';
12
12
 
13
13
  /**
14
14
  * @classdesc
@@ -284,7 +284,7 @@ import { e as earcut } from '../_virtual/earcut.js';
284
284
  */
285
285
  getIndices() {
286
286
  if (this.indices.length === 0) {
287
- this.indices = earcut.exports(this.points.flatMap(p => [p.x, p.y]));
287
+ this.indices = earcutExports(this.points.flatMap(p => [p.x, p.y]));
288
288
  }
289
289
  return this.indices;
290
290
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.1
2
+ * melonJS Game Engine - v14.2.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.1.1
2
+ * melonJS Game Engine - v14.2.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