melonjs 15.2.1 → 15.4.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 (291) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +75 -23
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +13 -11
  9. package/dist/melonjs.mjs/application/settings.js +37 -1
  10. package/dist/melonjs.mjs/audio/audio.js +4 -6
  11. package/dist/melonjs.mjs/camera/camera2d.js +12 -14
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/entity/entity.js +3 -4
  14. package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
  15. package/dist/melonjs.mjs/geometries/line.js +18 -25
  16. package/dist/melonjs.mjs/geometries/path2d.js +16 -13
  17. package/dist/melonjs.mjs/geometries/point.js +8 -16
  18. package/dist/melonjs.mjs/geometries/poly.js +40 -97
  19. package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
  20. package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
  21. package/dist/melonjs.mjs/index.js +6 -6
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +3 -3
  25. package/dist/melonjs.mjs/input/pointer.js +4 -4
  26. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +1 -1
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parser.js +4 -5
  50. package/dist/melonjs.mjs/loader/settings.js +1 -1
  51. package/dist/melonjs.mjs/math/color.js +5 -5
  52. package/dist/melonjs.mjs/math/math.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix2.js +5 -59
  54. package/dist/melonjs.mjs/math/matrix3.js +82 -141
  55. package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
  56. package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
  57. package/dist/melonjs.mjs/math/vector2.js +7 -91
  58. package/dist/melonjs.mjs/math/vector3.js +6 -90
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  65. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  66. package/dist/melonjs.mjs/particles/particle.js +2 -2
  67. package/dist/melonjs.mjs/particles/settings.js +1 -1
  68. package/dist/melonjs.mjs/physics/body.js +22 -20
  69. package/dist/melonjs.mjs/physics/bounds.js +27 -33
  70. package/dist/melonjs.mjs/physics/collision.js +5 -5
  71. package/dist/melonjs.mjs/physics/detector.js +10 -10
  72. package/dist/melonjs.mjs/physics/quadtree.js +5 -5
  73. package/dist/melonjs.mjs/physics/response.js +1 -1
  74. package/dist/melonjs.mjs/physics/sat.js +3 -4
  75. package/dist/melonjs.mjs/physics/world.js +6 -9
  76. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  77. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  78. package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
  79. package/dist/melonjs.mjs/renderable/container.js +25 -25
  80. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  81. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  82. package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
  83. package/dist/melonjs.mjs/renderable/light2d.js +3 -3
  84. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  85. package/dist/melonjs.mjs/renderable/renderable.js +31 -39
  86. package/dist/melonjs.mjs/renderable/sprite.js +3 -3
  87. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
  88. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
  89. package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
  90. package/dist/melonjs.mjs/renderable/text/text.js +422 -0
  91. package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
  92. package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
  93. package/dist/melonjs.mjs/renderable/trigger.js +10 -10
  94. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
  95. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
  96. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
  97. package/dist/melonjs.mjs/state/stage.js +13 -14
  98. package/dist/melonjs.mjs/state/state.js +4 -51
  99. package/dist/melonjs.mjs/system/device.js +51 -10
  100. package/dist/melonjs.mjs/system/dom.js +1 -1
  101. package/dist/melonjs.mjs/system/event.js +46 -2
  102. package/dist/melonjs.mjs/system/platform.js +18 -18
  103. package/dist/melonjs.mjs/system/pooling.js +10 -10
  104. package/dist/melonjs.mjs/system/save.js +1 -1
  105. package/dist/melonjs.mjs/system/timer.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  107. package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
  108. package/dist/melonjs.mjs/text/glyph.js +1 -1
  109. package/dist/melonjs.mjs/text/text.js +1 -1
  110. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  111. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  112. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  113. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  114. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  115. package/dist/melonjs.mjs/utils/agent.js +1 -1
  116. package/dist/melonjs.mjs/utils/array.js +1 -1
  117. package/dist/melonjs.mjs/utils/file.js +1 -1
  118. package/dist/melonjs.mjs/utils/function.js +2 -3
  119. package/dist/melonjs.mjs/utils/string.js +1 -1
  120. package/dist/melonjs.mjs/utils/utils.js +1 -1
  121. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -18
  122. package/dist/melonjs.mjs/video/renderer.js +17 -30
  123. package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
  124. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  125. package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
  126. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  127. package/dist/melonjs.mjs/video/video.js +5 -29
  128. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  129. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
  130. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  131. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
  132. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  133. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  138. package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
  139. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +62 -67
  143. package/dist/melonjs.module.js +1272 -1713
  144. package/dist/types/application/application.d.ts +32 -31
  145. package/dist/types/application/header.d.ts +2 -2
  146. package/dist/types/application/settings.d.ts +80 -16
  147. package/dist/types/audio/audio.d.ts +4 -6
  148. package/dist/types/camera/camera2d.d.ts +13 -16
  149. package/dist/types/entity/entity.d.ts +0 -1
  150. package/dist/types/geometries/ellipse.d.ts +18 -50
  151. package/dist/types/geometries/path2d.d.ts +1 -1
  152. package/dist/types/geometries/point.d.ts +5 -13
  153. package/dist/types/geometries/poly.d.ts +26 -75
  154. package/dist/types/geometries/rectangle.d.ts +12 -58
  155. package/dist/types/geometries/roundrect.d.ts +2 -11
  156. package/dist/types/index.d.ts +3 -3
  157. package/dist/types/input/gamepad.d.ts +31 -31
  158. package/dist/types/input/keyboard.d.ts +105 -105
  159. package/dist/types/input/pointer.d.ts +21 -21
  160. package/dist/types/input/pointerevent.d.ts +6 -6
  161. package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
  162. package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
  163. package/dist/types/math/matrix2.d.ts +9 -63
  164. package/dist/types/math/matrix3.d.ts +9 -68
  165. package/dist/types/math/observable_vector2.d.ts +2 -2
  166. package/dist/types/math/observable_vector3.d.ts +2 -2
  167. package/dist/types/math/vector2.d.ts +8 -92
  168. package/dist/types/math/vector3.d.ts +8 -92
  169. package/dist/types/particles/settings.d.ts +29 -29
  170. package/dist/types/physics/body.d.ts +10 -8
  171. package/dist/types/physics/bounds.d.ts +24 -30
  172. package/dist/types/physics/collision.d.ts +12 -12
  173. package/dist/types/physics/detector.d.ts +1 -1
  174. package/dist/types/physics/world.d.ts +4 -7
  175. package/dist/types/renderable/container.d.ts +19 -19
  176. package/dist/types/renderable/imagelayer.d.ts +6 -6
  177. package/dist/types/renderable/light2d.d.ts +7 -7
  178. package/dist/types/renderable/renderable.d.ts +10 -18
  179. package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
  180. package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
  181. package/dist/types/renderable/text/glyph.d.ts +28 -0
  182. package/dist/types/renderable/text/text.d.ts +159 -0
  183. package/dist/types/renderable/text/textmetrics.d.ts +47 -0
  184. package/dist/types/renderable/text/textstyle.d.ts +5 -0
  185. package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
  186. package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
  187. package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
  188. package/dist/types/state/stage.d.ts +3 -2
  189. package/dist/types/state/state.d.ts +11 -11
  190. package/dist/types/system/device.d.ts +16 -9
  191. package/dist/types/system/event.d.ts +40 -0
  192. package/dist/types/system/platform.d.ts +17 -17
  193. package/dist/types/utils/function.d.ts +1 -2
  194. package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
  195. package/dist/types/video/renderer.d.ts +16 -43
  196. package/dist/types/video/texture/canvas_texture.d.ts +14 -14
  197. package/dist/types/video/video.d.ts +4 -38
  198. package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
  199. package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
  200. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
  201. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
  202. package/dist/types/video/webgl/utils/precision.d.ts +1 -1
  203. package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
  204. package/package.json +15 -15
  205. package/src/application/application.js +73 -21
  206. package/src/application/header.js +1 -1
  207. package/src/application/resize.js +11 -9
  208. package/src/application/settings.js +36 -0
  209. package/src/audio/audio.js +3 -5
  210. package/src/camera/camera2d.js +11 -13
  211. package/src/entity/entity.js +2 -3
  212. package/src/geometries/ellipse.js +25 -58
  213. package/src/geometries/line.js +17 -24
  214. package/src/geometries/path2d.js +15 -12
  215. package/src/geometries/point.js +7 -15
  216. package/src/geometries/poly.js +39 -96
  217. package/src/geometries/rectangle.js +36 -90
  218. package/src/geometries/roundrect.js +25 -34
  219. package/src/index.js +4 -4
  220. package/src/input/keyboard.js +2 -2
  221. package/src/input/pointer.js +3 -3
  222. package/src/input/pointerevent.js +5 -6
  223. package/src/lang/deprecated.js +1 -1
  224. package/src/level/tiled/TMXLayer.js +15 -32
  225. package/src/level/tiled/TMXObject.js +2 -3
  226. package/src/level/tiled/TMXTile.js +3 -3
  227. package/src/level/tiled/TMXTileMap.js +2 -2
  228. package/src/level/tiled/TMXTileset.js +3 -6
  229. package/src/level/tiled/TMXTilesetGroup.js +1 -1
  230. package/src/level/tiled/TMXUtils.js +36 -46
  231. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  232. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  233. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  234. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  235. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  236. package/src/loader/parser.js +3 -4
  237. package/src/math/color.js +4 -4
  238. package/src/math/matrix2.js +4 -58
  239. package/src/math/matrix3.js +81 -140
  240. package/src/math/observable_vector2.js +6 -6
  241. package/src/math/observable_vector3.js +4 -4
  242. package/src/math/vector2.js +6 -90
  243. package/src/math/vector3.js +5 -89
  244. package/src/particles/emitter.js +1 -1
  245. package/src/particles/particle.js +1 -1
  246. package/src/physics/body.js +21 -19
  247. package/src/physics/bounds.js +26 -32
  248. package/src/physics/collision.js +4 -4
  249. package/src/physics/detector.js +9 -9
  250. package/src/physics/quadtree.js +4 -4
  251. package/src/physics/sat.js +2 -3
  252. package/src/physics/world.js +5 -8
  253. package/src/polyfill/roundrect.js +163 -163
  254. package/src/renderable/collectable.js +1 -1
  255. package/src/renderable/colorlayer.js +3 -3
  256. package/src/renderable/container.js +24 -24
  257. package/src/renderable/imagelayer.js +3 -3
  258. package/src/renderable/light2d.js +2 -2
  259. package/src/renderable/nineslicesprite.js +1 -1
  260. package/src/renderable/renderable.js +30 -38
  261. package/src/renderable/sprite.js +2 -2
  262. package/src/{text → renderable/text}/bitmaptext.js +8 -8
  263. package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
  264. package/src/{text → renderable/text}/glyph.js +1 -1
  265. package/src/{text → renderable/text}/text.js +16 -17
  266. package/src/{text → renderable/text}/textmetrics.js +2 -2
  267. package/src/renderable/trigger.js +9 -9
  268. package/src/renderable/ui/uibaseelement.js +6 -6
  269. package/src/renderable/ui/uispriteelement.js +6 -6
  270. package/src/renderable/ui/uitextbutton.js +2 -2
  271. package/src/state/stage.js +12 -13
  272. package/src/state/state.js +2 -61
  273. package/src/system/device.js +50 -9
  274. package/src/system/event.js +44 -0
  275. package/src/system/platform.js +18 -18
  276. package/src/system/pooling.js +9 -9
  277. package/src/tweens/tween.js +1 -1
  278. package/src/utils/function.js +1 -2
  279. package/src/video/canvas/canvas_renderer.js +4 -17
  280. package/src/video/renderer.js +16 -29
  281. package/src/video/texture/atlas.js +12 -12
  282. package/src/video/texture/canvas_texture.js +14 -14
  283. package/src/video/video.js +7 -28
  284. package/src/video/webgl/buffer/vertex.js +2 -2
  285. package/src/video/webgl/compositors/compositor.js +12 -13
  286. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  287. package/src/video/webgl/compositors/quad_compositor.js +1 -2
  288. package/src/video/webgl/glshader.js +1 -1
  289. package/src/video/webgl/utils/precision.js +3 -3
  290. package/src/video/webgl/webgl_renderer.js +61 -66
  291. /package/src/{text → renderable/text}/textstyle.js +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.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 pool from '../system/pooling.js';
11
11
  * @classdesc
12
12
  * an ellipse Object
13
13
  */
14
- class Ellipse {
14
+ class Ellipse {
15
15
  /**
16
16
  * @param {number} x - the center x coordinate of the ellipse
17
17
  * @param {number} y - the center y coordinate of the ellipse
@@ -23,8 +23,6 @@ import pool from '../system/pooling.js';
23
23
  * the center coordinates of the ellipse
24
24
  * @public
25
25
  * @type {Vector2d}
26
- * @name pos
27
- * @memberof Ellipse
28
26
  */
29
27
  this.pos = pool.pull("Vector2d");
30
28
 
@@ -38,8 +36,6 @@ import pool from '../system/pooling.js';
38
36
  * Maximum radius of the ellipse
39
37
  * @public
40
38
  * @type {number}
41
- * @name radius
42
- * @memberof Ellipse
43
39
  */
44
40
  this.radius = NaN;
45
41
 
@@ -47,8 +43,6 @@ import pool from '../system/pooling.js';
47
43
  * Pre-scaled radius vector for ellipse
48
44
  * @public
49
45
  * @type {Vector2d}
50
- * @name radiusV
51
- * @memberof Ellipse
52
46
  */
53
47
  this.radiusV = pool.pull("Vector2d");
54
48
 
@@ -56,8 +50,6 @@ import pool from '../system/pooling.js';
56
50
  * Radius squared, for pythagorean theorom
57
51
  * @public
58
52
  * @type {Vector2d}
59
- * @name radiusSq
60
- * @memberof Ellipse
61
53
  */
62
54
  this.radiusSq = pool.pull("Vector2d");
63
55
 
@@ -65,8 +57,6 @@ import pool from '../system/pooling.js';
65
57
  * x/y scaling ratio for ellipse
66
58
  * @public
67
59
  * @type {Vector2d}
68
- * @name ratio
69
- * @memberof Ellipse
70
60
  */
71
61
  this.ratio = pool.pull("Vector2d");
72
62
 
@@ -82,8 +72,6 @@ import pool from '../system/pooling.js';
82
72
 
83
73
  /**
84
74
  * set new value to the Ellipse shape
85
- * @name setShape
86
- * @memberof Ellipse
87
75
  * @param {number} x - the center x coordinate of the ellipse
88
76
  * @param {number} y - the center y coordinate of the ellipse
89
77
  * @param {number} w - width (diameter) of the ellipse
@@ -111,8 +99,6 @@ import pool from '../system/pooling.js';
111
99
 
112
100
  /**
113
101
  * Rotate this Ellipse (counter-clockwise) by the specified angle (in radians).
114
- * @name rotate
115
- * @memberof Ellipse
116
102
  * @param {number} angle - The angle to rotate (in radians)
117
103
  * @param {Vector2d|ObservableVector2d} [v] - an optional point to rotate around
118
104
  * @returns {Ellipse} Reference to this object for method chaining
@@ -127,10 +113,8 @@ import pool from '../system/pooling.js';
127
113
 
128
114
  /**
129
115
  * Scale this Ellipse by the specified scalar.
130
- * @name scale
131
- * @memberof Ellipse
132
- * @param {number} x
133
- * @param {number} [y=x]
116
+ * @param {number} x - the scale factor along the x-axis
117
+ * @param {number} [y=x] - the scale factor along the y-axis
134
118
  * @returns {Ellipse} Reference to this object for method chaining
135
119
  */
136
120
  scale(x, y = x) {
@@ -144,8 +128,6 @@ import pool from '../system/pooling.js';
144
128
 
145
129
  /**
146
130
  * Scale this Ellipse by the specified vector.
147
- * @name scale
148
- * @memberof Ellipse
149
131
  * @param {Vector2d} v
150
132
  * @returns {Ellipse} Reference to this object for method chaining
151
133
  */
@@ -155,8 +137,6 @@ import pool from '../system/pooling.js';
155
137
 
156
138
  /**
157
139
  * apply the given transformation matrix to this ellipse
158
- * @name transform
159
- * @memberof Ellipse
160
140
  * @param {Matrix2d} matrix - the transformation matrix
161
141
  * @returns {Polygon} Reference to this object for method chaining
162
142
  */
@@ -167,19 +147,13 @@ import pool from '../system/pooling.js';
167
147
 
168
148
  /**
169
149
  * translate the circle/ellipse by the specified offset
170
- * @name translate
171
- * @memberof Ellipse
172
- * @method
173
- * @param {number} x - x offset
174
- * @param {number} y - y offset
175
- * @returns {Ellipse} this ellipse
176
- */
177
- /**
178
- * translate the circle/ellipse by the specified vector
179
- * @name translate
180
- * @memberof Ellipse
181
- * @param {Vector2d} v - vector offset
150
+ * @param {number|Vector2d} x - x coordinate or a vector point to translate by
151
+ * @param {number} [y] - y offset
182
152
  * @returns {Ellipse} this ellipse
153
+ * @example
154
+ * ellipse.translate(10, 10);
155
+ * // or
156
+ * ellipse.translate(myVector2d);
183
157
  */
184
158
  translate() {
185
159
  let _x, _y;
@@ -203,32 +177,29 @@ import pool from '../system/pooling.js';
203
177
 
204
178
  /**
205
179
  * check if this circle/ellipse contains the specified point
206
- * @name contains
207
- * @method
208
- * @memberof Ellipse
209
- * @param {Vector2d} point
210
- * @returns {boolean} true if contains
211
- */
212
-
213
- /**
214
- * check if this circle/ellipse contains the specified point
215
- * @name contains
216
- * @memberof Ellipse
217
- * @param {number} x - x coordinate
218
- * @param {number} y - y coordinate
180
+ * @param {number|Vector2d} x - x coordinate or a vector point to check
181
+ * @param {number} [y] - y coordinate
219
182
  * @returns {boolean} true if contains
183
+ * @example
184
+ * if (circle.contains(10, 10)) {
185
+ * // do something
186
+ * }
187
+ * // or
188
+ * if (circle.contains(myVector2d)) {
189
+ * // do something
190
+ * }
220
191
  */
221
192
  contains() {
222
193
  let _x, _y;
223
194
 
224
195
  if (arguments.length === 2) {
225
- // x, y
226
- _x = arguments[0];
227
- _y = arguments[1];
196
+ // x, y
197
+ _x = arguments[0];
198
+ _y = arguments[1];
228
199
  } else {
229
- // vector
230
- _x = arguments[0].x;
231
- _y = arguments[0].y;
200
+ // vector
201
+ _x = arguments[0].x;
202
+ _y = arguments[0].y;
232
203
  }
233
204
 
234
205
  // Make position relative to object center point.
@@ -243,8 +214,6 @@ import pool from '../system/pooling.js';
243
214
 
244
215
  /**
245
216
  * returns the bounding box for this shape, the smallest Rectangle object completely containing this shape.
246
- * @name getBounds
247
- * @memberof Ellipse
248
217
  * @returns {Bounds} this shape bounding box Rectangle object
249
218
  */
250
219
  getBounds() {
@@ -256,8 +225,6 @@ import pool from '../system/pooling.js';
256
225
 
257
226
  /**
258
227
  * clone this Ellipse
259
- * @name clone
260
- * @memberof Ellipse
261
228
  * @returns {Ellipse} new Ellipse
262
229
  */
263
230
  clone() {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.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
@@ -17,36 +17,33 @@ import Polygon from './poly.js';
17
17
  * @param {Vector2d[]} points - array of vectors defining the Line
18
18
  */
19
19
 
20
- class Line extends Polygon {
20
+ class Line extends Polygon {
21
21
 
22
22
  /**
23
23
  * Returns true if the Line contains the given point
24
- * @name contains
25
- * @memberof Line
26
- * @method
27
- * @param {Vector2d} point
28
- * @returns {boolean} true if contains
29
- */
30
-
31
- /**
32
- * Returns true if the Line contains the given point
33
- * @name contains
34
- * @memberof Line
35
- * @param {number} x - x coordinate
36
- * @param {number} y - y coordinate
24
+ * @param {number|Vector2d} x - x coordinate or a vector point to check
25
+ * @param {number} [y] - y coordinate
37
26
  * @returns {boolean} true if contains
27
+ * @example
28
+ * if (line.contains(10, 10)) {
29
+ * // do something
30
+ * }
31
+ * // or
32
+ * if (line.contains(myVector2d)) {
33
+ * // do something
34
+ * }
38
35
  */
39
36
  contains() {
40
37
  let _x, _y;
41
38
 
42
39
  if (arguments.length === 2) {
43
- // x, y
44
- _x = arguments[0];
45
- _y = arguments[1];
40
+ // x, y
41
+ _x = arguments[0];
42
+ _y = arguments[1];
46
43
  } else {
47
- // vector
48
- _x = arguments[0].x;
49
- _y = arguments[0].y;
44
+ // vector
45
+ _x = arguments[0].x;
46
+ _y = arguments[0].y;
50
47
  }
51
48
 
52
49
  // translate the given coordinates,
@@ -63,8 +60,6 @@ import Polygon from './poly.js';
63
60
  /**
64
61
  * Computes the calculated collision edges and normals.
65
62
  * This **must** be called if the `points` array, `angle`, or `offset` is modified manually.
66
- * @name recalc
67
- * @memberof Line
68
63
  * @returns {Line} this instance for objecf chaining
69
64
  */
70
65
  recalc() {
@@ -98,8 +93,6 @@ import Polygon from './poly.js';
98
93
 
99
94
  /**
100
95
  * clone this line segment
101
- * @name clone
102
- * @memberof Line
103
96
  * @returns {Line} new Line
104
97
  */
105
98
  clone() {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.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
@@ -13,7 +13,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
13
13
  * @classdesc
14
14
  * a simplified path2d implementation, supporting only one path
15
15
  */
16
- class Path2D {
16
+ class Path2D {
17
17
  constructor() {
18
18
  /**
19
19
  * the points defining the current path
@@ -50,34 +50,35 @@ import earcut from '../node_modules/earcut/src/earcut.js';
50
50
  */
51
51
  closePath() {
52
52
  let points = this.points;
53
- if (points.length > 1 && !points[points.length-1].equals(points[0])) {
54
- points.push(pool.pull("Point", points[0].x, points[0].y));
53
+ let firstPoint = points[0];
54
+ if (points.length > 1 && !points[points.length-1].equals(firstPoint)) {
55
+ points.push(pool.pull("Point", firstPoint.x, firstPoint.y));
55
56
  }
56
57
  }
57
58
 
58
59
  /**
59
60
  * triangulate the shape defined by this path into an array of triangles
60
- * @returns {Point[]}
61
+ * @returns {Point[]} an array of vertices representing the triangulated path or shape
61
62
  */
62
63
  triangulatePath() {
63
- let i = 0;
64
64
  let points = this.points;
65
65
  let vertices = this.vertices;
66
66
  let indices = earcut(points.flatMap(p => [p.x, p.y]));
67
+ let indicesLength = indices.length;
67
68
 
68
69
  // pre-allocate vertices if necessary
69
- while (vertices.length < indices.length) {
70
+ while (vertices.length < indicesLength) {
70
71
  vertices.push(pool.pull("Point"));
71
72
  }
72
73
 
73
74
  // calculate all vertices
74
- for (i = 0; i < indices.length; i++ ) {
75
+ for (let i = 0; i < indicesLength; i++ ) {
75
76
  let point = points[indices[i]];
76
77
  vertices[i].set(point.x, point.y);
77
78
  }
78
79
 
79
80
  // recycle overhead from a previous triangulation
80
- while (vertices.length > indices.length) {
81
+ while (vertices.length > indicesLength) {
81
82
  pool.push(vertices[vertices.length-1]);
82
83
  vertices.length -= 1;
83
84
  }
@@ -91,7 +92,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
91
92
  * @param {number} y - the y-axis (vertical) coordinate of the point.
92
93
  */
93
94
  moveTo(x, y) {
94
- this.points.push(pool.pull("Point", x, y));
95
+ this.points.push(pool.pull("Point", x, y));
95
96
  }
96
97
 
97
98
  /**
@@ -142,11 +143,12 @@ import earcut from '../node_modules/earcut/src/earcut.js';
142
143
  const length = diff * radius;
143
144
  const nr_of_interpolation_points = length / this.arcResolution;
144
145
  const dangle = diff / nr_of_interpolation_points;
146
+ const angleStep = dangle * direction;
145
147
 
146
148
  let angle = startAngle;
147
149
  for (let j = 0; j < nr_of_interpolation_points; j++) {
148
150
  points.push(pool.pull("Point", x + radius * Math.cos(angle), y + radius * Math.sin(angle)));
149
- angle += direction * dangle;
151
+ angle += angleStep;
150
152
  }
151
153
  points.push(pool.pull("Point", x + radius * Math.cos(endAngle), y + radius * Math.sin(endAngle)));
152
154
  }
@@ -237,6 +239,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
237
239
  const length = (diff * radiusX + diff * radiusY) / 2;
238
240
  const nr_of_interpolation_points = length / this.arcResolution;
239
241
  const dangle = diff / nr_of_interpolation_points;
242
+ const angleStep = dangle * direction;
240
243
 
241
244
  let angle = startAngle;
242
245
  const cos_rotation = Math.cos(rotation);
@@ -247,7 +250,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
247
250
  const _x2 = x + _x1 * cos_rotation - _y1 * sin_rotation;
248
251
  const _y2 = y + _x1 * sin_rotation + _y1 * cos_rotation;
249
252
  points.push(pool.pull("Point", _x2, _y2));
250
- angle += direction * dangle;
253
+ angle += angleStep;
251
254
  }
252
255
  }
253
256
 
@@ -277,7 +280,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
277
280
  * @param {number} height - the rectangle's height. Positive values are down, and negative are up.
278
281
  * @param {number} radius - the arc's radius to draw the borders. Must be positive.
279
282
  */
280
- roundRect(x, y, width, height, radius) {
283
+ roundRect(x, y, width, height, radius) {
281
284
  this.moveTo(x + radius, y);
282
285
  this.lineTo(x + width - radius, y);
283
286
  this.arcTo(x + width, y, x + width, y + radius, radius);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.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
@@ -9,18 +9,18 @@
9
9
  * @classdesc
10
10
  * represents a point in a 2d space
11
11
  */
12
- class Point {
12
+ class Point {
13
13
  constructor(x = 0, y = 0) {
14
14
  /**
15
15
  * the position of the point on the horizontal axis
16
- * @type {Number}
16
+ * @type {number}
17
17
  * @default 0
18
18
  */
19
19
  this.x = x;
20
20
 
21
21
  /**
22
22
  * the position of the point on the vertical axis
23
- * @type {Number}
23
+ * @type {number}
24
24
  * @default 0
25
25
  */
26
26
  this.y = y;
@@ -44,20 +44,12 @@
44
44
  }
45
45
 
46
46
  /**
47
- * return true if the two points are the same
48
- * @name equals
49
- * @memberof Point
50
- * @method
51
- * @param {Point} point
47
+ * return true if this point is equal to the given point
48
+ * @param {number|Point|Vector2d} x
49
+ * @param {number} [y]
52
50
  * @returns {boolean}
53
51
  */
54
- /**
55
- * return true if this point is equal to the given values
56
- * @param {number} x
57
- * @param {number} y
58
- * @returns {boolean}
59
- */
60
- equals() {
52
+ equals() {
61
53
  let _x, _y;
62
54
  if (arguments.length === 2) {
63
55
  // x, y