melonjs 10.6.1 → 10.8.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 (79) hide show
  1. package/dist/melonjs.js +37947 -36530
  2. package/dist/melonjs.min.js +22 -22
  3. package/dist/melonjs.module.d.ts +1352 -307
  4. package/dist/melonjs.module.js +2929 -1501
  5. package/package.json +14 -12
  6. package/src/camera/camera2d.js +1 -1
  7. package/src/entity/entity.js +6 -7
  8. package/src/game.js +5 -5
  9. package/src/geometries/ellipse.js +10 -11
  10. package/src/geometries/line.js +3 -3
  11. package/src/geometries/path2d.js +319 -0
  12. package/src/geometries/poly.js +11 -11
  13. package/src/geometries/rectangle.js +30 -15
  14. package/src/geometries/roundrect.js +67 -0
  15. package/src/index.js +9 -5
  16. package/src/input/gamepad.js +12 -10
  17. package/src/input/keyboard.js +5 -3
  18. package/src/input/pointer.js +1 -1
  19. package/src/input/pointerevent.js +3 -4
  20. package/src/lang/deprecated.js +1 -1
  21. package/src/level/tiled/TMXLayer.js +1 -1
  22. package/src/level/tiled/TMXObject.js +9 -12
  23. package/src/level/tiled/TMXTileMap.js +23 -4
  24. package/src/level/tiled/TMXUtils.js +1 -1
  25. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  26. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  27. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  28. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  29. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  30. package/src/loader/loader.js +5 -5
  31. package/src/loader/loadingscreen.js +1 -1
  32. package/src/math/color.js +1 -1
  33. package/src/math/matrix2.js +1 -1
  34. package/src/math/matrix3.js +67 -66
  35. package/src/math/observable_vector2.js +1 -1
  36. package/src/math/observable_vector3.js +1 -1
  37. package/src/math/vector2.js +1 -1
  38. package/src/math/vector3.js +1 -1
  39. package/src/particles/emitter.js +130 -430
  40. package/src/particles/particle.js +53 -53
  41. package/src/particles/settings.js +310 -0
  42. package/src/physics/body.js +67 -51
  43. package/src/physics/bounds.js +8 -9
  44. package/src/physics/world.js +1 -1
  45. package/src/polyfill/console.js +7 -7
  46. package/src/polyfill/index.js +7 -0
  47. package/src/polyfill/performance.js +20 -0
  48. package/src/polyfill/requestAnimationFrame.js +10 -10
  49. package/src/renderable/collectable.js +9 -2
  50. package/src/renderable/colorlayer.js +1 -1
  51. package/src/renderable/container.js +1 -1
  52. package/src/renderable/imagelayer.js +3 -3
  53. package/src/renderable/renderable.js +1 -1
  54. package/src/renderable/sprite.js +2 -3
  55. package/src/renderable/trigger.js +10 -4
  56. package/src/state/stage.js +1 -1
  57. package/src/state/state.js +8 -8
  58. package/src/system/device.js +148 -133
  59. package/src/system/event.js +10 -10
  60. package/src/system/pooling.js +156 -149
  61. package/src/system/timer.js +1 -1
  62. package/src/text/bitmaptext.js +1 -1
  63. package/src/text/text.js +1 -1
  64. package/src/utils/agent.js +4 -4
  65. package/src/utils/function.js +2 -2
  66. package/src/utils/utils.js +10 -5
  67. package/src/video/canvas/canvas_renderer.js +104 -36
  68. package/src/video/renderer.js +28 -16
  69. package/src/video/texture.js +1 -1
  70. package/src/video/video.js +11 -11
  71. package/src/video/webgl/glshader.js +30 -194
  72. package/src/video/webgl/utils/attributes.js +16 -0
  73. package/src/video/webgl/utils/precision.js +11 -0
  74. package/src/video/webgl/utils/program.js +58 -0
  75. package/src/video/webgl/utils/string.js +16 -0
  76. package/src/video/webgl/utils/uniforms.js +87 -0
  77. package/src/video/webgl/webgl_compositor.js +1 -14
  78. package/src/video/webgl/webgl_renderer.js +129 -186
  79. package/src/particles/particlecontainer.js +0 -95
@@ -1,4 +1,4 @@
1
- import * as pool from "./../system/pooling.js";
1
+ import pool from "./../system/pooling.js";
2
2
  import { EPSILON } from "./math.js";
3
3
 
4
4
  /**
@@ -475,72 +475,73 @@ class Matrix3d {
475
475
  * @returns {Matrix3d} Reference to this object for method chaining
476
476
  */
477
477
  rotate(angle, v) {
478
- var a = this.val,
479
- x = v.x,
480
- y = v.y,
481
- z = v.z;
482
-
483
- var len = Math.sqrt(x * x + y * y + z * z);
484
-
485
- var s, c, t;
486
- var a00, a01, a02, a03;
487
- var a10, a11, a12, a13;
488
- var a20, a21, a22, a23;
489
- var b00, b01, b02;
490
- var b10, b11, b12;
491
- var b20, b21, b22;
492
-
493
- if (len < EPSILON) {
494
- return null;
495
- }
496
-
497
- len = 1 / len;
498
- x *= len;
499
- y *= len;
500
- z *= len;
501
-
502
- s = Math.sin(angle);
503
- c = Math.cos(angle);
504
- t = 1 - c;
505
-
506
- a00 = a[0];
507
- a01 = a[1];
508
- a02 = a[2];
509
- a03 = a[3];
510
- a10 = a[4];
511
- a11 = a[5];
512
- a12 = a[6];
513
- a13 = a[7];
514
- a20 = a[8];
515
- a21 = a[9];
516
- a22 = a[10];
517
- a23 = a[11];
518
-
519
- // Construct the elements of the rotation matrix
520
- b00 = x * x * t + c;
521
- b01 = y * x * t + z * s;
522
- b02 = z * x * t - y * s;
523
- b10 = x * y * t - z * s;
524
- b11 = y * y * t + c;
525
- b12 = z * y * t + x * s;
526
- b20 = x * z * t + y * s;
527
- b21 = y * z * t - x * s;
528
- b22 = z * z * t + c;
529
-
530
- // Perform rotation-specific matrix multiplication
531
- a[0] = a00 * b00 + a10 * b01 + a20 * b02;
532
- a[1] = a01 * b00 + a11 * b01 + a21 * b02;
533
- a[2] = a02 * b00 + a12 * b01 + a22 * b02;
534
- a[3] = a03 * b00 + a13 * b01 + a23 * b02;
535
- a[4] = a00 * b10 + a10 * b11 + a20 * b12;
536
- a[5] = a01 * b10 + a11 * b11 + a21 * b12;
537
- a[6] = a02 * b10 + a12 * b11 + a22 * b12;
538
- a[7] = a03 * b10 + a13 * b11 + a23 * b12;
539
- a[8] = a00 * b20 + a10 * b21 + a20 * b22;
540
- a[9] = a01 * b20 + a11 * b21 + a21 * b22;
541
- a[10] = a02 * b20 + a12 * b21 + a22 * b22;
542
- a[11] = a03 * b20 + a13 * b21 + a23 * b22;
478
+ if (angle !== 0) {
479
+ var a = this.val,
480
+ x = v.x,
481
+ y = v.y,
482
+ z = v.z;
483
+
484
+ var len = Math.sqrt(x * x + y * y + z * z);
485
+
486
+ var s, c, t;
487
+ var a00, a01, a02, a03;
488
+ var a10, a11, a12, a13;
489
+ var a20, a21, a22, a23;
490
+ var b00, b01, b02;
491
+ var b10, b11, b12;
492
+ var b20, b21, b22;
493
+
494
+ if (len < EPSILON) {
495
+ return null;
496
+ }
497
+
498
+ len = 1 / len;
499
+ x *= len;
500
+ y *= len;
501
+ z *= len;
502
+
503
+ s = Math.sin(angle);
504
+ c = Math.cos(angle);
505
+ t = 1 - c;
506
+
507
+ a00 = a[0];
508
+ a01 = a[1];
509
+ a02 = a[2];
510
+ a03 = a[3];
511
+ a10 = a[4];
512
+ a11 = a[5];
513
+ a12 = a[6];
514
+ a13 = a[7];
515
+ a20 = a[8];
516
+ a21 = a[9];
517
+ a22 = a[10];
518
+ a23 = a[11];
543
519
 
520
+ // Construct the elements of the rotation matrix
521
+ b00 = x * x * t + c;
522
+ b01 = y * x * t + z * s;
523
+ b02 = z * x * t - y * s;
524
+ b10 = x * y * t - z * s;
525
+ b11 = y * y * t + c;
526
+ b12 = z * y * t + x * s;
527
+ b20 = x * z * t + y * s;
528
+ b21 = y * z * t - x * s;
529
+ b22 = z * z * t + c;
530
+
531
+ // Perform rotation-specific matrix multiplication
532
+ a[0] = a00 * b00 + a10 * b01 + a20 * b02;
533
+ a[1] = a01 * b00 + a11 * b01 + a21 * b02;
534
+ a[2] = a02 * b00 + a12 * b01 + a22 * b02;
535
+ a[3] = a03 * b00 + a13 * b01 + a23 * b02;
536
+ a[4] = a00 * b10 + a10 * b11 + a20 * b12;
537
+ a[5] = a01 * b10 + a11 * b11 + a21 * b12;
538
+ a[6] = a02 * b10 + a12 * b11 + a22 * b12;
539
+ a[7] = a03 * b10 + a13 * b11 + a23 * b12;
540
+ a[8] = a00 * b20 + a10 * b21 + a20 * b22;
541
+ a[9] = a01 * b20 + a11 * b21 + a21 * b22;
542
+ a[10] = a02 * b20 + a12 * b21 + a22 * b22;
543
+ a[11] = a03 * b20 + a13 * b21 + a23 * b22;
544
+ }
544
545
  return this;
545
546
  }
546
547
 
@@ -1,4 +1,4 @@
1
- import * as pool from "./../system/pooling.js";
1
+ import pool from "./../system/pooling.js";
2
2
  import Vector2d from "./vector2.js";
3
3
  import {clamp} from "./math.js";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import Vector3d from "./vector3.js";
2
2
  import {clamp} from "./math.js";
3
- import * as pool from "./../system/pooling.js";
3
+ import pool from "./../system/pooling.js";
4
4
 
5
5
  /**
6
6
  * @classdesc
@@ -1,5 +1,5 @@
1
1
  import {clamp} from "./math.js";
2
- import * as pool from "./../system/pooling.js";
2
+ import pool from "./../system/pooling.js";
3
3
 
4
4
  /**
5
5
  * @classdesc
@@ -1,5 +1,5 @@
1
1
  import {clamp} from "./math.js";
2
- import * as pool from "./../system/pooling.js";
2
+ import pool from "./../system/pooling.js";
3
3
 
4
4
  /**
5
5
  * @classdesc