melonjs 10.2.1 → 10.2.2

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 (90) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.js +2735 -2760
  3. package/dist/melonjs.min.js +3 -3
  4. package/dist/melonjs.module.d.ts +2186 -2162
  5. package/dist/melonjs.module.js +2323 -2362
  6. package/package.json +8 -9
  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 +2 -2
  13. package/src/index.js +11 -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 +18 -26
  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 +29 -25
  33. package/src/math/color.js +45 -64
  34. package/src/math/math.js +17 -17
  35. package/src/math/matrix2.js +46 -46
  36. package/src/math/matrix3.js +64 -64
  37. package/src/math/observable_vector2.js +45 -57
  38. package/src/math/observable_vector3.js +56 -70
  39. package/src/math/vector2.js +60 -59
  40. package/src/math/vector3.js +65 -64
  41. package/src/particles/emitter.js +53 -55
  42. package/src/particles/particle.js +1 -1
  43. package/src/physics/body.js +44 -44
  44. package/src/physics/bounds.js +34 -34
  45. package/src/physics/collision.js +15 -16
  46. package/src/physics/detector.js +10 -10
  47. package/src/physics/quadtree.js +19 -17
  48. package/src/physics/sat.js +17 -17
  49. package/src/physics/world.js +12 -10
  50. package/src/plugin/plugin.js +6 -6
  51. package/src/renderable/GUI.js +13 -18
  52. package/src/renderable/collectable.js +3 -3
  53. package/src/renderable/colorlayer.js +4 -4
  54. package/src/renderable/container.js +64 -46
  55. package/src/renderable/imagelayer.js +30 -31
  56. package/src/renderable/nineslicesprite.js +13 -13
  57. package/src/renderable/renderable.js +68 -66
  58. package/src/renderable/sprite.js +57 -43
  59. package/src/renderable/trigger.js +14 -15
  60. package/src/shapes/ellipse.js +27 -26
  61. package/src/shapes/line.js +8 -7
  62. package/src/shapes/poly.js +33 -31
  63. package/src/shapes/rectangle.js +50 -96
  64. package/src/state/stage.js +6 -6
  65. package/src/state/state.js +54 -54
  66. package/src/system/device.js +97 -84
  67. package/src/system/event.js +72 -72
  68. package/src/system/pooling.js +14 -14
  69. package/src/system/save.js +6 -3
  70. package/src/system/timer.js +20 -20
  71. package/src/text/bitmaptext.js +27 -33
  72. package/src/text/bitmaptextdata.js +9 -9
  73. package/src/text/text.js +39 -41
  74. package/src/tweens/easing.js +4 -4
  75. package/src/tweens/interpolation.js +4 -4
  76. package/src/tweens/tween.js +37 -27
  77. package/src/utils/agent.js +9 -8
  78. package/src/utils/array.js +4 -4
  79. package/src/utils/file.js +4 -4
  80. package/src/utils/function.js +5 -5
  81. package/src/utils/string.js +12 -12
  82. package/src/utils/utils.js +19 -19
  83. package/src/video/canvas/canvas_renderer.js +90 -90
  84. package/src/video/renderer.js +40 -39
  85. package/src/video/texture.js +74 -75
  86. package/src/video/video.js +30 -30
  87. package/src/video/webgl/buffer/vertex.js +9 -1
  88. package/src/video/webgl/glshader.js +20 -20
  89. package/src/video/webgl/webgl_compositor.js +33 -34
  90. 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
@@ -88,7 +88,7 @@ class Renderable extends Rect {
88
88
  /**
89
89
  * the renderable default transformation matrix
90
90
  * @public
91
- * @type me.Matrix2d
91
+ * @type {me.Matrix2d}
92
92
  * @name currentTransform
93
93
  * @memberOf me.Renderable#
94
94
  */
@@ -102,7 +102,7 @@ class Renderable extends Rect {
102
102
  * a GUID will be allocated for any renderable object added <br>
103
103
  * to an object container (including the `me.game.world` container)
104
104
  * @public
105
- * @type String
105
+ * @type {string}
106
106
  * @name GUID
107
107
  * @memberOf me.Renderable
108
108
  */
@@ -111,7 +111,7 @@ class Renderable extends Rect {
111
111
  /**
112
112
  * an event handler that is called when the renderable leave or enter a camera viewport
113
113
  * @public
114
- * @type function
114
+ * @type {Function}
115
115
  * @default undefined
116
116
  * @name onVisibilityChange
117
117
  * @memberOf me.Renderable#
@@ -127,7 +127,7 @@ class Renderable extends Rect {
127
127
  /**
128
128
  * Whether the renderable object will always update, even when outside of the viewport<br>
129
129
  * @public
130
- * @type Boolean
130
+ * @type {boolean}
131
131
  * @default false
132
132
  * @name alwaysUpdate
133
133
  * @memberOf me.Renderable
@@ -137,7 +137,7 @@ class Renderable extends Rect {
137
137
  /**
138
138
  * Whether to update this object when the game is paused.
139
139
  * @public
140
- * @type Boolean
140
+ * @type {boolean}
141
141
  * @default false
142
142
  * @name updateWhenPaused
143
143
  * @memberOf me.Renderable
@@ -147,7 +147,7 @@ class Renderable extends Rect {
147
147
  /**
148
148
  * make the renderable object persistent over level changes<br>
149
149
  * @public
150
- * @type Boolean
150
+ * @type {boolean}
151
151
  * @default false
152
152
  * @name isPersistent
153
153
  * @memberOf me.Renderable
@@ -158,7 +158,7 @@ class Renderable extends Rect {
158
158
  * If true, this renderable will be rendered using screen coordinates,
159
159
  * as opposed to world coordinates. Use this, for example, to define UI elements.
160
160
  * @public
161
- * @type Boolean
161
+ * @type {boolean}
162
162
  * @default false
163
163
  * @name floating
164
164
  * @memberOf me.Renderable
@@ -174,7 +174,7 @@ class Renderable extends Rect {
174
174
  * <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
175
175
  * To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
176
176
  * @public
177
- * @type me.ObservableVector2d
177
+ * @type {me.ObservableVector2d}
178
178
  * @default <0.5,0.5>
179
179
  * @name anchorPoint
180
180
  * @memberOf me.Renderable#
@@ -189,7 +189,7 @@ class Renderable extends Rect {
189
189
  * When enabled, an object container will automatically apply
190
190
  * any defined transformation before calling the child draw method.
191
191
  * @public
192
- * @type Boolean
192
+ * @type {boolean}
193
193
  * @default true
194
194
  * @name autoTransform
195
195
  * @memberOf me.Renderable
@@ -213,7 +213,7 @@ class Renderable extends Rect {
213
213
  * @see me.Renderable#setOpacity
214
214
  * @see me.Renderable#getOpacity
215
215
  * @public
216
- * @type Number
216
+ * @type {number}
217
217
  * @default 1.0
218
218
  * @name me.Renderable#alpha
219
219
  */
@@ -222,7 +222,7 @@ class Renderable extends Rect {
222
222
  /**
223
223
  * a reference to the parent object that contains this renderable
224
224
  * @public
225
- * @type me.Container|me.Entity
225
+ * @type {me.Container|me.Entity}
226
226
  * @default undefined
227
227
  * @name me.Renderable#ancestor
228
228
  */
@@ -272,7 +272,7 @@ class Renderable extends Rect {
272
272
  /**
273
273
  * The name of the renderable
274
274
  * @public
275
- * @type {String}
275
+ * @type {string}
276
276
  * @name name
277
277
  * @default ""
278
278
  * @memberOf me.Renderable
@@ -294,7 +294,7 @@ class Renderable extends Rect {
294
294
 
295
295
  /**
296
296
  * when true the renderable will be redrawn during the next update cycle
297
- * @type {Boolean}
297
+ * @type {boolean}
298
298
  * @name isDirty
299
299
  * @default false
300
300
  * @memberOf me.Renderable#
@@ -314,26 +314,33 @@ class Renderable extends Rect {
314
314
  this.setOpacity(1.0);
315
315
  }
316
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
+
317
330
  /**
318
331
  * Whether the renderable object is visible and within the viewport
319
332
  * @public
320
333
  * @readonly
321
- * @type Boolean
334
+ * @type {boolean}
322
335
  * @default false
323
336
  * @name inViewport
324
337
  * @memberOf me.Renderable
325
338
  */
326
339
 
327
- /**
328
- * @ignore
329
- */
330
340
  get inViewport() {
331
341
  return this._inViewport;
332
342
  }
333
343
 
334
- /**
335
- * @ignore
336
- */
337
344
  set inViewport(value) {
338
345
  if (this._inViewport !== value) {
339
346
  this._inViewport = value;
@@ -347,14 +354,11 @@ class Renderable extends Rect {
347
354
  * returns true if this renderable is flipped on the horizontal axis
348
355
  * @public
349
356
  * @see me.Renderable#flipX
350
- * @type {Boolean}
357
+ * @type {boolean}
351
358
  * @name isFlippedX
352
359
  * @memberOf me.Renderable
353
360
  */
354
361
 
355
- /**
356
- * @ignore
357
- */
358
362
  get isFlippedX() {
359
363
  return this._flip.x === true;
360
364
  }
@@ -363,14 +367,11 @@ class Renderable extends Rect {
363
367
  * returns true if this renderable is flipped on the vertical axis
364
368
  * @public
365
369
  * @see me.Renderable#flipY
366
- * @type {Boolean}
370
+ * @type {boolean}
367
371
  * @name isFlippedY
368
372
  * @memberOf me.Renderable
369
373
  */
370
374
 
371
- /**
372
- * @ignore
373
- */
374
375
  get isFlippedY() {
375
376
  return this._flip.y === true;
376
377
  }
@@ -380,7 +381,7 @@ class Renderable extends Rect {
380
381
  * @name getBounds
381
382
  * @memberOf me.Renderable.prototype
382
383
  * @function
383
- * @return {me.Bounds} bounding box Rectangle object
384
+ * @returns {me.Bounds} bounding box Rectangle object
384
385
  */
385
386
  getBounds() {
386
387
  if (typeof this._bounds === "undefined") {
@@ -401,7 +402,7 @@ class Renderable extends Rect {
401
402
  * @name getOpacity
402
403
  * @memberOf me.Renderable.prototype
403
404
  * @function
404
- * @return {Number} current opacity value between 0 and 1
405
+ * @returns {number} current opacity value between 0 and 1
405
406
  */
406
407
  getOpacity() {
407
408
  return this.alpha;
@@ -412,7 +413,7 @@ class Renderable extends Rect {
412
413
  * @name setOpacity
413
414
  * @memberOf me.Renderable.prototype
414
415
  * @function
415
- * @param {Number} alpha opacity value between 0.0 and 1.0
416
+ * @param {number} alpha opacity value between 0.0 and 1.0
416
417
  */
417
418
  setOpacity(alpha) {
418
419
  if (typeof (alpha) === "number") {
@@ -431,8 +432,8 @@ class Renderable extends Rect {
431
432
  * @name flipX
432
433
  * @memberOf me.Renderable.prototype
433
434
  * @function
434
- * @param {Boolean} [flip=true] `true` to flip this renderable.
435
- * @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
436
437
  */
437
438
  flipX(flip = true) {
438
439
  this._flip.x = !!flip;
@@ -446,8 +447,8 @@ class Renderable extends Rect {
446
447
  * @name flipY
447
448
  * @memberOf me.Renderable.prototype
448
449
  * @function
449
- * @param {Boolean} [flip=true] `true` to flip this renderable.
450
- * @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
451
452
  */
452
453
  flipY(flip = true) {
453
454
  this._flip.y = !!flip;
@@ -461,8 +462,8 @@ class Renderable extends Rect {
461
462
  * @memberOf me.Renderable.prototype
462
463
  * @see me.Renderable#currentTransform
463
464
  * @function
464
- * @param {me.Matrix2d} matrix the transformation matrix
465
- * @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
466
467
  */
467
468
  transform(m) {
468
469
  this.currentTransform.multiply(m);
@@ -478,7 +479,7 @@ class Renderable extends Rect {
478
479
  * @memberOf me.Renderable
479
480
  * @function
480
481
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target
481
- * @return {Number} angle in radians
482
+ * @returns {number} angle in radians
482
483
  */
483
484
  angleTo(target) {
484
485
  var a = this.getBounds();
@@ -502,7 +503,7 @@ class Renderable extends Rect {
502
503
  * @memberOf me.Renderable
503
504
  * @function
504
505
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target
505
- * @return {Number} distance
506
+ * @returns {number} distance
506
507
  */
507
508
  distanceTo(target) {
508
509
  var a = this.getBounds();
@@ -526,7 +527,7 @@ class Renderable extends Rect {
526
527
  * @memberOf me.Renderable.prototype
527
528
  * @function
528
529
  * @param {me.Renderable|me.Vector2d|me.Vector3d} target the renderable or position to look at
529
- * @return {me.Renderable} Reference to this object for method chaining
530
+ * @returns {me.Renderable} Reference to this object for method chaining
530
531
  */
531
532
  lookAt(target) {
532
533
  var position;
@@ -549,13 +550,13 @@ class Renderable extends Rect {
549
550
  * @name rotate
550
551
  * @memberOf me.Renderable.prototype
551
552
  * @function
552
- * @param {Number} angle The angle to rotate (in radians)
553
+ * @param {number} angle The angle to rotate (in radians)
553
554
  * @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around
554
- * @return {me.Renderable} Reference to this object for method chaining
555
+ * @returns {me.Renderable} Reference to this object for method chaining
555
556
  */
556
- rotate(angle) {
557
+ rotate(angle, v) {
557
558
  if (!isNaN(angle)) {
558
- this.currentTransform.rotate(angle);
559
+ this.currentTransform.rotate(angle, v);
559
560
  //this.updateBoundsPos(this.pos.x, this.pos.y);
560
561
  this.isDirty = true;
561
562
  }
@@ -571,9 +572,9 @@ class Renderable extends Rect {
571
572
  * @name scale
572
573
  * @memberOf me.Renderable.prototype
573
574
  * @function
574
- * @param {Number} x a number representing the abscissa of the scaling vector.
575
- * @param {Number} [y=x] a number representing the ordinate of the scaling vector.
576
- * @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
577
578
  */
578
579
  scale(x, y) {
579
580
  this.currentTransform.scale(x, y);
@@ -587,8 +588,8 @@ class Renderable extends Rect {
587
588
  * @name scaleV
588
589
  * @memberOf me.Renderable.prototype
589
590
  * @function
590
- * @param {me.Vector2d} vector scaling vector
591
- * @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
592
593
  */
593
594
  scaleV(v) {
594
595
  this.scale(v.x, v.y);
@@ -602,9 +603,9 @@ class Renderable extends Rect {
602
603
  * @memberOf me.Renderable.prototype
603
604
  * @function
604
605
  * @protected
605
- * @param {Number} dt time since the last update in milliseconds.
606
- * @return false
607
- **/
606
+ * @param {number} dt time since the last update in milliseconds.
607
+ * @returns {boolean} true if the renderable is dirty
608
+ */
608
609
  update(/* dt */) {
609
610
  return this.isDirty;
610
611
  }
@@ -615,7 +616,7 @@ class Renderable extends Rect {
615
616
  * @name updateBounds
616
617
  * @memberOf me.Renderable.prototype
617
618
  * @function
618
- * @return {me.Bounds} this shape bounding box Rectangle object
619
+ * @returns {me.Bounds} this shape bounding box Rectangle object
619
620
  */
620
621
  updateBounds() {
621
622
  super.updateBounds();
@@ -661,7 +662,7 @@ class Renderable extends Rect {
661
662
  * @name getAbsolutePosition
662
663
  * @memberOf me.Renderable.prototype
663
664
  * @function
664
- * @return {me.Vector2d}
665
+ * @returns {me.Vector2d}
665
666
  */
666
667
  getAbsolutePosition() {
667
668
  if (typeof this._absPos === "undefined") {
@@ -681,16 +682,17 @@ class Renderable extends Rect {
681
682
  * @name onAnchorUpdate
682
683
  * @memberOf me.Renderable.prototype
683
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
684
687
  */
685
- onAnchorUpdate(newX, newY) {
688
+ onAnchorUpdate(x, y) {
686
689
  // since the callback is called before setting the new value
687
690
  // manually update the anchor point (required for updateBoundsPos)
688
- this.anchorPoint.setMuted(newX, newY);
691
+ this.anchorPoint.setMuted(x, y);
689
692
  // then call updateBounds
690
693
  this.updateBoundsPos(this.pos.x, this.pos.y);
691
694
  }
692
695
 
693
-
694
696
  /**
695
697
  * prepare the rendering context before drawing
696
698
  * (apply defined transforms, anchor point). <br>
@@ -700,7 +702,7 @@ class Renderable extends Rect {
700
702
  * @function
701
703
  * @protected
702
704
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
703
- **/
705
+ */
704
706
  preDraw(renderer) {
705
707
  var bounds = this.getBounds();
706
708
  var ax = bounds.width * this.anchorPoint.x,
@@ -751,7 +753,7 @@ class Renderable extends Rect {
751
753
  * @function
752
754
  * @protected
753
755
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
754
- **/
756
+ */
755
757
  draw(/*renderer*/) {
756
758
  // empty one !
757
759
  }
@@ -764,7 +766,7 @@ class Renderable extends Rect {
764
766
  * @function
765
767
  * @protected
766
768
  * @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
767
- **/
769
+ */
768
770
  postDraw(renderer) {
769
771
 
770
772
  // remove the previously applied tint
@@ -790,7 +792,7 @@ class Renderable extends Rect {
790
792
  * @function
791
793
  * @param {me.collision.ResponseObject} response the collision response object
792
794
  * @param {me.Renderable} other the other renderable touching this one (a reference to response.a or response.b)
793
- * @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)
794
796
  * @example
795
797
  * // colision handler
796
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|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
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