melonjs 10.1.1 → 10.2.3

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 (92) hide show
  1. package/README.md +6 -10
  2. package/dist/melonjs.js +3114 -2866
  3. package/dist/melonjs.min.js +3 -3
  4. package/dist/melonjs.module.d.ts +2588 -2498
  5. package/dist/melonjs.module.js +2694 -2479
  6. package/package.json +10 -11
  7. package/src/audio/audio.js +43 -43
  8. package/src/camera/camera2d.js +52 -74
  9. package/src/entity/draggable.js +18 -17
  10. package/src/entity/droptarget.js +19 -18
  11. package/src/entity/entity.js +22 -26
  12. package/src/game.js +3 -3
  13. package/src/index.js +15 -11
  14. package/src/input/gamepad.js +13 -13
  15. package/src/input/input.js +1 -1
  16. package/src/input/keyboard.js +14 -16
  17. package/src/input/pointer.js +42 -35
  18. package/src/input/pointerevent.js +25 -33
  19. package/src/lang/deprecated.js +3 -3
  20. package/src/level/level.js +24 -16
  21. package/src/level/tiled/TMXGroup.js +6 -6
  22. package/src/level/tiled/TMXLayer.js +31 -31
  23. package/src/level/tiled/TMXObject.js +19 -19
  24. package/src/level/tiled/TMXTile.js +11 -12
  25. package/src/level/tiled/TMXTileMap.js +23 -21
  26. package/src/level/tiled/TMXTileset.js +13 -13
  27. package/src/level/tiled/TMXTilesetGroup.js +4 -4
  28. package/src/level/tiled/TMXUtils.js +13 -11
  29. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  30. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  31. package/src/level/tiled/renderer/TMXRenderer.js +17 -17
  32. package/src/loader/loader.js +31 -27
  33. package/src/loader/loadingscreen.js +44 -75
  34. package/src/math/color.js +45 -64
  35. package/src/math/math.js +17 -17
  36. package/src/math/matrix2.js +46 -46
  37. package/src/math/matrix3.js +64 -64
  38. package/src/math/observable_vector2.js +45 -57
  39. package/src/math/observable_vector3.js +56 -70
  40. package/src/math/vector2.js +60 -59
  41. package/src/math/vector3.js +65 -64
  42. package/src/particles/emitter.js +53 -55
  43. package/src/particles/particle.js +1 -1
  44. package/src/physics/body.js +45 -51
  45. package/src/physics/bounds.js +36 -36
  46. package/src/physics/collision.js +15 -16
  47. package/src/physics/detector.js +10 -11
  48. package/src/physics/quadtree.js +18 -16
  49. package/src/physics/sat.js +17 -17
  50. package/src/physics/world.js +12 -10
  51. package/src/plugin/plugin.js +6 -6
  52. package/src/renderable/GUI.js +13 -18
  53. package/src/renderable/collectable.js +3 -3
  54. package/src/renderable/colorlayer.js +4 -4
  55. package/src/renderable/container.js +64 -46
  56. package/src/renderable/imagelayer.js +30 -31
  57. package/src/renderable/nineslicesprite.js +158 -69
  58. package/src/renderable/renderable.js +68 -67
  59. package/src/renderable/sprite.js +57 -43
  60. package/src/renderable/trigger.js +14 -15
  61. package/src/shapes/ellipse.js +27 -26
  62. package/src/shapes/line.js +8 -7
  63. package/src/shapes/poly.js +33 -31
  64. package/src/shapes/rectangle.js +50 -96
  65. package/src/state/stage.js +8 -8
  66. package/src/state/state.js +56 -56
  67. package/src/system/device.js +97 -84
  68. package/src/system/event.js +72 -72
  69. package/src/system/pooling.js +14 -14
  70. package/src/system/save.js +6 -3
  71. package/src/system/timer.js +20 -20
  72. package/src/text/bitmaptext.js +27 -33
  73. package/src/text/bitmaptextdata.js +9 -9
  74. package/src/text/text.js +118 -59
  75. package/src/tweens/easing.js +4 -4
  76. package/src/tweens/interpolation.js +4 -4
  77. package/src/tweens/tween.js +37 -27
  78. package/src/utils/agent.js +9 -8
  79. package/src/utils/array.js +4 -4
  80. package/src/utils/file.js +4 -4
  81. package/src/utils/function.js +5 -5
  82. package/src/utils/string.js +12 -12
  83. package/src/utils/utils.js +19 -19
  84. package/src/video/canvas/canvas_renderer.js +90 -90
  85. package/src/video/renderer.js +40 -39
  86. package/src/video/texture.js +85 -76
  87. package/src/video/texture_cache.js +11 -0
  88. package/src/video/video.js +31 -31
  89. package/src/video/webgl/buffer/vertex.js +9 -1
  90. package/src/video/webgl/glshader.js +20 -20
  91. package/src/video/webgl/webgl_compositor.js +47 -46
  92. package/src/video/webgl/webgl_renderer.js +104 -104
@@ -13,10 +13,10 @@ import { clamp } from "./../math/math.js";
13
13
  * @extends me.Rect
14
14
  * @memberOf me
15
15
  * @constructor
16
- * @param {Number} x position of the renderable object (accessible through inherited pos.x property)
17
- * @param {Number} y position of the renderable object (accessible through inherited pos.y property)
18
- * @param {Number} width object width
19
- * @param {Number} height object height
16
+ * @param {number} x position of the renderable object (accessible through inherited pos.x property)
17
+ * @param {number} y position of the renderable object (accessible through inherited pos.y property)
18
+ * @param {number} width object width
19
+ * @param {number} height object height
20
20
  */
21
21
  class Renderable extends Rect {
22
22
 
@@ -37,7 +37,7 @@ class Renderable extends Rect {
37
37
  /**
38
38
  * If true then physic collision and input events will not impact this renderable
39
39
  * @public
40
- * @type Boolean
40
+ * @type {boolean}
41
41
  * @default true
42
42
  * @name isKinematic
43
43
  * @memberOf me.Renderable
@@ -49,7 +49,6 @@ class Renderable extends Rect {
49
49
  * @public
50
50
  * @type {me.Body}
51
51
  * @see me.Body
52
- * @see me.collision#check
53
52
  * @name body
54
53
  * @memberOf me.Renderable#
55
54
  * @example
@@ -89,7 +88,7 @@ class Renderable extends Rect {
89
88
  /**
90
89
  * the renderable default transformation matrix
91
90
  * @public
92
- * @type me.Matrix2d
91
+ * @type {me.Matrix2d}
93
92
  * @name currentTransform
94
93
  * @memberOf me.Renderable#
95
94
  */
@@ -103,7 +102,7 @@ class Renderable extends Rect {
103
102
  * a GUID will be allocated for any renderable object added <br>
104
103
  * to an object container (including the `me.game.world` container)
105
104
  * @public
106
- * @type String
105
+ * @type {string}
107
106
  * @name GUID
108
107
  * @memberOf me.Renderable
109
108
  */
@@ -112,7 +111,7 @@ class Renderable extends Rect {
112
111
  /**
113
112
  * an event handler that is called when the renderable leave or enter a camera viewport
114
113
  * @public
115
- * @type function
114
+ * @type {Function}
116
115
  * @default undefined
117
116
  * @name onVisibilityChange
118
117
  * @memberOf me.Renderable#
@@ -128,7 +127,7 @@ class Renderable extends Rect {
128
127
  /**
129
128
  * Whether the renderable object will always update, even when outside of the viewport<br>
130
129
  * @public
131
- * @type Boolean
130
+ * @type {boolean}
132
131
  * @default false
133
132
  * @name alwaysUpdate
134
133
  * @memberOf me.Renderable
@@ -138,7 +137,7 @@ class Renderable extends Rect {
138
137
  /**
139
138
  * Whether to update this object when the game is paused.
140
139
  * @public
141
- * @type Boolean
140
+ * @type {boolean}
142
141
  * @default false
143
142
  * @name updateWhenPaused
144
143
  * @memberOf me.Renderable
@@ -148,7 +147,7 @@ class Renderable extends Rect {
148
147
  /**
149
148
  * make the renderable object persistent over level changes<br>
150
149
  * @public
151
- * @type Boolean
150
+ * @type {boolean}
152
151
  * @default false
153
152
  * @name isPersistent
154
153
  * @memberOf me.Renderable
@@ -159,7 +158,7 @@ class Renderable extends Rect {
159
158
  * If true, this renderable will be rendered using screen coordinates,
160
159
  * as opposed to world coordinates. Use this, for example, to define UI elements.
161
160
  * @public
162
- * @type Boolean
161
+ * @type {boolean}
163
162
  * @default false
164
163
  * @name floating
165
164
  * @memberOf me.Renderable
@@ -175,7 +174,7 @@ class Renderable extends Rect {
175
174
  * <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
176
175
  * To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
177
176
  * @public
178
- * @type me.ObservableVector2d
177
+ * @type {me.ObservableVector2d}
179
178
  * @default <0.5,0.5>
180
179
  * @name anchorPoint
181
180
  * @memberOf me.Renderable#
@@ -190,7 +189,7 @@ class Renderable extends Rect {
190
189
  * When enabled, an object container will automatically apply
191
190
  * any defined transformation before calling the child draw method.
192
191
  * @public
193
- * @type Boolean
192
+ * @type {boolean}
194
193
  * @default true
195
194
  * @name autoTransform
196
195
  * @memberOf me.Renderable
@@ -214,7 +213,7 @@ class Renderable extends Rect {
214
213
  * @see me.Renderable#setOpacity
215
214
  * @see me.Renderable#getOpacity
216
215
  * @public
217
- * @type Number
216
+ * @type {number}
218
217
  * @default 1.0
219
218
  * @name me.Renderable#alpha
220
219
  */
@@ -223,7 +222,7 @@ class Renderable extends Rect {
223
222
  /**
224
223
  * a reference to the parent object that contains this renderable
225
224
  * @public
226
- * @type me.Container|me.Entity
225
+ * @type {me.Container|me.Entity}
227
226
  * @default undefined
228
227
  * @name me.Renderable#ancestor
229
228
  */
@@ -273,7 +272,7 @@ class Renderable extends Rect {
273
272
  /**
274
273
  * The name of the renderable
275
274
  * @public
276
- * @type {String}
275
+ * @type {string}
277
276
  * @name name
278
277
  * @default ""
279
278
  * @memberOf me.Renderable
@@ -295,7 +294,7 @@ class Renderable extends Rect {
295
294
 
296
295
  /**
297
296
  * when true the renderable will be redrawn during the next update cycle
298
- * @type {Boolean}
297
+ * @type {boolean}
299
298
  * @name isDirty
300
299
  * @default false
301
300
  * @memberOf me.Renderable#
@@ -315,26 +314,33 @@ class Renderable extends Rect {
315
314
  this.setOpacity(1.0);
316
315
  }
317
316
 
317
+ /**
318
+ * Whether the renderable object is floating, or contained in a floating container
319
+ * @public
320
+ * @see me.Renderable#floating
321
+ * @readonly
322
+ * @type {boolean}
323
+ * @name isFloating
324
+ * @memberOf me.Renderable
325
+ */
326
+ get isFloating() {
327
+ return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true);
328
+ }
329
+
318
330
  /**
319
331
  * Whether the renderable object is visible and within the viewport
320
332
  * @public
321
333
  * @readonly
322
- * @type Boolean
334
+ * @type {boolean}
323
335
  * @default false
324
336
  * @name inViewport
325
337
  * @memberOf me.Renderable
326
338
  */
327
339
 
328
- /**
329
- * @ignore
330
- */
331
340
  get inViewport() {
332
341
  return this._inViewport;
333
342
  }
334
343
 
335
- /**
336
- * @ignore
337
- */
338
344
  set inViewport(value) {
339
345
  if (this._inViewport !== value) {
340
346
  this._inViewport = value;
@@ -348,14 +354,11 @@ class Renderable extends Rect {
348
354
  * returns true if this renderable is flipped on the horizontal axis
349
355
  * @public
350
356
  * @see me.Renderable#flipX
351
- * @type {Boolean}
357
+ * @type {boolean}
352
358
  * @name isFlippedX
353
359
  * @memberOf me.Renderable
354
360
  */
355
361
 
356
- /**
357
- * @ignore
358
- */
359
362
  get isFlippedX() {
360
363
  return this._flip.x === true;
361
364
  }
@@ -364,14 +367,11 @@ class Renderable extends Rect {
364
367
  * returns true if this renderable is flipped on the vertical axis
365
368
  * @public
366
369
  * @see me.Renderable#flipY
367
- * @type {Boolean}
370
+ * @type {boolean}
368
371
  * @name isFlippedY
369
372
  * @memberOf me.Renderable
370
373
  */
371
374
 
372
- /**
373
- * @ignore
374
- */
375
375
  get isFlippedY() {
376
376
  return this._flip.y === true;
377
377
  }
@@ -381,7 +381,7 @@ class Renderable extends Rect {
381
381
  * @name getBounds
382
382
  * @memberOf me.Renderable.prototype
383
383
  * @function
384
- * @return {me.Bounds} bounding box Rectangle object
384
+ * @returns {me.Bounds} bounding box Rectangle object
385
385
  */
386
386
  getBounds() {
387
387
  if (typeof this._bounds === "undefined") {
@@ -402,7 +402,7 @@ class Renderable extends Rect {
402
402
  * @name getOpacity
403
403
  * @memberOf me.Renderable.prototype
404
404
  * @function
405
- * @return {Number} current opacity value between 0 and 1
405
+ * @returns {number} current opacity value between 0 and 1
406
406
  */
407
407
  getOpacity() {
408
408
  return this.alpha;
@@ -413,7 +413,7 @@ class Renderable extends Rect {
413
413
  * @name setOpacity
414
414
  * @memberOf me.Renderable.prototype
415
415
  * @function
416
- * @param {Number} alpha opacity value between 0.0 and 1.0
416
+ * @param {number} alpha opacity value between 0.0 and 1.0
417
417
  */
418
418
  setOpacity(alpha) {
419
419
  if (typeof (alpha) === "number") {
@@ -432,8 +432,8 @@ class Renderable extends Rect {
432
432
  * @name flipX
433
433
  * @memberOf me.Renderable.prototype
434
434
  * @function
435
- * @param {Boolean} [flip=true] `true` to flip this renderable.
436
- * @return {me.Renderable} Reference to this object for method chaining
435
+ * @param {boolean} [flip=true] `true` to flip this renderable.
436
+ * @returns {me.Renderable} Reference to this object for method chaining
437
437
  */
438
438
  flipX(flip = true) {
439
439
  this._flip.x = !!flip;
@@ -447,8 +447,8 @@ class Renderable extends Rect {
447
447
  * @name flipY
448
448
  * @memberOf me.Renderable.prototype
449
449
  * @function
450
- * @param {Boolean} [flip=true] `true` to flip this renderable.
451
- * @return {me.Renderable} Reference to this object for method chaining
450
+ * @param {boolean} [flip=true] `true` to flip this renderable.
451
+ * @returns {me.Renderable} Reference to this object for method chaining
452
452
  */
453
453
  flipY(flip = true) {
454
454
  this._flip.y = !!flip;
@@ -462,8 +462,8 @@ class Renderable extends Rect {
462
462
  * @memberOf me.Renderable.prototype
463
463
  * @see me.Renderable#currentTransform
464
464
  * @function
465
- * @param {me.Matrix2d} matrix the transformation matrix
466
- * @return {me.Renderable} Reference to this object for method chaining
465
+ * @param {me.Matrix2d} m the transformation matrix
466
+ * @returns {me.Renderable} Reference to this object for method chaining
467
467
  */
468
468
  transform(m) {
469
469
  this.currentTransform.multiply(m);
@@ -479,7 +479,7 @@ class Renderable extends Rect {
479
479
  * @memberOf me.Renderable
480
480
  * @function
481
481
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target
482
- * @return {Number} angle in radians
482
+ * @returns {number} angle in radians
483
483
  */
484
484
  angleTo(target) {
485
485
  var a = this.getBounds();
@@ -503,7 +503,7 @@ class Renderable extends Rect {
503
503
  * @memberOf me.Renderable
504
504
  * @function
505
505
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target
506
- * @return {Number} distance
506
+ * @returns {number} distance
507
507
  */
508
508
  distanceTo(target) {
509
509
  var a = this.getBounds();
@@ -527,7 +527,7 @@ class Renderable extends Rect {
527
527
  * @memberOf me.Renderable.prototype
528
528
  * @function
529
529
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target the renderable or position to look at
530
- * @return {me.Renderable} Reference to this object for method chaining
530
+ * @returns {me.Renderable} Reference to this object for method chaining
531
531
  */
532
532
  lookAt(target) {
533
533
  var position;
@@ -550,13 +550,13 @@ class Renderable extends Rect {
550
550
  * @name rotate
551
551
  * @memberOf me.Renderable.prototype
552
552
  * @function
553
- * @param {Number} angle The angle to rotate (in radians)
553
+ * @param {number} angle The angle to rotate (in radians)
554
554
  * @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around
555
- * @return {me.Renderable} Reference to this object for method chaining
555
+ * @returns {me.Renderable} Reference to this object for method chaining
556
556
  */
557
- rotate(angle) {
557
+ rotate(angle, v) {
558
558
  if (!isNaN(angle)) {
559
- this.currentTransform.rotate(angle);
559
+ this.currentTransform.rotate(angle, v);
560
560
  //this.updateBoundsPos(this.pos.x, this.pos.y);
561
561
  this.isDirty = true;
562
562
  }
@@ -572,9 +572,9 @@ class Renderable extends Rect {
572
572
  * @name scale
573
573
  * @memberOf me.Renderable.prototype
574
574
  * @function
575
- * @param {Number} x a number representing the abscissa of the scaling vector.
576
- * @param {Number} [y=x] a number representing the ordinate of the scaling vector.
577
- * @return {me.Renderable} Reference to this object for method chaining
575
+ * @param {number} x a number representing the abscissa of the scaling vector.
576
+ * @param {number} [y=x] a number representing the ordinate of the scaling vector.
577
+ * @returns {me.Renderable} Reference to this object for method chaining
578
578
  */
579
579
  scale(x, y) {
580
580
  this.currentTransform.scale(x, y);
@@ -588,8 +588,8 @@ class Renderable extends Rect {
588
588
  * @name scaleV
589
589
  * @memberOf me.Renderable.prototype
590
590
  * @function
591
- * @param {me.Vector2d} vector scaling vector
592
- * @return {me.Renderable} Reference to this object for method chaining
591
+ * @param {me.Vector2d} v scaling vector
592
+ * @returns {me.Renderable} Reference to this object for method chaining
593
593
  */
594
594
  scaleV(v) {
595
595
  this.scale(v.x, v.y);
@@ -603,9 +603,9 @@ class Renderable extends Rect {
603
603
  * @memberOf me.Renderable.prototype
604
604
  * @function
605
605
  * @protected
606
- * @param {Number} dt time since the last update in milliseconds.
607
- * @return false
608
- **/
606
+ * @param {number} dt time since the last update in milliseconds.
607
+ * @returns {boolean} true if the renderable is dirty
608
+ */
609
609
  update(/* dt */) {
610
610
  return this.isDirty;
611
611
  }
@@ -616,7 +616,7 @@ class Renderable extends Rect {
616
616
  * @name updateBounds
617
617
  * @memberOf me.Renderable.prototype
618
618
  * @function
619
- * @return {me.Bounds} this shape bounding box Rectangle object
619
+ * @returns {me.Bounds} this shape bounding box Rectangle object
620
620
  */
621
621
  updateBounds() {
622
622
  super.updateBounds();
@@ -662,7 +662,7 @@ class Renderable extends Rect {
662
662
  * @name getAbsolutePosition
663
663
  * @memberOf me.Renderable.prototype
664
664
  * @function
665
- * @return {me.Vector2d}
665
+ * @returns {me.Vector2d}
666
666
  */
667
667
  getAbsolutePosition() {
668
668
  if (typeof this._absPos === "undefined") {
@@ -682,16 +682,17 @@ class Renderable extends Rect {
682
682
  * @name onAnchorUpdate
683
683
  * @memberOf me.Renderable.prototype
684
684
  * @function
685
+ * @param {number} x the new X value to be set for the anchor
686
+ * @param {number} y the new Y value to be set for the anchor
685
687
  */
686
- onAnchorUpdate(newX, newY) {
688
+ onAnchorUpdate(x, y) {
687
689
  // since the callback is called before setting the new value
688
690
  // manually update the anchor point (required for updateBoundsPos)
689
- this.anchorPoint.setMuted(newX, newY);
691
+ this.anchorPoint.setMuted(x, y);
690
692
  // then call updateBounds
691
693
  this.updateBoundsPos(this.pos.x, this.pos.y);
692
694
  }
693
695
 
694
-
695
696
  /**
696
697
  * prepare the rendering context before drawing
697
698
  * (apply defined transforms, anchor point). <br>
@@ -701,7 +702,7 @@ class Renderable extends Rect {
701
702
  * @function
702
703
  * @protected
703
704
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
704
- **/
705
+ */
705
706
  preDraw(renderer) {
706
707
  var bounds = this.getBounds();
707
708
  var ax = bounds.width * this.anchorPoint.x,
@@ -752,7 +753,7 @@ class Renderable extends Rect {
752
753
  * @function
753
754
  * @protected
754
755
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
755
- **/
756
+ */
756
757
  draw(/*renderer*/) {
757
758
  // empty one !
758
759
  }
@@ -765,7 +766,7 @@ class Renderable extends Rect {
765
766
  * @function
766
767
  * @protected
767
768
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
768
- **/
769
+ */
769
770
  postDraw(renderer) {
770
771
 
771
772
  // remove the previously applied tint
@@ -791,7 +792,7 @@ class Renderable extends Rect {
791
792
  * @function
792
793
  * @param {me.collision.ResponseObject} response the collision response object
793
794
  * @param {me.Renderable} other the other renderable touching this one (a reference to response.a or response.b)
794
- * @return {Boolean} true if the object should respond to the collision (its position and velocity will be corrected)
795
+ * @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
795
796
  * @example
796
797
  * // colision handler
797
798
  * onCollision(response) {
@@ -13,17 +13,17 @@ import Renderable from "./renderable.js";
13
13
  * @extends me.Renderable
14
14
  * @memberOf me
15
15
  * @constructor
16
- * @param {Number} x the x coordinates of the sprite object
17
- * @param {Number} y the y coordinates of the sprite object
18
- * @param {Object} settings Configuration parameters for the Sprite object
19
- * @param {me.Renderer.Texture|HTMLImageElement|HTMLCanvasElement|String} settings.image reference to a texture, spritesheet image or to a texture atlas
20
- * @param {String} [settings.name=""] name of this object
21
- * @param {String} [settings.region] region name of a specific region to use when using a texture atlas, see {@link me.Renderer.Texture}
22
- * @param {Number} [settings.framewidth] Width of a single frame within the spritesheet
23
- * @param {Number} [settings.frameheight] Height of a single frame within the spritesheet
24
- * @param {String|Color} [settings.tint] a tint to be applied to this sprite
25
- * @param {Number} [settings.flipX] flip the sprite on the horizontal axis
26
- * @param {Number} [settings.flipY] flip the sprite on the vertical axis
16
+ * @param {number} x the x coordinates of the sprite object
17
+ * @param {number} y the y coordinates of the sprite object
18
+ * @param {object} settings Configuration parameters for the Sprite object
19
+ * @param {me.Renderer.Texture|HTMLImageElement|HTMLCanvasElement|string} settings.image reference to a texture, spritesheet image or to a texture atlas
20
+ * @param {string} [settings.name=""] name of this object
21
+ * @param {string} [settings.region] region name of a specific region to use when using a texture atlas, see {@link me.Renderer.Texture}
22
+ * @param {number} [settings.framewidth] Width of a single frame within the spritesheet
23
+ * @param {number} [settings.frameheight] Height of a single frame within the spritesheet
24
+ * @param {string|me.Color} [settings.tint] a tint to be applied to this sprite
25
+ * @param {number} [settings.flipX] flip the sprite on the horizontal axis
26
+ * @param {number} [settings.flipY] flip the sprite on the vertical axis
27
27
  * @param {me.Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] Anchor point to draw the frame at (defaults to the center of the frame).
28
28
  * @example
29
29
  * // create a single sprite from a standalone image, with anchor in the center
@@ -58,7 +58,7 @@ class Sprite extends Renderable {
58
58
  /**
59
59
  * pause and resume animation
60
60
  * @public
61
- * @type Boolean
61
+ * @type {boolean}
62
62
  * @default false
63
63
  * @name me.Sprite#animationpause
64
64
  */
@@ -67,7 +67,7 @@ class Sprite extends Renderable {
67
67
  /**
68
68
  * animation cycling speed (delay between frame in ms)
69
69
  * @public
70
- * @type Number
70
+ * @type {number}
71
71
  * @default 100
72
72
  * @name me.Sprite#animationspeed
73
73
  */
@@ -76,7 +76,7 @@ class Sprite extends Renderable {
76
76
  /**
77
77
  * global offset for the position to draw from on the source image.
78
78
  * @public
79
- * @type me.Vector2d
79
+ * @type {me.Vector2d}
80
80
  * @default <0.0,0.0>
81
81
  * @name offset
82
82
  * @memberOf me.Sprite#
@@ -86,7 +86,7 @@ class Sprite extends Renderable {
86
86
  /**
87
87
  * The source texture object this sprite object is using
88
88
  * @public
89
- * @type me.Renderer.Texture
89
+ * @type {me.Renderer.Texture}
90
90
  * @name source
91
91
  * @memberOf me.Sprite#
92
92
  */
@@ -148,7 +148,7 @@ class Sprite extends Renderable {
148
148
  }
149
149
  }
150
150
  } else {
151
- // HTMLImageElement/Canvas or String
151
+ // HTMLImageElement/Canvas or {string}
152
152
  this.image = (typeof settings.image === "object") ? settings.image : loader.getImage(settings.image);
153
153
  // throw an error if image ends up being null/undefined
154
154
  if (!this.image) {
@@ -219,7 +219,7 @@ class Sprite extends Renderable {
219
219
  * @name isFlickering
220
220
  * @memberOf me.Sprite.prototype
221
221
  * @function
222
- * @return {Boolean}
222
+ * @returns {boolean}
223
223
  */
224
224
  isFlickering() {
225
225
  return this._flicker.isFlickering;
@@ -230,9 +230,9 @@ class Sprite extends Renderable {
230
230
  * @name flicker
231
231
  * @memberOf me.Sprite.prototype
232
232
  * @function
233
- * @param {Number} duration expressed in milliseconds
233
+ * @param {number} duration expressed in milliseconds
234
234
  * @param {Function} callback Function to call when flickering ends
235
- * @return {me.Sprite} Reference to this object for method chaining
235
+ * @returns {me.Sprite} Reference to this object for method chaining
236
236
  * @example
237
237
  * // make the object flicker for 1 second
238
238
  * // and then remove it
@@ -261,11 +261,11 @@ class Sprite extends Renderable {
261
261
  * @name addAnimation
262
262
  * @memberOf me.Sprite.prototype
263
263
  * @function
264
- * @param {String} name animation id
265
- * @param {Number[]|String[]|Object[]} index list of sprite index or name
264
+ * @param {string} name animation id
265
+ * @param {number[]|string[]|object[]} index list of sprite index or name
266
266
  * defining the animation. Can also use objects to specify delay for each frame, see below
267
- * @param {Number} [animationspeed] cycling speed for animation in ms
268
- * @return {Number} frame amount of frame added to the animation (delay between each frame).
267
+ * @param {number} [animationspeed] cycling speed for animation in ms
268
+ * @returns {number} frame amount of frame added to the animation (delay between each frame).
269
269
  * @see me.Sprite#animationspeed
270
270
  * @example
271
271
  * // walking animation
@@ -361,9 +361,10 @@ class Sprite extends Renderable {
361
361
  * @name setCurrentAnimation
362
362
  * @memberOf me.Sprite.prototype
363
363
  * @function
364
- * @param {String} name animation id
365
- * @param {String|Function} [onComplete] animation id to switch to when complete, or callback
366
- * @return {me.Sprite} Reference to this object for method chaining
364
+ * @param {string} name animation id
365
+ * @param {string|Function} [resetAnim] animation id to switch to when complete, or callback
366
+ * @param {boolean} [preserve_dt=false] if false will reset the elapsed time counter since last frame
367
+ * @returns {me.Sprite} Reference to this object for method chaining
367
368
  * @example
368
369
  * // set "walk" animation
369
370
  * this.setCurrentAnimation("walk");
@@ -393,8 +394,8 @@ class Sprite extends Renderable {
393
394
  *
394
395
  * return false; // do not reset to first frame
395
396
  * }).bind(this));
396
- **/
397
- setCurrentAnimation(name, resetAnim, _preserve_dt) {
397
+ */
398
+ setCurrentAnimation(name, resetAnim, preserve_dt) {
398
399
  if (this.anim[name]) {
399
400
  this.current.name = name;
400
401
  this.current.length = this.anim[this.current.name].length;
@@ -406,7 +407,7 @@ class Sprite extends Renderable {
406
407
  this.resetAnim = undefined;
407
408
  }
408
409
  this.setAnimationFrame(this.current.idx);
409
- if (!_preserve_dt) {
410
+ if (!preserve_dt) {
410
411
  this.dt = 0;
411
412
  }
412
413
  this.isDirty = true;
@@ -421,8 +422,8 @@ class Sprite extends Renderable {
421
422
  * @name reverseAnimation
422
423
  * @memberOf me.Sprite.prototype
423
424
  * @function
424
- * @param {String} [name] animation id
425
- * @return {me.Sprite} Reference to this object for method chaining
425
+ * @param {string} [name] animation id
426
+ * @returns {me.Sprite} Reference to this object for method chaining
426
427
  * @see me.Sprite#animationspeed
427
428
  */
428
429
  reverseAnimation(name) {
@@ -440,8 +441,8 @@ class Sprite extends Renderable {
440
441
  * @name isCurrentAnimation
441
442
  * @memberOf me.Sprite.prototype
442
443
  * @function
443
- * @param {String} name animation id
444
- * @return {Boolean}
444
+ * @param {string} name animation id
445
+ * @returns {boolean}
445
446
  * @example
446
447
  * if (!this.isCurrentAnimation("walk")) {
447
448
  * // do something funny...
@@ -457,8 +458,8 @@ class Sprite extends Renderable {
457
458
  * @name setRegion
458
459
  * @memberOf me.Sprite.prototype
459
460
  * @function
460
- * @param {Object} region typically returned through me.Texture.getRegion()
461
- * @return {me.Sprite} Reference to this object for method chaining
461
+ * @param {object} region typically returned through me.Texture.getRegion()
462
+ * @returns {me.Sprite} Reference to this object for method chaining
462
463
  * @example
463
464
  * // change the sprite to "shadedDark13.png";
464
465
  * mySprite.setRegion(game.texture.getRegion("shadedDark13.png"));
@@ -489,8 +490,8 @@ class Sprite extends Renderable {
489
490
  * @name setAnimationFrame
490
491
  * @memberOf me.Sprite.prototype
491
492
  * @function
492
- * @param {Number} [index=0] animation frame index
493
- * @return {me.Sprite} Reference to this object for method chaining
493
+ * @param {number} [idx=0] animation frame index
494
+ * @returns {me.Sprite} Reference to this object for method chaining
494
495
  * @example
495
496
  * // reset the current animation to the first frame
496
497
  * this.setAnimationFrame();
@@ -505,7 +506,7 @@ class Sprite extends Renderable {
505
506
  * @name getCurrentAnimationFrame
506
507
  * @memberOf me.Sprite.prototype
507
508
  * @function
508
- * @return {Number} current animation frame index
509
+ * @returns {number} current animation frame index
509
510
  */
510
511
  getCurrentAnimationFrame() {
511
512
  return this.current.idx;
@@ -516,18 +517,25 @@ class Sprite extends Renderable {
516
517
  * @name getAnimationFrameObjectByIndex
517
518
  * @memberOf me.Sprite.prototype
518
519
  * @function
519
- * @private
520
- * @return {Number} if using number indices. Returns {Object} containing frame data if using texture atlas
520
+ * @ignore
521
+ * @param {number} id the frame id
522
+ * @returns {number} if using number indices. Returns {object} containing frame data if using texture atlas
521
523
  */
522
524
  getAnimationFrameObjectByIndex(id) {
523
525
  return this.anim[this.current.name].frames[id];
524
526
  }
525
527
 
526
528
  /**
527
- * @ignore
529
+ * update function. <br>
530
+ * automatically called by the game manager {@link me.game}
531
+ * @name update
532
+ * @memberOf me.Sprite.prototype
533
+ * @function
534
+ * @protected
535
+ * @param {number} dt time since the last update in milliseconds.
536
+ * @returns {boolean} true if the Sprite is dirty
528
537
  */
529
538
  update(dt) {
530
-
531
539
  // Update animation if necessary
532
540
  if (!this.animationpause && this.current && this.current.length > 0) {
533
541
  var duration = this.getAnimationFrameObjectByIndex(this.current.idx).delay;
@@ -597,7 +605,13 @@ class Sprite extends Renderable {
597
605
  }
598
606
 
599
607
  /**
600
- * @ignore
608
+ * sprite draw. <br>
609
+ * automatically called by the game manager {@link me.game}
610
+ * @name draw
611
+ * @memberOf me.Sprite.prototype
612
+ * @function
613
+ * @protected
614
+ * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
601
615
  */
602
616
  draw(renderer) {
603
617
  // do nothing if we are flickering