melonjs 17.1.0 → 17.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 (246) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/re.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +2 -2
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +1 -1
  9. package/dist/melonjs.mjs/application/settings.js +1 -1
  10. package/dist/melonjs.mjs/audio/audio.js +13 -9
  11. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  14. package/dist/melonjs.mjs/geometries/line.js +1 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +17 -17
  16. package/dist/melonjs.mjs/geometries/point.js +1 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  18. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/geometries/toarccanvas.js +4 -6
  21. package/dist/melonjs.mjs/index.js +4 -4
  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 +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  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 +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +3 -3
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +5 -5
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +3 -3
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +5 -2
  46. package/dist/melonjs.mjs/loader/loader.js +34 -5
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -4
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
  51. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
  52. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
  53. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
  54. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
  55. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
  56. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
  57. package/dist/melonjs.mjs/loader/parsers/fontface.js +25 -15
  58. package/dist/melonjs.mjs/loader/parsers/image.js +3 -3
  59. package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
  60. package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
  61. package/dist/melonjs.mjs/loader/parsers/tmx.js +1 -1
  62. package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
  63. package/dist/melonjs.mjs/math/color.js +6 -6
  64. package/dist/melonjs.mjs/math/math.js +1 -1
  65. package/dist/melonjs.mjs/math/matrix2.js +7 -7
  66. package/dist/melonjs.mjs/math/matrix3.js +2 -2
  67. package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
  68. package/dist/melonjs.mjs/math/observable_vector3.js +4 -4
  69. package/dist/melonjs.mjs/math/vector2.js +3 -3
  70. package/dist/melonjs.mjs/math/vector3.js +4 -4
  71. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
  79. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
  80. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
  109. package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
  110. package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +1 -1
  111. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  119. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  120. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  121. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  122. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  123. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  124. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  125. package/dist/melonjs.mjs/particles/particle.js +1 -1
  126. package/dist/melonjs.mjs/particles/settings.js +1 -1
  127. package/dist/melonjs.mjs/physics/body.js +4 -4
  128. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  129. package/dist/melonjs.mjs/physics/collision.js +1 -1
  130. package/dist/melonjs.mjs/physics/detector.js +2 -2
  131. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  132. package/dist/melonjs.mjs/physics/response.js +1 -1
  133. package/dist/melonjs.mjs/physics/sat.js +1 -1
  134. package/dist/melonjs.mjs/physics/world.js +1 -1
  135. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  136. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  137. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  138. package/dist/melonjs.mjs/renderable/container.js +2 -2
  139. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  140. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  141. package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
  142. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  143. package/dist/melonjs.mjs/renderable/light2d.js +7 -7
  144. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  145. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  146. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  147. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  148. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  149. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  150. package/dist/melonjs.mjs/renderable/text/text.js +1 -1
  151. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  152. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  153. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  154. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  155. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  156. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  157. package/dist/melonjs.mjs/state/stage.js +1 -1
  158. package/dist/melonjs.mjs/state/state.js +5 -5
  159. package/dist/melonjs.mjs/system/device.js +6 -6
  160. package/dist/melonjs.mjs/system/dom.js +1 -1
  161. package/dist/melonjs.mjs/system/event.js +1 -1
  162. package/dist/melonjs.mjs/system/platform.js +4 -2
  163. package/dist/melonjs.mjs/system/pooling.js +2 -2
  164. package/dist/melonjs.mjs/system/save.js +2 -2
  165. package/dist/melonjs.mjs/system/timer.js +2 -2
  166. package/dist/melonjs.mjs/tweens/easing.js +68 -70
  167. package/dist/melonjs.mjs/tweens/interpolation.js +29 -29
  168. package/dist/melonjs.mjs/tweens/tween.js +43 -43
  169. package/dist/melonjs.mjs/utils/agent.js +1 -1
  170. package/dist/melonjs.mjs/utils/array.js +1 -1
  171. package/dist/melonjs.mjs/utils/file.js +1 -1
  172. package/dist/melonjs.mjs/utils/function.js +1 -1
  173. package/dist/melonjs.mjs/utils/string.js +1 -1
  174. package/dist/melonjs.mjs/utils/utils.js +1 -1
  175. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +6 -5
  176. package/dist/melonjs.mjs/video/renderer.js +17 -69
  177. package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +12 -6
  178. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  179. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  180. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
  181. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
  182. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
  183. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  184. package/dist/melonjs.mjs/video/video.js +1 -1
  185. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  186. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  187. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  194. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  195. package/dist/melonjs.mjs/video/webgl/utils/precision.js +5 -5
  196. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  197. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  198. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  199. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +8 -7
  200. package/dist/melonjs.module.js +358 -369
  201. package/dist/types/audio/audio.d.ts +8 -4
  202. package/dist/types/loader/cache.d.ts +1 -0
  203. package/dist/types/loader/loader.d.ts +7 -0
  204. package/dist/types/system/platform.d.ts +2 -0
  205. package/dist/types/video/renderer.d.ts +5 -15
  206. package/dist/types/video/rendertarget/canvasrendertarget.d.ts +6 -9
  207. package/package.json +13 -13
  208. package/src/application/application.js +1 -1
  209. package/src/application/header.js +1 -1
  210. package/src/audio/audio.js +12 -8
  211. package/src/geometries/path2d.js +16 -16
  212. package/src/index.js +2 -2
  213. package/src/level/tiled/TMXObject.js +1 -1
  214. package/src/level/tiled/TMXTileMap.js +1 -1
  215. package/src/level/tiled/TMXUtils.js +2 -2
  216. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +4 -4
  217. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  218. package/src/loader/cache.js +3 -0
  219. package/src/loader/loader.js +33 -3
  220. package/src/loader/parsers/fontface.js +24 -14
  221. package/src/loader/parsers/image.js +2 -2
  222. package/src/math/color.js +5 -5
  223. package/src/math/matrix2.js +6 -6
  224. package/src/math/matrix3.js +1 -1
  225. package/src/math/observable_vector2.js +2 -2
  226. package/src/math/observable_vector3.js +3 -3
  227. package/src/math/vector2.js +2 -2
  228. package/src/math/vector3.js +3 -3
  229. package/src/physics/body.js +3 -3
  230. package/src/physics/detector.js +1 -1
  231. package/src/renderable/container.js +1 -1
  232. package/src/renderable/light2d.js +6 -6
  233. package/src/state/state.js +4 -4
  234. package/src/system/device.js +5 -5
  235. package/src/system/platform.js +2 -0
  236. package/src/system/pooling.js +1 -1
  237. package/src/system/save.js +1 -1
  238. package/src/system/timer.js +1 -1
  239. package/src/tweens/easing.js +67 -69
  240. package/src/tweens/interpolation.js +28 -28
  241. package/src/tweens/tween.js +42 -42
  242. package/src/video/canvas/canvas_renderer.js +5 -4
  243. package/src/video/renderer.js +16 -68
  244. package/src/video/rendertarget/canvasrendertarget.js +11 -5
  245. package/src/video/webgl/utils/precision.js +4 -4
  246. package/src/video/webgl/webgl_renderer.js +7 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -187,7 +187,7 @@ class Application {
187
187
 
188
188
  // identify parent element and/or the html target for resizing
189
189
  this.parentElement = getElement(this.settings.parent);
190
- if (typeof this.settings.scaleTarget !== "undefined" ) {
190
+ if (typeof this.settings.scaleTarget !== "undefined") {
191
191
  this.settings.scaleTarget = getElement(this.settings.scaleTarget);
192
192
  }
193
193
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -27,7 +27,7 @@ function consoleHeader(app) {
27
27
  language
28
28
  );
29
29
 
30
- console.log( "resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
30
+ console.log("resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
31
31
  ", got " + app.renderer.width + "x" + app.renderer.height
32
32
  );
33
33
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -283,14 +283,15 @@ function rate(sound_name, ...args) {
283
283
  * @memberof audio
284
284
  * @param {string} sound_name - audio clip name - case sensitive
285
285
  * @param {number} [pan] - the panning value - A value of -1.0 is all the way left and 1.0 is all the way right.
286
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
286
287
  * @return {number} the current panning value
287
288
  * @example
288
289
  * me.audio.stereo("cling", -1);
289
290
  */
290
- function stereo(sound_name, pan) {
291
+ function stereo(sound_name, pan, id) {
291
292
  let sound = audioTracks[sound_name];
292
293
  if (sound && typeof sound !== "undefined") {
293
- return sound.stereo(pan);
294
+ return sound.stereo(pan, id);
294
295
  } else {
295
296
  throw new Error("audio clip " + sound_name + " does not exist");
296
297
  }
@@ -303,12 +304,13 @@ function stereo(sound_name, pan) {
303
304
  * @param {Number} x - the x-position of the audio source.
304
305
  * @param {Number} y - the y-position of the audio source.
305
306
  * @param {Number} z - the z-position of the audio source.
307
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
306
308
  * @return {Array} the current 3D spatial position: [x, y, z]
307
309
  */
308
- function position(sound_name, x, y, z) {
310
+ function position(sound_name, x, y, z, id) {
309
311
  let sound = audioTracks[sound_name];
310
312
  if (sound && typeof sound !== "undefined") {
311
- return sound.pos(x, y, z);
313
+ return sound.pos(x, y, z, id);
312
314
  } else {
313
315
  throw new Error("audio clip " + sound_name + " does not exist");
314
316
  }
@@ -322,12 +324,13 @@ function position(sound_name, x, y, z) {
322
324
  * @param {Number} x - the x-orientation of the audio source.
323
325
  * @param {Number} y - the y-orientation of the audio source.
324
326
  * @param {Number} z - the z-orientation of the audio source.
327
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
325
328
  * @return {Array} the current 3D spatial orientation: [x, y, z]
326
329
  */
327
- function orientation(sound_name, x, y, z) {
330
+ function orientation(sound_name, x, y, z, id) {
328
331
  let sound = audioTracks[sound_name];
329
332
  if (sound && typeof sound !== "undefined") {
330
- return sound.orientation(x, y, z);
333
+ return sound.orientation(x, y, z, id);
331
334
  } else {
332
335
  throw new Error("audio clip " + sound_name + " does not exist");
333
336
  }
@@ -347,6 +350,7 @@ function orientation(sound_name, x, y, z) {
347
350
  * @param {string} [settings.refDistance=1] - A reference distance for reducing volume as source moves further from the listener. This is simply a variable of the distance model and has a different effect depending on which model is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.
348
351
  * @param {string} [settings.rolloffFactor=1] - How quickly the volume reduces as source moves from listener. This is simply a variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]` with `inverse` and `exponential`.
349
352
  * @param {string} [settings.panningModel="HRTF"] - Determines which spatialization algorithm is used to position audio. Can be `HRTF` or `equalpower`.
353
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
350
354
  * @return {Object} current panner attributes.
351
355
  * @example
352
356
  * me.audio.panner("cling", {
@@ -356,10 +360,10 @@ function orientation(sound_name, x, y, z) {
356
360
  * distanceModel: 'exponential'
357
361
  * });
358
362
  */
359
- function panner(sound_name, attributes) {
363
+ function panner(sound_name, attributes, id) {
360
364
  let sound = audioTracks[sound_name];
361
365
  if (sound && typeof sound !== "undefined") {
362
- return sound.pannerAttr(attributes);
366
+ return sound.pannerAttr(attributes, id);
363
367
  } else {
364
368
  throw new Error("audio clip " + sound_name + " does not exist");
365
369
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -71,12 +71,12 @@ class Path2D {
71
71
  break;
72
72
  case "H":
73
73
  // H take 1 coordinate
74
- lastPoint = points.length === 0 ? startPoint : points[points.length-1];
74
+ lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
75
75
  this.lineTo(lastPoint.x + coordinates[0], lastPoint.y);
76
76
  break;
77
77
  case "V":
78
78
  // V take 1 coordinate
79
- lastPoint = points.length === 0 ? startPoint : points[points.length-1];
79
+ lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
80
80
  this.lineTo(lastPoint.x, lastPoint.y + coordinates[0]);
81
81
  break;
82
82
  case "M":
@@ -128,7 +128,7 @@ class Path2D {
128
128
  let points = this.points;
129
129
  if (points.length > 0) {
130
130
  let firstPoint = points[0];
131
- if (!firstPoint.equals(points[points.length-1])) {
131
+ if (!firstPoint.equals(points[points.length - 1])) {
132
132
  this.lineTo(firstPoint.x, firstPoint.y);
133
133
  }
134
134
  this.isDirty = true;
@@ -153,14 +153,14 @@ class Path2D {
153
153
  }
154
154
 
155
155
  // calculate all vertices
156
- for (let i = 0; i < indicesLength; i++ ) {
156
+ for (let i = 0; i < indicesLength; i++) {
157
157
  let point = points[indices[i]];
158
158
  vertices[i].set(point.x, point.y);
159
159
  }
160
160
 
161
161
  // recycle overhead from a previous triangulation
162
162
  while (vertices.length > indicesLength) {
163
- pool.push(vertices[vertices.length-1]);
163
+ pool.push(vertices[vertices.length - 1]);
164
164
  vertices.length -= 1;
165
165
  }
166
166
  this.isDirty = false;
@@ -187,7 +187,7 @@ class Path2D {
187
187
  lineTo(x, y) {
188
188
  let points = this.points;
189
189
  let startPoint = this.startPoint;
190
- let lastPoint = points.length === 0 ? startPoint : points[points.length-1];
190
+ let lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
191
191
 
192
192
  if (!startPoint.equals(lastPoint)) {
193
193
  points.push(pool.pull("Point", startPoint.x, startPoint.y));
@@ -216,7 +216,7 @@ class Path2D {
216
216
  // based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
217
217
  //bring angles all in [0, 2*PI] range
218
218
  if (startAngle === endAngle) return;
219
- const fullCircle = anticlockwise ? Math.abs(startAngle-endAngle) >= (TAU) : Math.abs(endAngle-startAngle) >= (TAU);
219
+ const fullCircle = anticlockwise ? Math.abs(startAngle - endAngle) >= (TAU) : Math.abs(endAngle - startAngle) >= (TAU);
220
220
 
221
221
  startAngle = startAngle % (TAU);
222
222
  endAngle = endAngle % (TAU);
@@ -225,7 +225,7 @@ class Path2D {
225
225
  if (endAngle < 0) endAngle += TAU;
226
226
 
227
227
  if (startAngle >= endAngle) {
228
- endAngle+= TAU;
228
+ endAngle += TAU;
229
229
  }
230
230
 
231
231
  let diff = endAngle - startAngle;
@@ -266,7 +266,7 @@ class Path2D {
266
266
  arcTo(x1, y1, x2, y2, radius) {
267
267
  let points = this.points;
268
268
  let startPoint = this.startPoint;
269
- let lastPoint = points.length === 0 ? startPoint : points[points.length-1];
269
+ let lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
270
270
 
271
271
  // based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
272
272
  let x0 = lastPoint.x, y0 = lastPoint.y;
@@ -281,8 +281,8 @@ class Path2D {
281
281
  let angle = Math.atan2(a1, a0) - Math.atan2(b1, b0);
282
282
 
283
283
  //work out tangent points using tan(θ) = opposite / adjacent; angle/2 because hypotenuse is the bisection of a,b
284
- let tan_angle_div2 = Math.tan(angle/2);
285
- let adj_l = (radius/tan_angle_div2);
284
+ let tan_angle_div2 = Math.tan(angle / 2);
285
+ let adj_l = (radius / tan_angle_div2);
286
286
 
287
287
  let tangent1_pointx = x1 + a0 * adj_l, tangent1_pointy = y1 + a1 * adj_l;
288
288
  let tangent2_pointx = x1 + b0 * adj_l, tangent2_pointy = y1 + b1 * adj_l;
@@ -317,7 +317,7 @@ class Path2D {
317
317
  ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise = false) {
318
318
  // based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
319
319
  if (startAngle === endAngle) return;
320
- let fullCircle = anticlockwise ? Math.abs(startAngle-endAngle) >= (TAU) : Math.abs(endAngle-startAngle) >= (TAU);
320
+ let fullCircle = anticlockwise ? Math.abs(startAngle - endAngle) >= (TAU) : Math.abs(endAngle - startAngle) >= (TAU);
321
321
 
322
322
  //bring angles all in [0, 2*PI] range
323
323
  startAngle = startAngle % (TAU);
@@ -325,7 +325,7 @@ class Path2D {
325
325
  if (startAngle < 0) startAngle += TAU;
326
326
  if (endAngle < 0) endAngle += TAU;
327
327
 
328
- if (startAngle>=endAngle) {
328
+ if (startAngle >= endAngle) {
329
329
  endAngle += TAU;
330
330
  }
331
331
 
@@ -355,7 +355,7 @@ class Path2D {
355
355
  const _y1 = radiusY * Math.sin(angle);
356
356
  const _x2 = x + _x1 * cos_rotation - _y1 * sin_rotation;
357
357
  const _y2 = y + _x1 * sin_rotation + _y1 * cos_rotation;
358
- this.lineTo( _x2, _y2);
358
+ this.lineTo(_x2, _y2);
359
359
  angle += angleStep;
360
360
  }
361
361
  // close the ellipse
@@ -373,7 +373,7 @@ class Path2D {
373
373
  quadraticCurveTo(cpX, cpY, x, y) {
374
374
  const points = this.points;
375
375
  const startPoint = this.startPoint;
376
- const lastPoint = points.length === 0 ? startPoint : points[points.length-1];
376
+ const lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
377
377
  const endPoint = pool.pull("Point").set(x, y);
378
378
  const controlPoint = pool.pull("Point").set(cpX, cpY);
379
379
  const resolution = this.arcResolution;
@@ -401,7 +401,7 @@ class Path2D {
401
401
  bezierCurveTo(cp1X, cp1Y, cp2X, cp2Y, x, y) {
402
402
  const points = this.points;
403
403
  const startPoint = this.startPoint;
404
- const lastPoint = points.length === 0 ? startPoint : points[points.length-1];
404
+ const lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
405
405
  const endPoint = pool.pull("Point").set(x, y);
406
406
  const controlPoint1 = pool.pull("Point").set(cp1X, cp1Y);
407
407
  const controlPoint2 = pool.pull("Point").set(cp2X, cp2Y);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -60,7 +60,7 @@ function endpointToCenterParameterization(x1, y1, x2, y2, largeArcFlag, sweepFla
60
60
 
61
61
  const [rx, ry] = correctRadii(srx, sry, x1p, y1p);
62
62
 
63
- const sign = largeArcFlag !== sweepFlag ? 1 : -1;
63
+ const sign = -1;
64
64
  const n = pow(rx) * pow(ry) - pow(rx) * pow(y1p) - pow(ry) * pow(x1p);
65
65
  const d = pow(rx) * pow(y1p) + pow(ry) * pow(x1p);
66
66
 
@@ -80,11 +80,9 @@ function endpointToCenterParameterization(x1, y1, x2, y2, largeArcFlag, sweepFla
80
80
  const deltaAngle0 = vec2Angle(a, b) % (2 * Math.PI);
81
81
 
82
82
  const deltaAngle =
83
- !sweepFlag && deltaAngle0 > 0
83
+ deltaAngle0 > 0
84
84
  ? deltaAngle0 - 2 * Math.PI
85
- : sweepFlag && deltaAngle0 < 0
86
- ? deltaAngle0 + 2 * Math.PI
87
- : deltaAngle0;
85
+ : deltaAngle0;
88
86
 
89
87
  const endAngle = startAngle + deltaAngle;
90
88
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -112,7 +112,7 @@ import { initKeyboardEvent } from './input/keyboard.js';
112
112
  * @name version
113
113
  * @type {string}
114
114
  */
115
- const version = "17.1.0";
115
+ const version = "17.2.0";
116
116
 
117
117
  /**
118
118
  * a flag indicating that melonJS is fully initialized
@@ -153,7 +153,7 @@ function boot() {
153
153
  }
154
154
 
155
155
  // output melonJS version in the console
156
- console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
156
+ console.log("melonJS 2 (v" + version + ") | http://melonjs.org");
157
157
 
158
158
  // register all built-ins objects into the object pool
159
159
  pool.register("me.Entity", Entity);
@@ -220,7 +220,7 @@ function boot() {
220
220
  emit(BOOT);
221
221
 
222
222
  // enable/disable the cache
223
- setNocache( getUriFragment().nocache || false );
223
+ setNocache(getUriFragment().nocache || false);
224
224
 
225
225
  // automatically enable keyboard events
226
226
  initKeyboardEvent();
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -235,7 +235,7 @@ class TMXObject {
235
235
  let _polygon = pool.pull("Polygon", 0, 0, this.points);
236
236
  let isConvex = _polygon.isConvex();
237
237
  // make sure it's a convex polygon
238
- if (isConvex === false ) {
238
+ if (isConvex === false) {
239
239
  throw new Error("collision polygones in Tiled should be defined as Convex");
240
240
  } else if (isConvex === null) {
241
241
  throw new Error("invalid polygone");
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -206,7 +206,7 @@ class TMXTileMap {
206
206
  if (this.version !== "undefined" && this.version !== "") {
207
207
  // deprecation warning if map tiled version is older than 1.5
208
208
  if (checkVersion(this.version, "1.5") < 0) {
209
- warning("("+this.name+") Tiled Map format version 1.4 and below", "format 1.5 or higher", "10.4.4");
209
+ warning("(" + this.name + ") Tiled Map format version 1.4 and below", "format 1.5 or higher", "10.4.4");
210
210
  }
211
211
  }
212
212
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -52,7 +52,7 @@ function setTMXValue(name, type, value) {
52
52
  try {
53
53
  value = JSON.parse(match);
54
54
  }
55
- catch (e) {
55
+ catch {
56
56
  throw new Error("Unable to parse JSON: " + match);
57
57
  }
58
58
  }
@@ -63,7 +63,7 @@ function setTMXValue(name, type, value) {
63
63
  // eslint-disable-next-line
64
64
  value = Function("'use strict';return (" + match + ")")();
65
65
  }
66
- catch (e) {
66
+ catch {
67
67
  throw new Error("Unable to evaluate: " + match);
68
68
  }
69
69
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.1.0
2
+ * melonJS Game Engine - v17.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 - v17.1.0
2
+ * melonJS Game Engine - v17.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
@@ -190,10 +190,10 @@ class TMXHexagonalRenderer extends TMXRenderer {
190
190
  }
191
191
  } else {
192
192
  if ((x & 1) ^ this.staggerEven) {
193
- ret.set(x -1, y + 1);
193
+ ret.set(x - 1, y + 1);
194
194
  }
195
195
  else {
196
- ret.set(x -1, y);
196
+ ret.set(x - 1, y);
197
197
  }
198
198
  }
199
199
  return ret;
@@ -427,11 +427,11 @@ class TMXHexagonalRenderer extends TMXRenderer {
427
427
  let staggeredRow = this.doStaggerX(startTile.x + layer.pos.x);
428
428
 
429
429
  // main drawing loop
430
- for (; startPos.y < rect.bottom && startTile.y < endY; ) {
430
+ for (; startPos.y < rect.bottom && startTile.y < endY;) {
431
431
  rowTile.setV(startTile);
432
432
  rowPos.setV(startPos);
433
433
 
434
- for (; rowPos.x < rect.right && rowTile.x < endX; rowTile.x+=2) {
434
+ for (; rowPos.x < rect.right && rowTile.x < endX; rowTile.x += 2) {
435
435
  tile = layer.cellAt(rowTile.x, rowTile.y, false);
436
436
  if (tile) {
437
437
  // draw the tile