melonjs 14.5.0 → 15.1.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 (315) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +6 -6
  3. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  7. package/dist/melonjs.mjs/_virtual/index.js +7 -3
  8. package/dist/melonjs.mjs/_virtual/index2.js +1 -1
  9. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  10. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  11. package/dist/melonjs.mjs/application/application.js +27 -17
  12. package/dist/melonjs.mjs/application/header.js +6 -5
  13. package/dist/melonjs.mjs/application/resize.js +20 -20
  14. package/dist/melonjs.mjs/application/settings.js +1 -1
  15. package/dist/melonjs.mjs/audio/audio.js +18 -20
  16. package/dist/melonjs.mjs/camera/camera2d.js +10 -10
  17. package/dist/melonjs.mjs/const.js +1 -1
  18. package/dist/melonjs.mjs/entity/entity.js +4 -4
  19. package/dist/melonjs.mjs/geometries/ellipse.js +6 -6
  20. package/dist/melonjs.mjs/geometries/line.js +9 -9
  21. package/dist/melonjs.mjs/geometries/path2d.js +56 -56
  22. package/dist/melonjs.mjs/geometries/point.js +2 -2
  23. package/dist/melonjs.mjs/geometries/poly.js +29 -29
  24. package/dist/melonjs.mjs/geometries/rectangle.js +8 -8
  25. package/dist/melonjs.mjs/geometries/roundrect.js +6 -6
  26. package/dist/melonjs.mjs/index.js +8 -6
  27. package/dist/melonjs.mjs/input/gamepad.js +30 -30
  28. package/dist/melonjs.mjs/input/input.js +2 -2
  29. package/dist/melonjs.mjs/input/keyboard.js +15 -15
  30. package/dist/melonjs.mjs/input/pointer.js +2 -2
  31. package/dist/melonjs.mjs/input/pointerevent.js +59 -59
  32. package/dist/melonjs.mjs/lang/console.js +3 -3
  33. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  34. package/dist/melonjs.mjs/level/level.js +9 -9
  35. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +3 -3
  36. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +31 -31
  37. package/dist/melonjs.mjs/level/tiled/TMXObject.js +8 -8
  38. package/dist/melonjs.mjs/level/tiled/TMXTile.js +8 -8
  39. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +19 -19
  40. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +15 -15
  41. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -3
  42. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +46 -41
  43. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +30 -30
  45. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +21 -21
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +10 -10
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  48. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +6 -6
  49. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  50. package/dist/melonjs.mjs/loader/cache.js +1 -1
  51. package/dist/melonjs.mjs/loader/loader.js +7 -7
  52. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
  53. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  54. package/dist/melonjs.mjs/loader/parser.js +13 -13
  55. package/dist/melonjs.mjs/loader/settings.js +3 -3
  56. package/dist/melonjs.mjs/math/color.js +25 -24
  57. package/dist/melonjs.mjs/math/math.js +2 -2
  58. package/dist/melonjs.mjs/math/matrix2.js +22 -22
  59. package/dist/melonjs.mjs/math/matrix3.js +52 -52
  60. package/dist/melonjs.mjs/math/observable_vector2.js +12 -12
  61. package/dist/melonjs.mjs/math/observable_vector3.js +22 -22
  62. package/dist/melonjs.mjs/math/vector2.js +11 -11
  63. package/dist/melonjs.mjs/math/vector3.js +21 -21
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +45 -0
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +130 -0
  66. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
  67. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  68. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
  69. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
  70. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  71. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
  72. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  74. package/dist/melonjs.mjs/particles/emitter.js +5 -5
  75. package/dist/melonjs.mjs/particles/particle.js +8 -8
  76. package/dist/melonjs.mjs/particles/settings.js +3 -3
  77. package/dist/melonjs.mjs/physics/body.js +17 -17
  78. package/dist/melonjs.mjs/physics/bounds.js +12 -12
  79. package/dist/melonjs.mjs/physics/collision.js +3 -3
  80. package/dist/melonjs.mjs/physics/detector.js +14 -14
  81. package/dist/melonjs.mjs/physics/quadtree.js +19 -19
  82. package/dist/melonjs.mjs/physics/response.js +1 -1
  83. package/dist/melonjs.mjs/physics/sat.js +60 -60
  84. package/dist/melonjs.mjs/physics/world.js +4 -4
  85. package/dist/melonjs.mjs/plugin/plugin.js +11 -11
  86. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  87. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  88. package/dist/melonjs.mjs/renderable/container.js +77 -59
  89. package/dist/melonjs.mjs/renderable/dragndrop.js +5 -5
  90. package/dist/melonjs.mjs/renderable/imagelayer.js +7 -6
  91. package/dist/melonjs.mjs/renderable/light2d.js +6 -6
  92. package/dist/melonjs.mjs/renderable/nineslicesprite.js +12 -12
  93. package/dist/melonjs.mjs/renderable/renderable.js +35 -13
  94. package/dist/melonjs.mjs/renderable/sprite.js +25 -25
  95. package/dist/melonjs.mjs/renderable/trigger.js +11 -9
  96. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +97 -27
  97. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +25 -25
  98. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +83 -65
  99. package/dist/melonjs.mjs/state/stage.js +7 -7
  100. package/dist/melonjs.mjs/state/state.js +15 -15
  101. package/dist/melonjs.mjs/system/device.js +3 -3
  102. package/dist/melonjs.mjs/system/dom.js +1 -1
  103. package/dist/melonjs.mjs/system/event.js +2 -2
  104. package/dist/melonjs.mjs/system/platform.js +1 -1
  105. package/dist/melonjs.mjs/system/pooling.js +9 -9
  106. package/dist/melonjs.mjs/system/save.js +6 -6
  107. package/dist/melonjs.mjs/system/timer.js +16 -12
  108. package/dist/melonjs.mjs/text/bitmaptext.js +20 -20
  109. package/dist/melonjs.mjs/text/bitmaptextdata.js +22 -22
  110. package/dist/melonjs.mjs/text/glyph.js +3 -3
  111. package/dist/melonjs.mjs/text/text.js +63 -92
  112. package/dist/melonjs.mjs/text/textmetrics.js +15 -15
  113. package/dist/melonjs.mjs/text/textstyle.js +4 -6
  114. package/dist/melonjs.mjs/tweens/easing.js +4 -4
  115. package/dist/melonjs.mjs/tweens/interpolation.js +8 -8
  116. package/dist/melonjs.mjs/tweens/tween.js +11 -11
  117. package/dist/melonjs.mjs/utils/agent.js +6 -6
  118. package/dist/melonjs.mjs/utils/array.js +4 -4
  119. package/dist/melonjs.mjs/utils/file.js +1 -1
  120. package/dist/melonjs.mjs/utils/function.js +5 -5
  121. package/dist/melonjs.mjs/utils/string.js +3 -3
  122. package/dist/melonjs.mjs/utils/utils.js +16 -16
  123. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +41 -119
  124. package/dist/melonjs.mjs/video/renderer.js +70 -14
  125. package/dist/melonjs.mjs/video/texture/atlas.js +39 -45
  126. package/dist/melonjs.mjs/video/texture/cache.js +9 -10
  127. package/dist/melonjs.mjs/video/texture/canvas_texture.js +63 -3
  128. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  129. package/dist/melonjs.mjs/video/video.js +2 -2
  130. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +23 -19
  131. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +80 -80
  132. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +77 -0
  133. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +252 -0
  134. package/dist/melonjs.mjs/video/webgl/compositors/webgl_compositor.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/glshader.js +7 -7
  136. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
  138. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  139. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
  140. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
  141. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/utils/program.js +7 -7
  143. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  144. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +4 -4
  145. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +188 -181
  146. package/dist/melonjs.module.js +25040 -25193
  147. package/dist/types/application/application.d.ts +11 -8
  148. package/dist/types/audio/audio.d.ts +3 -3
  149. package/dist/types/entity/entity.d.ts +1 -1
  150. package/dist/types/index.d.ts +7 -4
  151. package/dist/types/input/input.d.ts +1 -1
  152. package/dist/types/input/keyboard.d.ts +1 -1
  153. package/dist/types/input/pointerevent.d.ts +6 -6
  154. package/dist/types/level/level.d.ts +2 -2
  155. package/dist/types/level/tiled/TMXLayer.d.ts +4 -4
  156. package/dist/types/level/tiled/TMXTileMap.d.ts +2 -2
  157. package/dist/types/level/tiled/TMXUtils.d.ts +5 -4
  158. package/dist/types/loader/loader.d.ts +2 -2
  159. package/dist/types/loader/settings.d.ts +2 -2
  160. package/dist/types/particles/emitter.d.ts +1 -1
  161. package/dist/types/physics/collision.d.ts +1 -1
  162. package/dist/types/physics/detector.d.ts +1 -1
  163. package/dist/types/plugin/plugin.d.ts +2 -2
  164. package/dist/types/renderable/container.d.ts +21 -17
  165. package/dist/types/renderable/renderable.d.ts +6 -0
  166. package/dist/types/renderable/sprite.d.ts +11 -11
  167. package/dist/types/renderable/trigger.d.ts +1 -1
  168. package/dist/types/renderable/ui/uibaseelement.d.ts +28 -6
  169. package/dist/types/renderable/ui/uispriteelement.d.ts +12 -14
  170. package/dist/types/renderable/ui/uitextbutton.d.ts +52 -12
  171. package/dist/types/state/stage.d.ts +1 -1
  172. package/dist/types/system/device.d.ts +1 -1
  173. package/dist/types/system/pooling.d.ts +3 -3
  174. package/dist/types/system/timer.d.ts +5 -5
  175. package/dist/types/text/bitmaptext.d.ts +1 -1
  176. package/dist/types/text/text.d.ts +7 -21
  177. package/dist/types/text/textstyle.d.ts +1 -1
  178. package/dist/types/utils/array.d.ts +2 -2
  179. package/dist/types/video/canvas/canvas_renderer.d.ts +8 -81
  180. package/dist/types/video/renderer.d.ts +48 -4
  181. package/dist/types/video/texture/atlas.d.ts +3 -3
  182. package/dist/types/video/texture/canvas_texture.d.ts +40 -0
  183. package/dist/types/video/webgl/buffer/vertex.d.ts +3 -3
  184. package/dist/types/video/webgl/compositors/compositor.d.ts +38 -32
  185. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +22 -0
  186. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +72 -0
  187. package/dist/types/video/webgl/glshader.d.ts +1 -1
  188. package/dist/types/video/webgl/webgl_renderer.d.ts +47 -37
  189. package/package.json +16 -17
  190. package/src/application/application.js +26 -16
  191. package/src/application/header.js +5 -4
  192. package/src/application/resize.js +19 -19
  193. package/src/audio/audio.js +17 -19
  194. package/src/camera/camera2d.js +9 -9
  195. package/src/entity/entity.js +3 -3
  196. package/src/geometries/ellipse.js +5 -5
  197. package/src/geometries/line.js +8 -8
  198. package/src/geometries/path2d.js +55 -55
  199. package/src/geometries/point.js +1 -1
  200. package/src/geometries/poly.js +28 -28
  201. package/src/geometries/rectangle.js +7 -7
  202. package/src/geometries/roundrect.js +5 -5
  203. package/src/index.js +9 -4
  204. package/src/input/gamepad.js +29 -29
  205. package/src/input/input.js +1 -1
  206. package/src/input/keyboard.js +14 -14
  207. package/src/input/pointer.js +1 -1
  208. package/src/input/pointerevent.js +52 -52
  209. package/src/lang/console.js +2 -2
  210. package/src/lang/deprecated.js +1 -1
  211. package/src/level/level.js +8 -8
  212. package/src/level/tiled/TMXGroup.js +2 -2
  213. package/src/level/tiled/TMXLayer.js +30 -30
  214. package/src/level/tiled/TMXObject.js +7 -7
  215. package/src/level/tiled/TMXTile.js +7 -7
  216. package/src/level/tiled/TMXTileMap.js +18 -18
  217. package/src/level/tiled/TMXTileset.js +14 -14
  218. package/src/level/tiled/TMXTilesetGroup.js +2 -2
  219. package/src/level/tiled/TMXUtils.js +45 -40
  220. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +29 -29
  221. package/src/level/tiled/renderer/TMXIsometricRenderer.js +20 -20
  222. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +9 -9
  223. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  224. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +5 -5
  225. package/src/loader/loader.js +6 -6
  226. package/src/loader/loadingscreen.js +1 -1
  227. package/src/loader/parser.js +12 -12
  228. package/src/loader/settings.js +2 -2
  229. package/src/math/color.js +24 -23
  230. package/src/math/math.js +1 -1
  231. package/src/math/matrix2.js +21 -21
  232. package/src/math/matrix3.js +51 -51
  233. package/src/math/observable_vector2.js +11 -11
  234. package/src/math/observable_vector3.js +21 -21
  235. package/src/math/vector2.js +10 -10
  236. package/src/math/vector3.js +20 -20
  237. package/src/particles/emitter.js +4 -4
  238. package/src/particles/particle.js +7 -7
  239. package/src/particles/settings.js +2 -2
  240. package/src/physics/body.js +16 -16
  241. package/src/physics/bounds.js +11 -11
  242. package/src/physics/collision.js +2 -2
  243. package/src/physics/detector.js +13 -13
  244. package/src/physics/quadtree.js +18 -18
  245. package/src/physics/sat.js +59 -59
  246. package/src/physics/world.js +3 -3
  247. package/src/plugin/plugin.js +8 -8
  248. package/src/polyfill/index.js +0 -2
  249. package/src/renderable/collectable.js +1 -1
  250. package/src/renderable/container.js +76 -58
  251. package/src/renderable/dragndrop.js +4 -4
  252. package/src/renderable/imagelayer.js +6 -5
  253. package/src/renderable/light2d.js +5 -5
  254. package/src/renderable/nineslicesprite.js +11 -11
  255. package/src/renderable/renderable.js +34 -12
  256. package/src/renderable/sprite.js +24 -24
  257. package/src/renderable/trigger.js +10 -8
  258. package/src/renderable/ui/uibaseelement.js +96 -26
  259. package/src/renderable/ui/uispriteelement.js +24 -24
  260. package/src/renderable/ui/uitextbutton.js +85 -67
  261. package/src/state/stage.js +6 -6
  262. package/src/state/state.js +14 -14
  263. package/src/system/device.js +2 -2
  264. package/src/system/event.js +1 -1
  265. package/src/system/pooling.js +8 -8
  266. package/src/system/save.js +5 -5
  267. package/src/system/timer.js +15 -11
  268. package/src/text/bitmaptext.js +19 -19
  269. package/src/text/bitmaptextdata.js +21 -21
  270. package/src/text/glyph.js +2 -2
  271. package/src/text/text.js +62 -91
  272. package/src/text/textmetrics.js +14 -14
  273. package/src/text/textstyle.js +3 -5
  274. package/src/tweens/easing.js +3 -3
  275. package/src/tweens/interpolation.js +7 -7
  276. package/src/tweens/tween.js +10 -10
  277. package/src/utils/agent.js +5 -5
  278. package/src/utils/array.js +3 -3
  279. package/src/utils/function.js +4 -4
  280. package/src/utils/string.js +2 -2
  281. package/src/utils/utils.js +15 -15
  282. package/src/video/canvas/canvas_renderer.js +39 -117
  283. package/src/video/renderer.js +68 -12
  284. package/src/video/texture/atlas.js +38 -44
  285. package/src/video/texture/cache.js +6 -6
  286. package/src/video/texture/canvas_texture.js +62 -2
  287. package/src/video/video.js +1 -1
  288. package/src/video/webgl/buffer/vertex.js +22 -18
  289. package/src/video/webgl/compositors/compositor.js +79 -80
  290. package/src/video/webgl/compositors/primitive_compositor.js +68 -0
  291. package/src/video/webgl/compositors/{webgl_compositor.js → quad_compositor.js} +52 -109
  292. package/src/video/webgl/glshader.js +6 -6
  293. package/src/video/webgl/shaders/primitive.vert +2 -5
  294. package/src/video/webgl/shaders/quad.vert +3 -1
  295. package/src/video/webgl/utils/attributes.js +1 -1
  296. package/src/video/webgl/utils/program.js +6 -6
  297. package/src/video/webgl/utils/uniforms.js +3 -3
  298. package/src/video/webgl/webgl_renderer.js +186 -179
  299. package/dist/melonjs.mjs/_virtual/make-built-in.js +0 -10
  300. package/dist/melonjs.mjs/_virtual/object-define-property.js +0 -10
  301. package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +0 -10
  302. package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +0 -10
  303. package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +0 -10
  304. package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +0 -10
  305. package/dist/melonjs.mjs/_virtual/shared.js +0 -10
  306. package/dist/melonjs.mjs/game.js +0 -29
  307. package/dist/melonjs.mjs/polyfill/console.js +0 -18
  308. package/dist/melonjs.mjs/polyfill/performance.js +0 -27
  309. package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +0 -46
  310. package/dist/melonjs.mjs/polyfill/roundrect.js +0 -242
  311. package/dist/melonjs.mjs/renderable/re_container.js +0 -1016
  312. package/dist/melonjs.mjs/video/utils/resize.js +0 -116
  313. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +0 -494
  314. package/src/polyfill/performance.js +0 -20
  315. package/src/polyfill/requestAnimationFrame.js +0 -39
@@ -310,7 +310,7 @@ import pool from "./../system/pooling.js";
310
310
  * @returns {boolean}
311
311
  */
312
312
  equals() {
313
- var _x, _y;
313
+ let _x, _y;
314
314
  if (arguments.length === 2) {
315
315
  // x, y
316
316
  _x = arguments[0];
@@ -353,19 +353,19 @@ import pool from "./../system/pooling.js";
353
353
  * @returns {Vector2d} Reference to this object for method chaining
354
354
  */
355
355
  rotate(angle, v) {
356
- var cx = 0;
357
- var cy = 0;
356
+ let cx = 0;
357
+ let cy = 0;
358
358
 
359
359
  if (typeof v === "object") {
360
360
  cx = v.x;
361
361
  cy = v.y;
362
362
  }
363
363
 
364
- var x = this.x - cx;
365
- var y = this.y - cy;
364
+ let x = this.x - cx;
365
+ let y = this.y - cy;
366
366
 
367
- var c = Math.cos(angle);
368
- var s = Math.sin(angle);
367
+ let c = Math.cos(angle);
368
+ let s = Math.sin(angle);
369
369
 
370
370
  return this._set(x * c - y * s + cx, x * s + y * c + cy);
371
371
  }
@@ -435,9 +435,9 @@ import pool from "./../system/pooling.js";
435
435
  * @returns {Vector2d} Reference to this object for method chaining
436
436
  */
437
437
  moveTowards(target, step) {
438
- var angle = Math.atan2(target.y - this.y, target.x - this.x);
438
+ let angle = Math.atan2(target.y - this.y, target.x - this.x);
439
439
 
440
- var distance = this.distance(target);
440
+ let distance = this.distance(target);
441
441
 
442
442
  if (distance === 0 || (step >= 0 && distance <= step * step)) {
443
443
  return target;
@@ -457,7 +457,7 @@ import pool from "./../system/pooling.js";
457
457
  * @returns {number}
458
458
  */
459
459
  distance(v) {
460
- var dx = this.x - v.x, dy = this.y - v.y;
460
+ let dx = this.x - v.x, dy = this.y - v.y;
461
461
  return Math.sqrt(dx * dx + dy * dy);
462
462
  }
463
463
 
@@ -222,7 +222,7 @@ import pool from "./../system/pooling.js";
222
222
  * @returns {Vector3d} Reference to this object for method chaining
223
223
  */
224
224
  minV(v) {
225
- var _vz = v.z || 0;
225
+ let _vz = v.z || 0;
226
226
  return this._set((this.x < v.x) ? this.x : v.x, (this.y < v.y) ? this.y : v.y, (this.z < _vz) ? this.z : _vz);
227
227
  }
228
228
 
@@ -234,7 +234,7 @@ import pool from "./../system/pooling.js";
234
234
  * @returns {Vector3d} Reference to this object for method chaining
235
235
  */
236
236
  maxV(v) {
237
- var _vz = v.z || 0;
237
+ let _vz = v.z || 0;
238
238
  return this._set((this.x > v.x) ? this.x : v.x, (this.y > v.y) ? this.y : v.y, (this.z > _vz) ? this.z : _vz);
239
239
  }
240
240
 
@@ -327,7 +327,7 @@ import pool from "./../system/pooling.js";
327
327
  * @returns {boolean}
328
328
  */
329
329
  equals() {
330
- var _x, _y, _z;
330
+ let _x, _y, _z;
331
331
  if (arguments.length >= 2) {
332
332
  // x, y, z
333
333
  _x = arguments[0];
@@ -377,8 +377,8 @@ import pool from "./../system/pooling.js";
377
377
  * @returns {Vector3d} Reference to this object for method chaining
378
378
  */
379
379
  rotate(angle, v) {
380
- var cx = 0;
381
- var cy = 0;
380
+ let cx = 0;
381
+ let cy = 0;
382
382
 
383
383
  if (typeof v === "object") {
384
384
  cx = v.x;
@@ -386,11 +386,11 @@ import pool from "./../system/pooling.js";
386
386
  }
387
387
 
388
388
  // TODO also rotate on the z axis if the given vector is a 3d one
389
- var x = this.x - cx;
390
- var y = this.y - cy;
389
+ let x = this.x - cx;
390
+ let y = this.y - cy;
391
391
 
392
- var c = Math.cos(angle);
393
- var s = Math.sin(angle);
392
+ let c = Math.cos(angle);
393
+ let s = Math.sin(angle);
394
394
 
395
395
  return this._set(x * c - y * s + cx, x * s + y * c + cy, this.z);
396
396
  }
@@ -414,8 +414,8 @@ import pool from "./../system/pooling.js";
414
414
  * @returns {Vector3d} Reference to this object for method chaining
415
415
  */
416
416
  cross(v) {
417
- var ax = this.x, ay = this.y, az = this.z;
418
- var bx = v.x, by = v.y, bz = v.z;
417
+ let ax = this.x, ay = this.y, az = this.z;
418
+ let bx = v.x, by = v.y, bz = v.z;
419
419
 
420
420
  this.x = ay * bz - az * by;
421
421
  this.y = az * bx - ax * bz;
@@ -468,12 +468,12 @@ import pool from "./../system/pooling.js";
468
468
  * @returns {Vector3d} Reference to this object for method chaining
469
469
  */
470
470
  moveTowards(target, step) {
471
- var angle = Math.atan2(target.y - this.y, target.x - this.x);
471
+ let angle = Math.atan2(target.y - this.y, target.x - this.x);
472
472
 
473
- var dx = this.x - target.x;
474
- var dy = this.y - target.y;
473
+ let dx = this.x - target.x;
474
+ let dy = this.y - target.y;
475
475
 
476
- var distance = Math.sqrt(dx * dx + dy * dy);
476
+ let distance = Math.sqrt(dx * dx + dy * dy);
477
477
 
478
478
  if (distance === 0 || (step >= 0 && distance <= step * step)) {
479
479
  return target;
@@ -493,9 +493,9 @@ import pool from "./../system/pooling.js";
493
493
  * @returns {number}
494
494
  */
495
495
  distance(v) {
496
- var dx = this.x - v.x;
497
- var dy = this.y - v.y;
498
- var dz = this.z - (v.z || 0);
496
+ let dx = this.x - v.x;
497
+ let dy = this.y - v.y;
498
+ let dz = this.z - (v.z || 0);
499
499
  return Math.sqrt(dx * dx + dy * dy + dz * dz);
500
500
  }
501
501
 
@@ -518,7 +518,7 @@ import pool from "./../system/pooling.js";
518
518
  * @returns {Vector3d} Reference to this object for method chaining
519
519
  */
520
520
  project(v) {
521
- var ratio = this.dot(v) / v.length2();
521
+ let ratio = this.dot(v) / v.length2();
522
522
  return this.scale(ratio, ratio, ratio);
523
523
  }
524
524
 
@@ -531,7 +531,7 @@ import pool from "./../system/pooling.js";
531
531
  * @returns {Vector3d} Reference to this object for method chaining
532
532
  */
533
533
  projectN(v) {
534
- var ratio = this.dot(v) / v.length2();
534
+ let ratio = this.dot(v) / v.length2();
535
535
  return this.scale(ratio, ratio, ratio);
536
536
  }
537
537
 
@@ -8,7 +8,7 @@ import Container from "./../renderable/container.js";
8
8
  * @ignore
9
9
  */
10
10
  function createDefaultParticleTexture(w = 8, h = 8) {
11
- var defaultParticleTexture = pool.pull("CanvasTexture", w, h, { offscreenCanvas: true });
11
+ let defaultParticleTexture = pool.pull("CanvasTexture", w, h, { offscreenCanvas: true });
12
12
 
13
13
  defaultParticleTexture.context.fillStyle = "#fff";
14
14
  defaultParticleTexture.context.fillRect(0, 0, w, h);
@@ -28,7 +28,7 @@ function createDefaultParticleTexture(w = 8, h = 8) {
28
28
  * @param {ParticleEmitterSettings} [settings=ParticleEmitterSettings] - the settings for the particle emitter.
29
29
  * @example
30
30
  * // Create a particle emitter at position 100, 100
31
- * var emitter = new ParticleEmitter(100, 100, {
31
+ * let emitter = new ParticleEmitter(100, 100, {
32
32
  * width: 16,
33
33
  * height : 16,
34
34
  * tint: "#f00",
@@ -144,7 +144,7 @@ function createDefaultParticleTexture(w = 8, h = 8) {
144
144
  // Add count particles in the game world
145
145
  /** @ignore */
146
146
  addParticles(count) {
147
- for (var i = 0; i < count; i++) {
147
+ for (let i = 0; i < count; i++) {
148
148
  // Add particle to the container
149
149
  this.addChild(pool.pull("Particle", this), this.pos.z);
150
150
  }
@@ -224,7 +224,7 @@ function createDefaultParticleTexture(w = 8, h = 8) {
224
224
  this._frequencyTimer += dt;
225
225
 
226
226
  // Check for new particles launch
227
- var particlesCount = this.children.length;
227
+ const particlesCount = this.children.length;
228
228
  if ((particlesCount < this.settings.totalParticles) && (this._frequencyTimer >= this.settings.frequency)) {
229
229
  if ((particlesCount + this.settings.maxParticles) <= this.settings.totalParticles) {
230
230
  this.addParticles(this.settings.maxParticles);
@@ -60,8 +60,8 @@ import Renderable from "./../renderable/renderable.js";
60
60
  }
61
61
 
62
62
  // Set the start particle Angle and Speed as defined in emitter
63
- var angle = emitter.settings.angle + ((emitter.settings.angleVariation > 0) ? (randomFloat(0, 2) - 1) * emitter.settings.angleVariation : 0);
64
- var speed = emitter.settings.speed + ((emitter.settings.speedVariation > 0) ? (randomFloat(0, 2) - 1) * emitter.settings.speedVariation : 0);
63
+ let angle = emitter.settings.angle + ((emitter.settings.angleVariation > 0) ? (randomFloat(0, 2) - 1) * emitter.settings.angleVariation : 0);
64
+ let speed = emitter.settings.speed + ((emitter.settings.speedVariation > 0) ? (randomFloat(0, 2) - 1) * emitter.settings.speedVariation : 0);
65
65
 
66
66
  // Set the start particle Velocity
67
67
  this.vel.set(speed * Math.cos(angle), -speed * Math.sin(angle));
@@ -111,7 +111,7 @@ import Renderable from "./../renderable/renderable.js";
111
111
  */
112
112
  update(dt) {
113
113
  // move things forward independent of the current frame rate
114
- var skew = dt * this._deltaInv;
114
+ let skew = dt * this._deltaInv;
115
115
 
116
116
  // Decrease particle life
117
117
  this.life = this.life > dt ? this.life - dt : 0;
@@ -122,10 +122,10 @@ import Renderable from "./../renderable/renderable.js";
122
122
  }
123
123
 
124
124
  // Calculate the particle Age Ratio
125
- var ageRatio = this.life / this.startLife;
125
+ let ageRatio = this.life / this.startLife;
126
126
 
127
127
  // Resize the particle as particle Age Ratio
128
- var scale = this.startScale;
128
+ let scale = this.startScale;
129
129
  if (this.startScale > this.endScale) {
130
130
  scale *= ageRatio;
131
131
  scale = (scale < this.endScale) ? this.endScale : scale;
@@ -143,7 +143,7 @@ import Renderable from "./../renderable/renderable.js";
143
143
  this.vel.y += this.gravity * skew;
144
144
 
145
145
  // If necessary update the rotation of particle in accordance the particle trajectory
146
- var angle = this.followTrajectory ? Math.atan2(this.vel.y, this.vel.x) : this.angle;
146
+ let angle = this.followTrajectory ? Math.atan2(this.vel.y, this.vel.x) : this.angle;
147
147
 
148
148
  this.pos.x += this.vel.x * skew;
149
149
  this.pos.y += this.vel.y * skew;
@@ -165,7 +165,7 @@ import Renderable from "./../renderable/renderable.js";
165
165
  * @ignore
166
166
  */
167
167
  draw(renderer) {
168
- var w = this.width, h = this.height;
168
+ let w = this.width, h = this.height;
169
169
  renderer.drawImage(
170
170
  this.image,
171
171
  0, 0,
@@ -78,7 +78,7 @@ const ParticleEmitterSettings = {
78
78
  angle : Math.PI / 2,
79
79
 
80
80
  /**
81
- * Variation in the start angle for particle launch in Radians.
81
+ * letiation in the start angle for particle launch in Radians.
82
82
  * @public
83
83
  * @type {number}
84
84
  * @name angleVariation
@@ -118,7 +118,7 @@ const ParticleEmitterSettings = {
118
118
  speed : 2,
119
119
 
120
120
  /**
121
- * Variation in the start speed of particles
121
+ * letiation in the start speed of particles
122
122
  * @public
123
123
  * @type {number}
124
124
  * @name speedVariation
@@ -212,7 +212,7 @@ import Point from "../geometries/point.js";
212
212
  // parses the given shapes array and add them
213
213
  if (typeof shapes !== "undefined") {
214
214
  if (Array.isArray(shapes)) {
215
- for (var s = 0; s < shapes.length; s++) {
215
+ for (let s = 0; s < shapes.length; s++) {
216
216
  this.addShape(shapes[s]);
217
217
  }
218
218
  } else {
@@ -246,7 +246,7 @@ import Point from "../geometries/point.js";
246
246
  */
247
247
  addShape(shape) {
248
248
  if (shape instanceof Rect || shape instanceof Bounds) {
249
- var poly = shape.toPolygon();
249
+ let poly = shape.toPolygon();
250
250
  this.shapes.push(poly);
251
251
  // update the body bounds
252
252
  this.bounds.add(poly.points);
@@ -297,7 +297,7 @@ import Point from "../geometries/point.js";
297
297
  * @param {boolean} [clear=true] - either to reset the body definition before adding the new vertices
298
298
  */
299
299
  setVertices(vertices, index = 0, clear = true) {
300
- var polygon = this.getShape(index);
300
+ let polygon = this.getShape(index);
301
301
  if (polygon instanceof Polygon) {
302
302
  polygon.setShape(0, 0, vertices);
303
303
  } else {
@@ -336,7 +336,7 @@ import Point from "../geometries/point.js";
336
336
  * this.body.fromJSON(me.loader.getJSON("shapesdef"), "banana");
337
337
  */
338
338
  fromJSON(json, id) {
339
- var data = json;
339
+ let data = json;
340
340
 
341
341
  if (typeof id !== "undefined" ) {
342
342
  data = json[id];
@@ -349,7 +349,7 @@ import Point from "../geometries/point.js";
349
349
 
350
350
  if (data.length) {
351
351
  // go through all shapes and add them to the body
352
- for (var i = 0; i < data.length; i++) {
352
+ for (let i = 0; i < data.length; i++) {
353
353
  this.addVertices(data[i].shape, i);
354
354
  }
355
355
  // apply density, friction and bounce properties from the first shape
@@ -391,7 +391,7 @@ import Point from "../geometries/point.js";
391
391
  // remove the shape from shape list
392
392
  arrayUtil.remove(this.shapes, shape);
393
393
  // add everything left back
394
- for (var s = 0; s < this.shapes.length; s++) {
394
+ for (let s = 0; s < this.shapes.length; s++) {
395
395
  this.addShape(this.shapes[s]);
396
396
  }
397
397
  // return the length of the shape list
@@ -448,7 +448,7 @@ import Point from "../geometries/point.js";
448
448
  */
449
449
  respondToCollision(response) {
450
450
  // the overlap vector
451
- var overlap = response.overlapV;
451
+ let overlap = response.overlapV;
452
452
 
453
453
  // FIXME: Respond proportionally to object mass
454
454
 
@@ -470,7 +470,7 @@ import Point from "../geometries/point.js";
470
470
 
471
471
  if (!this.ignoreGravity) {
472
472
  // cancel the falling an jumping flags if necessary
473
- var dir = this.falling === true ? 1 : this.jumping === true ? -1 : 0;
473
+ let dir = this.falling === true ? 1 : this.jumping === true ? -1 : 0;
474
474
  this.falling = overlap.y >= dir;
475
475
  this.jumping = overlap.y <= -dir;
476
476
  }
@@ -495,10 +495,10 @@ import Point from "../geometries/point.js";
495
495
  * mySprite.body.forEach((shape, index, array) => { ... }, thisArg);
496
496
  */
497
497
  forEach(callback, thisArg) {
498
- var context = this, i = 0;
499
- var shapes = this.shapes;
498
+ let context = this, i = 0;
499
+ let shapes = this.shapes;
500
500
 
501
- var len = shapes.length;
501
+ let len = shapes.length;
502
502
 
503
503
  if (typeof callback !== "function") {
504
504
  throw new Error(callback + " is not a function");
@@ -527,7 +527,7 @@ import Point from "../geometries/point.js";
527
527
  * @returns {boolean} true if contains
528
528
  */
529
529
  contains() {
530
- var _x, _y;
530
+ let _x, _y;
531
531
 
532
532
  if (arguments.length === 2) {
533
533
  // x, y
@@ -541,7 +541,7 @@ import Point from "../geometries/point.js";
541
541
 
542
542
  if (this.getBounds().contains(_x, _y)) {
543
543
  // cannot use forEach here as cannot break out with a return
544
- for (var i = this.shapes.length, shape; i--, (shape = this.shapes[i]);) {
544
+ for (let i = this.shapes.length, shape; i--, (shape = this.shapes[i]);) {
545
545
  if (shape.contains(_x, _y)) {
546
546
  return true;
547
547
  }
@@ -615,7 +615,7 @@ import Point from "../geometries/point.js";
615
615
  update(dt) { // eslint-disable-line no-unused-vars
616
616
  // apply timer.tick to delta time for linear interpolation (when enabled)
617
617
  // #761 add delta time in body update
618
- var deltaTime = /* dt * */ timer.tick;
618
+ let deltaTime = /* dt * */ timer.tick;
619
619
 
620
620
  // apply force if defined
621
621
  if (this.force.x !== 0) {
@@ -627,7 +627,7 @@ import Point from "../geometries/point.js";
627
627
 
628
628
  // apply friction if defined
629
629
  if (this.friction.x > 0) {
630
- var fx = this.friction.x * deltaTime,
630
+ let fx = this.friction.x * deltaTime,
631
631
  nx = this.vel.x + fx,
632
632
  x = this.vel.x - fx;
633
633
 
@@ -637,7 +637,7 @@ import Point from "../geometries/point.js";
637
637
  );
638
638
  }
639
639
  if (this.friction.y > 0) {
640
- var fy = this.friction.y * deltaTime,
640
+ let fy = this.friction.y * deltaTime,
641
641
  ny = this.vel.y + fy,
642
642
  y = this.vel.y - fy;
643
643
 
@@ -62,7 +62,7 @@ import Vector2d from "./../math/vector2.js";
62
62
  }
63
63
 
64
64
  set x(value) {
65
- var deltaX = this.max.x - this.min.x;
65
+ let deltaX = this.max.x - this.min.x;
66
66
  this.min.x = value;
67
67
  this.max.x = value + deltaX;
68
68
  }
@@ -76,7 +76,7 @@ import Vector2d from "./../math/vector2.js";
76
76
  }
77
77
 
78
78
  set y(value) {
79
- var deltaY = this.max.y - this.min.y;
79
+ let deltaY = this.max.y - this.min.y;
80
80
 
81
81
  this.min.y = value;
82
82
  this.max.y = value + deltaY;
@@ -189,8 +189,8 @@ import Vector2d from "./../math/vector2.js";
189
189
  if (clear === true) {
190
190
  this.clear();
191
191
  }
192
- for (var i = 0; i < vertices.length; i++) {
193
- var vertex = vertices[i];
192
+ for (let i = 0; i < vertices.length; i++) {
193
+ let vertex = vertices[i];
194
194
  if (vertex.x > this.max.x) this.max.x = vertex.x;
195
195
  if (vertex.x < this.min.x) this.min.x = vertex.x;
196
196
  if (vertex.y > this.max.y) this.max.y = vertex.y;
@@ -242,7 +242,7 @@ import Vector2d from "./../math/vector2.js";
242
242
  * @param {Matrix2d} [m] - an optional transform to apply to the given frame coordinates
243
243
  */
244
244
  addFrame(x0, y0, x1, y1, m) {
245
- var v = pool.pull("Point");
245
+ let v = pool.pull("Point");
246
246
 
247
247
  this.addPoint(v.set(x0, y0), m);
248
248
  this.addPoint(v.set(x1, y0), m);
@@ -267,8 +267,8 @@ import Vector2d from "./../math/vector2.js";
267
267
  * @returns {boolean} True if the bounds contain the point, otherwise false
268
268
  */
269
269
  contains() {
270
- var arg0 = arguments[0];
271
- var _x1, _x2, _y1, _y2;
270
+ let arg0 = arguments[0];
271
+ let _x1, _x2, _y1, _y2;
272
272
  if (arguments.length === 2) {
273
273
  // x, y
274
274
  _x1 = _x2 = arg0;
@@ -322,7 +322,7 @@ import Vector2d from "./../math/vector2.js";
322
322
  * @param {number} y
323
323
  */
324
324
  translate() {
325
- var _x, _y;
325
+ let _x, _y;
326
326
  if (arguments.length === 2) {
327
327
  // x, y
328
328
  _x = arguments[0];
@@ -351,7 +351,7 @@ import Vector2d from "./../math/vector2.js";
351
351
  * @param {number} y
352
352
  */
353
353
  shift() {
354
- var _x, _y;
354
+ let _x, _y;
355
355
 
356
356
  if (arguments.length === 2) {
357
357
  // x, y
@@ -363,7 +363,7 @@ import Vector2d from "./../math/vector2.js";
363
363
  _y = arguments[0].y;
364
364
  }
365
365
 
366
- var deltaX = this.max.x - this.min.x,
366
+ let deltaX = this.max.x - this.min.x,
367
367
  deltaY = this.max.y - this.min.y;
368
368
 
369
369
  this.min.x = _x;
@@ -377,7 +377,7 @@ import Vector2d from "./../math/vector2.js";
377
377
  * @returns {Bounds}
378
378
  */
379
379
  clone() {
380
- var bounds = new Bounds();
380
+ let bounds = new Bounds();
381
381
  bounds.addBounds(this);
382
382
  return bounds;
383
383
  }
@@ -6,7 +6,7 @@ import { game } from "../index.js";
6
6
  * @namespace collision
7
7
  */
8
8
 
9
- var collision = {
9
+ let collision = {
10
10
 
11
11
  /**
12
12
  * The maximum number of children that a quadtree node can contain before it is split into sub-nodes.
@@ -101,7 +101,7 @@ var collision = {
101
101
  * @returns {Array.<Renderable>} an array of intersecting physic objects
102
102
  * @example
103
103
  * // define a line accross the viewport
104
- * var ray = new me.Line(
104
+ * let ray = new me.Line(
105
105
  * // absolute position of the line
106
106
  * 0, 0, [
107
107
  * // starting point relative to the initial position
@@ -45,7 +45,7 @@ export default class Detector {
45
45
  * @returns {boolean} true if they should collide, false otherwise
46
46
  */
47
47
  shouldCollide(a, b) {
48
- var bodyA = a.body,
48
+ let bodyA = a.body,
49
49
  bodyB = b.body;
50
50
  return (
51
51
  (typeof bodyA === "object" && typeof bodyB === "object") &&
@@ -66,9 +66,9 @@ export default class Detector {
66
66
  */
67
67
  collides(bodyA, bodyB, response = this.response) {
68
68
  // for each shape in body A
69
- for (var indexA = bodyA.shapes.length, shapeA; indexA--, (shapeA = bodyA.shapes[indexA]);) {
69
+ for (let indexA = bodyA.shapes.length, shapeA; indexA--, (shapeA = bodyA.shapes[indexA]);) {
70
70
  // for each shape in body B
71
- for (var indexB = bodyB.shapes.length, shapeB; indexB--, (shapeB = bodyB.shapes[indexB]);) {
71
+ for (let indexB = bodyB.shapes.length, shapeB; indexB--, (shapeB = bodyB.shapes[indexB]);) {
72
72
  // full SAT collision check
73
73
  if (SAT["test" + shapeA.shapeType + shapeB.shapeType].call(
74
74
  this,
@@ -98,9 +98,9 @@ export default class Detector {
98
98
  * @returns {boolean} in case of collision, false otherwise
99
99
  */
100
100
  collisions(objA) {
101
- var collisionCounter = 0;
101
+ let collisionCounter = 0;
102
102
  // retreive a list of potential colliding objects from the game world
103
- var candidates = this.world.broadphase.retrieve(objA);
103
+ let candidates = this.world.broadphase.retrieve(objA);
104
104
 
105
105
  boundsA.addBounds(objA.getBounds(), true);
106
106
  boundsA.addBounds(objA.body.getBounds());
@@ -142,7 +142,7 @@ export default class Detector {
142
142
  * @returns {Array.<Renderable>} an array of intersecting physic objects
143
143
  * @example
144
144
  * // define a line accross the viewport
145
- * var ray = new me.Line(
145
+ * let ray = new me.Line(
146
146
  * // absolute position of the line
147
147
  * 0, 0, [
148
148
  * // starting point relative to the initial position
@@ -159,28 +159,28 @@ export default class Detector {
159
159
  * }
160
160
  */
161
161
  rayCast(line, result = []) {
162
- var collisionCounter = 0;
162
+ let collisionCounter = 0;
163
163
 
164
164
  // retrieve a list of potential colliding objects from the game world
165
- var candidates = this.world.broadphase.retrieve(line);
165
+ let candidates = this.world.broadphase.retrieve(line);
166
166
 
167
- for (var i = candidates.length, objB; i--, (objB = candidates[i]);) {
167
+ for (let i = candidates.length, objB; i--, (objB = candidates[i]);) {
168
168
 
169
169
  // fast AABB check if both bounding boxes are overlaping
170
170
  if (objB.body && line.getBounds().overlaps(objB.getBounds())) {
171
171
 
172
172
  // go trough all defined shapes in B (if any)
173
- var bLen = objB.body.shapes.length;
173
+ let bLen = objB.body.shapes.length;
174
174
  if ( objB.body.shapes.length === 0) {
175
175
  continue;
176
176
  }
177
177
 
178
- var shapeA = line;
178
+ let shapeA = line;
179
179
 
180
180
  // go through all defined shapes in B
181
- var indexB = 0;
181
+ let indexB = 0;
182
182
  do {
183
- var shapeB = objB.body.getShape(indexB);
183
+ let shapeB = objB.body.getShape(indexB);
184
184
 
185
185
  // full SAT collision check
186
186
  if (SAT["test" + shapeA.shapeType + shapeB.shapeType]