melonjs 10.2.3 → 10.3.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 (93) hide show
  1. package/dist/melonjs.js +1741 -1558
  2. package/dist/melonjs.min.js +4 -4
  3. package/dist/melonjs.module.d.ts +1256 -1758
  4. package/dist/melonjs.module.js +1734 -1582
  5. package/package.json +12 -12
  6. package/src/audio/audio.js +3 -3
  7. package/src/camera/camera2d.js +26 -27
  8. package/src/entity/draggable.js +10 -19
  9. package/src/entity/droptarget.js +12 -20
  10. package/src/entity/entity.js +13 -13
  11. package/src/game.js +6 -6
  12. package/src/{shapes → geometries}/ellipse.js +19 -20
  13. package/src/{shapes → geometries}/line.js +6 -7
  14. package/src/{shapes → geometries}/poly.js +70 -23
  15. package/src/{shapes → geometries}/rectangle.js +23 -24
  16. package/src/index.js +8 -9
  17. package/src/input/gamepad.js +7 -7
  18. package/src/input/input.js +2 -2
  19. package/src/input/keyboard.js +108 -108
  20. package/src/input/pointer.js +61 -28
  21. package/src/input/pointerevent.js +79 -16
  22. package/src/lang/deprecated.js +26 -15
  23. package/src/level/level.js +10 -10
  24. package/src/level/tiled/TMXGroup.js +6 -7
  25. package/src/level/tiled/TMXLayer.js +10 -11
  26. package/src/level/tiled/TMXObject.js +57 -51
  27. package/src/level/tiled/TMXTile.js +2 -3
  28. package/src/level/tiled/TMXTileMap.js +3 -4
  29. package/src/level/tiled/TMXTileset.js +1 -2
  30. package/src/level/tiled/TMXTilesetGroup.js +1 -2
  31. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -3
  32. package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -3
  33. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
  34. package/src/level/tiled/renderer/TMXRenderer.js +1 -2
  35. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
  36. package/src/loader/loader.js +17 -15
  37. package/src/loader/loadingscreen.js +1 -2
  38. package/src/math/color.js +23 -24
  39. package/src/math/math.js +16 -16
  40. package/src/math/matrix2.js +24 -25
  41. package/src/math/matrix3.js +26 -27
  42. package/src/math/observable_vector2.js +46 -35
  43. package/src/math/observable_vector3.js +54 -36
  44. package/src/math/vector2.js +58 -47
  45. package/src/math/vector3.js +66 -48
  46. package/src/particles/emitter.js +64 -72
  47. package/src/particles/particle.js +3 -4
  48. package/src/particles/particlecontainer.js +2 -3
  49. package/src/physics/body.js +38 -39
  50. package/src/physics/bounds.js +30 -32
  51. package/src/physics/collision.js +6 -6
  52. package/src/physics/detector.js +3 -3
  53. package/src/physics/quadtree.js +8 -9
  54. package/src/physics/sat.js +4 -4
  55. package/src/physics/world.js +11 -12
  56. package/src/plugin/plugin.js +6 -7
  57. package/src/renderable/GUI.js +7 -8
  58. package/src/renderable/collectable.js +3 -4
  59. package/src/renderable/colorlayer.js +7 -8
  60. package/src/renderable/container.js +36 -37
  61. package/src/renderable/imagelayer.js +4 -5
  62. package/src/renderable/nineslicesprite.js +2 -3
  63. package/src/renderable/renderable.js +45 -46
  64. package/src/renderable/sprite.js +16 -17
  65. package/src/renderable/trigger.js +4 -5
  66. package/src/state/stage.js +8 -9
  67. package/src/state/state.js +24 -24
  68. package/src/system/device.js +41 -97
  69. package/src/system/event.js +45 -33
  70. package/src/system/pooling.js +1 -1
  71. package/src/system/save.js +3 -3
  72. package/src/system/timer.js +13 -13
  73. package/src/text/bitmaptext.js +12 -13
  74. package/src/text/bitmaptextdata.js +5 -6
  75. package/src/text/text.js +16 -17
  76. package/src/tweens/easing.js +1 -1
  77. package/src/tweens/interpolation.js +1 -1
  78. package/src/tweens/tween.js +14 -15
  79. package/src/utils/agent.js +3 -3
  80. package/src/utils/array.js +4 -4
  81. package/src/utils/file.js +3 -3
  82. package/src/utils/function.js +3 -3
  83. package/src/utils/string.js +7 -7
  84. package/src/utils/utils.js +4 -4
  85. package/src/video/canvas/canvas_renderer.js +39 -40
  86. package/src/video/renderer.js +29 -30
  87. package/src/video/texture.js +8 -9
  88. package/src/video/texture_cache.js +2 -4
  89. package/src/video/video.js +7 -7
  90. package/src/video/webgl/buffer/vertex.js +2 -2
  91. package/src/video/webgl/glshader.js +11 -12
  92. package/src/video/webgl/webgl_compositor.js +118 -90
  93. package/src/video/webgl/webgl_renderer.js +95 -74
@@ -5,8 +5,7 @@ import pool from "./../system/pooling.js";
5
5
  * @classdesc
6
6
  * a generic 3D Vector Object
7
7
  * @class Vector3d
8
- * @memberOf me
9
- * @constructor
8
+ * @memberof me
10
9
  * @param {number} [x=0] x value of the vector
11
10
  * @param {number} [y=0] y value of the vector
12
11
  * @param {number} [z=0] z value of the vector
@@ -42,7 +41,7 @@ class Vector3d {
42
41
  /**
43
42
  * set the Vector x and y properties to the given values<br>
44
43
  * @name set
45
- * @memberOf me.Vector3d
44
+ * @memberof me.Vector3d
46
45
  * @function
47
46
  * @param {number} x
48
47
  * @param {number} y
@@ -61,7 +60,7 @@ class Vector3d {
61
60
  * @public
62
61
  * @type {number}
63
62
  * @name x
64
- * @memberOf me.Vector3d
63
+ * @memberof me.Vector3d
65
64
  */
66
65
  //this.x = x;
67
66
 
@@ -70,7 +69,7 @@ class Vector3d {
70
69
  * @public
71
70
  * @type {number}
72
71
  * @name y
73
- * @memberOf me.Vector3d
72
+ * @memberof me.Vector3d
74
73
  */
75
74
  //this.y = y;
76
75
 
@@ -79,7 +78,7 @@ class Vector3d {
79
78
  * @public
80
79
  * @type {number}
81
80
  * @name z
82
- * @memberOf me.Vector3d
81
+ * @memberof me.Vector3d
83
82
  */
84
83
  //this.z = z;
85
84
 
@@ -89,7 +88,7 @@ class Vector3d {
89
88
  /**
90
89
  * set the Vector x and y properties to 0
91
90
  * @name setZero
92
- * @memberOf me.Vector3d
91
+ * @memberof me.Vector3d
93
92
  * @function
94
93
  * @returns {me.Vector3d} Reference to this object for method chaining
95
94
  */
@@ -100,7 +99,7 @@ class Vector3d {
100
99
  /**
101
100
  * set the Vector x and y properties using the passed vector
102
101
  * @name setV
103
- * @memberOf me.Vector3d
102
+ * @memberof me.Vector3d
104
103
  * @function
105
104
  * @param {me.Vector2d|me.Vector3d} v
106
105
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -112,7 +111,7 @@ class Vector3d {
112
111
  /**
113
112
  * Add the passed vector to this vector
114
113
  * @name add
115
- * @memberOf me.Vector3d
114
+ * @memberof me.Vector3d
116
115
  * @function
117
116
  * @param {me.Vector2d|me.Vector3d} v
118
117
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -124,7 +123,7 @@ class Vector3d {
124
123
  /**
125
124
  * Substract the passed vector to this vector
126
125
  * @name sub
127
- * @memberOf me.Vector3d
126
+ * @memberof me.Vector3d
128
127
  * @function
129
128
  * @param {me.Vector2d|me.Vector3d} v
130
129
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -136,7 +135,7 @@ class Vector3d {
136
135
  /**
137
136
  * Multiply this vector values by the given scalar
138
137
  * @name scale
139
- * @memberOf me.Vector3d
138
+ * @memberof me.Vector3d
140
139
  * @function
141
140
  * @param {number} x
142
141
  * @param {number} [y=x]
@@ -151,7 +150,7 @@ class Vector3d {
151
150
  /**
152
151
  * Multiply this vector values by the passed vector
153
152
  * @name scaleV
154
- * @memberOf me.Vector3d
153
+ * @memberof me.Vector3d
155
154
  * @function
156
155
  * @param {me.Vector2d|me.Vector3d} v
157
156
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -163,7 +162,7 @@ class Vector3d {
163
162
  /**
164
163
  * Convert this vector into isometric coordinate space
165
164
  * @name toIso
166
- * @memberOf me.Vector3d
165
+ * @memberof me.Vector3d
167
166
  * @function
168
167
  * @returns {me.Vector3d} Reference to this object for method chaining
169
168
  */
@@ -174,7 +173,7 @@ class Vector3d {
174
173
  /**
175
174
  * Convert this vector into 2d coordinate space
176
175
  * @name to2d
177
- * @memberOf me.Vector3d
176
+ * @memberof me.Vector3d
178
177
  * @function
179
178
  * @returns {me.Vector3d} Reference to this object for method chaining
180
179
  */
@@ -185,7 +184,7 @@ class Vector3d {
185
184
  /**
186
185
  * Divide this vector values by the passed value
187
186
  * @name div
188
- * @memberOf me.Vector3d
187
+ * @memberof me.Vector3d
189
188
  * @function
190
189
  * @param {number} n the value to divide the vector by
191
190
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -197,7 +196,7 @@ class Vector3d {
197
196
  /**
198
197
  * Update this vector values to absolute values
199
198
  * @name abs
200
- * @memberOf me.Vector3d
199
+ * @memberof me.Vector3d
201
200
  * @function
202
201
  * @returns {me.Vector3d} Reference to this object for method chaining
203
202
  */
@@ -208,7 +207,7 @@ class Vector3d {
208
207
  /**
209
208
  * Clamp the vector value within the specified value range
210
209
  * @name clamp
211
- * @memberOf me.Vector3d
210
+ * @memberof me.Vector3d
212
211
  * @function
213
212
  * @param {number} low
214
213
  * @param {number} high
@@ -221,7 +220,7 @@ class Vector3d {
221
220
  /**
222
221
  * Clamp this vector value within the specified value range
223
222
  * @name clampSelf
224
- * @memberOf me.Vector3d
223
+ * @memberof me.Vector3d
225
224
  * @function
226
225
  * @param {number} low
227
226
  * @param {number} high
@@ -234,7 +233,7 @@ class Vector3d {
234
233
  /**
235
234
  * Update this vector with the minimum value between this and the passed vector
236
235
  * @name minV
237
- * @memberOf me.Vector3d
236
+ * @memberof me.Vector3d
238
237
  * @function
239
238
  * @param {me.Vector2d|me.Vector3d} v
240
239
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -247,7 +246,7 @@ class Vector3d {
247
246
  /**
248
247
  * Update this vector with the maximum value between this and the passed vector
249
248
  * @name maxV
250
- * @memberOf me.Vector3d
249
+ * @memberof me.Vector3d
251
250
  * @function
252
251
  * @param {me.Vector2d|me.Vector3d} v
253
252
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -260,7 +259,7 @@ class Vector3d {
260
259
  /**
261
260
  * Floor the vector values
262
261
  * @name floor
263
- * @memberOf me.Vector3d
262
+ * @memberof me.Vector3d
264
263
  * @function
265
264
  * @returns {me.Vector3d} new me.Vector3d
266
265
  */
@@ -271,7 +270,7 @@ class Vector3d {
271
270
  /**
272
271
  * Floor this vector values
273
272
  * @name floorSelf
274
- * @memberOf me.Vector3d
273
+ * @memberof me.Vector3d
275
274
  * @function
276
275
  * @returns {me.Vector3d} Reference to this object for method chaining
277
276
  */
@@ -282,7 +281,7 @@ class Vector3d {
282
281
  /**
283
282
  * Ceil the vector values
284
283
  * @name ceil
285
- * @memberOf me.Vector3d
284
+ * @memberof me.Vector3d
286
285
  * @function
287
286
  * @returns {me.Vector3d} new me.Vector3d
288
287
  */
@@ -293,7 +292,7 @@ class Vector3d {
293
292
  /**
294
293
  * Ceil this vector values
295
294
  * @name ceilSelf
296
- * @memberOf me.Vector3d
295
+ * @memberof me.Vector3d
297
296
  * @function
298
297
  * @returns {me.Vector3d} Reference to this object for method chaining
299
298
  */
@@ -304,7 +303,7 @@ class Vector3d {
304
303
  /**
305
304
  * Negate the vector values
306
305
  * @name negate
307
- * @memberOf me.Vector3d
306
+ * @memberof me.Vector3d
308
307
  * @function
309
308
  * @returns {me.Vector3d} new me.Vector3d
310
309
  */
@@ -315,7 +314,7 @@ class Vector3d {
315
314
  /**
316
315
  * Negate this vector values
317
316
  * @name negateSelf
318
- * @memberOf me.Vector3d
317
+ * @memberof me.Vector3d
319
318
  * @function
320
319
  * @returns {me.Vector3d} Reference to this object for method chaining
321
320
  */
@@ -326,7 +325,7 @@ class Vector3d {
326
325
  /**
327
326
  * Copy the components of the given vector into this one
328
327
  * @name copy
329
- * @memberOf me.Vector3d
328
+ * @memberof me.Vector3d
330
329
  * @function
331
330
  * @param {me.Vector2d|me.Vector3d} v
332
331
  * @returns {me.Vector3d} Reference to this object for method chaining
@@ -338,7 +337,7 @@ class Vector3d {
338
337
  /**
339
338
  * return true if the two vectors are the same
340
339
  * @name equals
341
- * @memberOf me.Vector3d
340
+ * @memberof me.Vector3d
342
341
  * @function
343
342
  * @param {me.Vector2d|me.Vector3d} v
344
343
  * @returns {boolean}
@@ -346,7 +345,7 @@ class Vector3d {
346
345
  /**
347
346
  * return true if this vector is equal to the given values
348
347
  * @name equals
349
- * @memberOf me.Vector3d
348
+ * @memberof me.Vector3d
350
349
  * @function
351
350
  * @param {number} x
352
351
  * @param {number} y
@@ -377,7 +376,7 @@ class Vector3d {
377
376
  /**
378
377
  * normalize this vector (scale the vector so that its magnitude is 1)
379
378
  * @name normalize
380
- * @memberOf me.Vector3d
379
+ * @memberof me.Vector3d
381
380
  * @function
382
381
  * @returns {me.Vector3d} Reference to this object for method chaining
383
382
  */
@@ -389,7 +388,7 @@ class Vector3d {
389
388
  * change this vector to be perpendicular to what it was before.<br>
390
389
  * (Effectively rotates it 90 degrees in a clockwise direction around the z axis)
391
390
  * @name perp
392
- * @memberOf me.Vector3d
391
+ * @memberof me.Vector3d
393
392
  * @function
394
393
  * @returns {me.Vector3d} Reference to this object for method chaining
395
394
  */
@@ -400,7 +399,7 @@ class Vector3d {
400
399
  /**
401
400
  * Rotate this vector (counter-clockwise) by the specified angle (in radians) around the z axis
402
401
  * @name rotate
403
- * @memberOf me.Vector3d
402
+ * @memberof me.Vector3d
404
403
  * @function
405
404
  * @param {number} angle The angle to rotate (in radians)
406
405
  * @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around (on the same z axis)
@@ -427,31 +426,50 @@ class Vector3d {
427
426
 
428
427
  /**
429
428
  * return the dot product of this vector and the passed one
430
- * @name dotProduct
431
- * @memberOf me.Vector3d
429
+ * @name dot
430
+ * @memberof me.Vector3d
432
431
  * @function
433
432
  * @param {me.Vector2d|me.Vector3d} v
434
433
  * @returns {number} The dot product.
435
434
  */
436
- dotProduct(v) {
435
+ dot(v) {
437
436
  return this.x * v.x + this.y * v.y + this.z * (typeof(v.z) !== "undefined" ? v.z : this.z);
438
437
  }
439
438
 
439
+ /**
440
+ * calculate the cross product of this vector and the passed one
441
+ * @name cross
442
+ * @memberof me.Vector3d
443
+ * @function
444
+ * @param {me.Vector3d} v
445
+ * @returns {me.Vector3d} Reference to this object for method chaining
446
+ */
447
+ cross(v) {
448
+ var ax = this.x, ay = this.y, az = this.z;
449
+ var bx = v.x, by = v.y, bz = v.z;
450
+
451
+ this.x = ay * bz - az * by;
452
+ this.y = az * bx - ax * bz;
453
+ this.z = ax * by - ay * bx;
454
+
455
+ return this;
456
+ }
457
+
440
458
  /**
441
459
  * return the square length of this vector
442
460
  * @name length2
443
- * @memberOf me.Vector3d
461
+ * @memberof me.Vector3d
444
462
  * @function
445
463
  * @returns {number} The length^2 of this vector.
446
464
  */
447
465
  length2() {
448
- return this.dotProduct(this);
466
+ return this.dot(this);
449
467
  }
450
468
 
451
469
  /**
452
470
  * return the length (magnitude) of this vector
453
471
  * @name length
454
- * @memberOf me.Vector3d
472
+ * @memberof me.Vector3d
455
473
  * @function
456
474
  * @returns {number} the length of this vector
457
475
  */
@@ -462,7 +480,7 @@ class Vector3d {
462
480
  /**
463
481
  * Linearly interpolate between this vector and the given one.
464
482
  * @name lerp
465
- * @memberOf me.Vector3d
483
+ * @memberof me.Vector3d
466
484
  * @function
467
485
  * @param {me.Vector3d} v
468
486
  * @param {number} alpha distance along the line (alpha = 0 will be this vector, and alpha = 1 will be the given one).
@@ -478,7 +496,7 @@ class Vector3d {
478
496
  /**
479
497
  * return the distance between this vector and the passed one
480
498
  * @name distance
481
- * @memberOf me.Vector3d
499
+ * @memberof me.Vector3d
482
500
  * @function
483
501
  * @param {me.Vector2d|me.Vector3d} v
484
502
  * @returns {number}
@@ -493,25 +511,25 @@ class Vector3d {
493
511
  /**
494
512
  * return the angle between this vector and the passed one
495
513
  * @name angle
496
- * @memberOf me.Vector3d
514
+ * @memberof me.Vector3d
497
515
  * @function
498
516
  * @param {me.Vector2d|me.Vector3d} v
499
517
  * @returns {number} angle in radians
500
518
  */
501
519
  angle(v) {
502
- return Math.acos(clamp(this.dotProduct(v) / (this.length() * v.length()), -1, 1));
520
+ return Math.acos(clamp(this.dot(v) / (this.length() * v.length()), -1, 1));
503
521
  }
504
522
 
505
523
  /**
506
524
  * project this vector on to another vector.
507
525
  * @name project
508
- * @memberOf me.Vector3d
526
+ * @memberof me.Vector3d
509
527
  * @function
510
528
  * @param {me.Vector2d|me.Vector3d} v The vector to project onto.
511
529
  * @returns {me.Vector3d} Reference to this object for method chaining
512
530
  */
513
531
  project(v) {
514
- var ratio = this.dotProduct(v) / v.length2();
532
+ var ratio = this.dot(v) / v.length2();
515
533
  return this.scale(ratio, ratio, ratio);
516
534
  }
517
535
 
@@ -519,20 +537,20 @@ class Vector3d {
519
537
  * Project this vector onto a vector of unit length.<br>
520
538
  * This is slightly more efficient than `project` when dealing with unit vectors.
521
539
  * @name projectN
522
- * @memberOf me.Vector3d
540
+ * @memberof me.Vector3d
523
541
  * @function
524
542
  * @param {me.Vector2d|me.Vector3d} v The unit vector to project onto.
525
543
  * @returns {me.Vector3d} Reference to this object for method chaining
526
544
  */
527
545
  projectN(v) {
528
- var ratio = this.dotProduct(v) / v.length2();
546
+ var ratio = this.dot(v) / v.length2();
529
547
  return this.scale(ratio, ratio, ratio);
530
548
  }
531
549
 
532
550
  /**
533
551
  * return a clone copy of this vector
534
552
  * @name clone
535
- * @memberOf me.Vector3d
553
+ * @memberof me.Vector3d
536
554
  * @function
537
555
  * @returns {me.Vector3d} new me.Vector3d
538
556
  */
@@ -543,7 +561,7 @@ class Vector3d {
543
561
  /**
544
562
  * convert the object to a string representation
545
563
  * @name toString
546
- * @memberOf me.Vector3d
564
+ * @memberof me.Vector3d
547
565
  * @function
548
566
  * @returns {string}
549
567
  */