melonjs 19.4.0 → 19.5.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 (75) hide show
  1. package/README.md +18 -2
  2. package/build/application/application.d.ts.map +1 -1
  3. package/build/application/settings.d.ts +25 -2
  4. package/build/application/settings.d.ts.map +1 -1
  5. package/build/audio/audio.d.ts +77 -253
  6. package/build/audio/audio.d.ts.map +1 -1
  7. package/build/audio/backend.d.ts +121 -0
  8. package/build/audio/backend.d.ts.map +1 -0
  9. package/build/audio/playback.d.ts +157 -0
  10. package/build/audio/playback.d.ts.map +1 -0
  11. package/build/audio/procedural.d.ts +105 -0
  12. package/build/audio/procedural.d.ts.map +1 -0
  13. package/build/audio/types.d.ts +205 -0
  14. package/build/audio/types.d.ts.map +1 -0
  15. package/build/index.d.ts +6 -3
  16. package/build/index.d.ts.map +1 -1
  17. package/build/index.js +2273 -379
  18. package/build/index.js.map +4 -4
  19. package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
  20. package/build/level/tiled/TMXTileset.d.ts +12 -0
  21. package/build/level/tiled/TMXTileset.d.ts.map +1 -1
  22. package/build/level/tiled/factories/shape.d.ts +1 -1
  23. package/build/level/tiled/factories/shape.d.ts.map +1 -1
  24. package/build/level/tiled/factories/tile.d.ts.map +1 -1
  25. package/build/loader/loader.d.ts +2 -2
  26. package/build/loader/loader.d.ts.map +1 -1
  27. package/build/loader/parsers/aseprite.d.ts +37 -0
  28. package/build/loader/parsers/aseprite.d.ts.map +1 -0
  29. package/build/physics/adapter.d.ts +560 -0
  30. package/build/physics/adapter.d.ts.map +1 -0
  31. package/build/physics/bounds.d.ts +18 -5
  32. package/build/physics/bounds.d.ts.map +1 -1
  33. package/build/physics/builtin/body.d.ts +605 -0
  34. package/build/physics/builtin/body.d.ts.map +1 -0
  35. package/build/physics/builtin/builtin-adapter.d.ts +91 -0
  36. package/build/physics/builtin/builtin-adapter.d.ts.map +1 -0
  37. package/build/physics/builtin/detector.d.ts +167 -0
  38. package/build/physics/builtin/detector.d.ts.map +1 -0
  39. package/build/physics/builtin/quadtree.d.ts +112 -0
  40. package/build/physics/builtin/quadtree.d.ts.map +1 -0
  41. package/build/physics/builtin/raycast.d.ts +4 -0
  42. package/build/physics/builtin/raycast.d.ts.map +1 -0
  43. package/build/physics/{sat.d.ts → builtin/sat.d.ts} +7 -7
  44. package/build/physics/builtin/sat.d.ts.map +1 -0
  45. package/build/physics/world.d.ts +61 -26
  46. package/build/physics/world.d.ts.map +1 -1
  47. package/build/renderable/collectable.d.ts +7 -1
  48. package/build/renderable/collectable.d.ts.map +1 -1
  49. package/build/renderable/container.d.ts +0 -13
  50. package/build/renderable/container.d.ts.map +1 -1
  51. package/build/renderable/renderable.d.ts +78 -17
  52. package/build/renderable/renderable.d.ts.map +1 -1
  53. package/build/renderable/trigger.d.ts +14 -1
  54. package/build/renderable/trigger.d.ts.map +1 -1
  55. package/build/renderable/ui/uispriteelement.d.ts.map +1 -1
  56. package/build/system/timer.d.ts +0 -5
  57. package/build/system/timer.d.ts.map +1 -1
  58. package/build/video/canvas/canvas_renderer.d.ts +0 -130
  59. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  60. package/build/video/renderer.d.ts +111 -0
  61. package/build/video/renderer.d.ts.map +1 -1
  62. package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
  63. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  64. package/build/video/webgl/effects/shine.d.ts +87 -0
  65. package/build/video/webgl/effects/shine.d.ts.map +1 -0
  66. package/build/video/webgl/webgl_renderer.d.ts +0 -106
  67. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/build/physics/body.d.ts +0 -351
  70. package/build/physics/body.d.ts.map +0 -1
  71. package/build/physics/detector.d.ts +0 -72
  72. package/build/physics/detector.d.ts.map +0 -1
  73. package/build/physics/quadtree.d.ts +0 -69
  74. package/build/physics/quadtree.d.ts.map +0 -1
  75. package/build/physics/sat.d.ts.map +0 -1
@@ -0,0 +1,87 @@
1
+ /**
2
+ * A shader effect that sweeps a bright highlight band across the sprite —
3
+ * the classic "shine" pass commonly used for coins, gems, polished metal,
4
+ * and hover-highlighted UI elements. Similar to pixi-filters' ShineFilter.
5
+ *
6
+ * Set `bands` > 1 to tile the sweep into N parallel glints (useful for the
7
+ * "etched grooves" look of a coin's rim). An optional subtle brightness
8
+ * pulse can be layered on top via `pulseDepth` — set to 0 to disable.
9
+ *
10
+ * The `time` uniform must be updated each frame for the animation.
11
+ * @category Effects
12
+ * @see {@link Renderable.shader} for usage
13
+ * @example
14
+ * // single diagonal sweep — classic "button shine"
15
+ * const shine = new ShineEffect(renderer, {
16
+ * color: [1.0, 0.95, 0.7],
17
+ * speed: 0.5,
18
+ * width: 0.18,
19
+ * angle: 0.5,
20
+ * });
21
+ *
22
+ * // gold coin with ~14 parallel glints and a subtle brightness pulse
23
+ * const coinShine = new ShineEffect(renderer, {
24
+ * color: [1.0, 0.95, 0.7],
25
+ * bands: 14.5,
26
+ * width: 0.15,
27
+ * intensity: 0.4,
28
+ * speed: 0.8,
29
+ * pulseDepth: 0.08,
30
+ * });
31
+ *
32
+ * mySprite.addPostEffect(coinShine);
33
+ *
34
+ * // update each frame
35
+ * coinShine.setTime(timer.getTime() / 1000);
36
+ */
37
+ export default class ShineEffect extends ShaderEffect {
38
+ /**
39
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
40
+ * @param {object} [options] - effect options
41
+ * @param {number[]} [options.color=[1.0, 1.0, 1.0]] - shine color as [r, g, b] (0.0–1.0)
42
+ * @param {number} [options.speed=0.5] - sweeps per second
43
+ * @param {number} [options.width=0.15] - glint half-width as a fraction of one tile (0.0–1.0)
44
+ * @param {number} [options.intensity=0.5] - maximum highlight strength
45
+ * @param {number} [options.angle=0.5] - sweep direction in radians (0 = horizontal L→R, π/2 = vertical T→B)
46
+ * @param {number} [options.bands=1.0] - number of parallel glints (1 = single shine; ~14.5 mimics a coin's etched-rim look)
47
+ * @param {number} [options.pulseDepth=0.0] - subtle base-brightness pulse amplitude (0 disables the pulse)
48
+ * @param {number} [options.pulseSpeed=3.0] - pulse oscillation rate (radians/second)
49
+ */
50
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
51
+ color?: number[] | undefined;
52
+ speed?: number | undefined;
53
+ width?: number | undefined;
54
+ intensity?: number | undefined;
55
+ angle?: number | undefined;
56
+ bands?: number | undefined;
57
+ pulseDepth?: number | undefined;
58
+ pulseSpeed?: number | undefined;
59
+ });
60
+ /**
61
+ * set the current time (call each frame for animation)
62
+ * @param {number} time - time in seconds
63
+ */
64
+ setTime(time: number): void;
65
+ /**
66
+ * set the shine color
67
+ * @param {number[]} color - shine color as [r, g, b] (0.0–1.0)
68
+ */
69
+ setColor(color: number[]): void;
70
+ /**
71
+ * set the sweep speed
72
+ * @param {number} value - sweeps per second
73
+ */
74
+ setSpeed(value: number): void;
75
+ /**
76
+ * set the highlight intensity
77
+ * @param {number} value - maximum highlight strength
78
+ */
79
+ setIntensity(value: number): void;
80
+ /**
81
+ * set the number of parallel glints
82
+ * @param {number} value - 1 for a single shine, >1 for tiled stripes
83
+ */
84
+ setBands(value: number): void;
85
+ }
86
+ import ShaderEffect from "../shadereffect.js";
87
+ //# sourceMappingURL=shine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shine.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/shine.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH;IACC;;;;;;;;;;;OAWG;IACH,sBAXW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,UAAU;QACV,UAAU;KACrC,EAuDA;IAED;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;CACD;yBAlJwB,oBAAoB"}
@@ -22,12 +22,6 @@ export default class WebGLRenderer extends Renderer {
22
22
  * @ignore
23
23
  */
24
24
  _savedEffectProjection: Matrix3d;
25
- /**
26
- * sets or returns the thickness of lines for shape drawing
27
- * @type {number}
28
- * @default 1
29
- */
30
- lineWidth: number;
31
25
  /**
32
26
  * sets or returns the shape used to join two line segments where they meet.
33
27
  * Out of the three possible values for this property: "round", "bevel", and "miter", only "round" is supported for now in WebGL
@@ -322,58 +316,6 @@ export default class WebGLRenderer extends Renderer {
322
316
  */
323
317
  setBlendMode(mode?: string, premultipliedAlpha?: boolean): string;
324
318
  currentPremultipliedAlpha: any;
325
- /**
326
- * restores the most recently saved renderer state by popping the top entry in the drawing state stack
327
- * @example
328
- * // Save the current state
329
- * renderer.save();
330
- *
331
- * // apply a transform and draw a rect
332
- * renderer.tranform(matrix);
333
- * renderer.fillRect(10, 10, 100, 100);
334
- *
335
- * // Restore to the state saved by the most recent call to save()
336
- * renderer.restore();
337
- */
338
- restore(): void;
339
- /**
340
- * saves the entire state of the renderer by pushing the current state onto a stack.
341
- * @example
342
- * // Save the current state
343
- * renderer.save();
344
- *
345
- * // apply a transform and draw a rect
346
- * renderer.tranform(matrix);
347
- * renderer.fillRect(10, 10, 100, 100);
348
- *
349
- * // Restore to the state saved by the most recent call to save()
350
- * renderer.restore();
351
- */
352
- save(): void;
353
- /**
354
- * adds a rotation to the transformation matrix.
355
- * @param {number} angle - the rotation angle, clockwise in radians
356
- * @example
357
- * // Rotated rectangle
358
- * renderer.rotate((45 * Math.PI) / 180);
359
- * renderer.setColor("red");
360
- * renderer.fillRect(10, 10, 100, 100);
361
- *
362
- * // Reset transformation matrix to the identity matrix
363
- * renderer.setTransform(1, 0, 0, 1, 0, 0);
364
- */
365
- rotate(angle: number): void;
366
- /**
367
- * adds a scaling transformation to the renderer units horizontally and/or vertically
368
- * @param {number} x - Scaling factor in the horizontal direction. A negative value flips pixels across the vertical axis. A value of 1 results in no horizontal scaling.
369
- * @param {number} y - Scaling factor in the vertical direction. A negative value flips pixels across the horizontal axis. A value of 1 results in no vertical scaling
370
- */
371
- scale(x: number, y: number): void;
372
- /**
373
- * Set the global alpha
374
- * @param {number} alpha - 0.0 to 1.0 values accepted.
375
- */
376
- setGlobalAlpha(alpha: number): void;
377
319
  /**
378
320
  * Return the global alpha
379
321
  * @returns {number} global alpha value
@@ -400,31 +342,6 @@ export default class WebGLRenderer extends Renderer {
400
342
  * @param {boolean} [antiClockwise=false] - draw arc anti-clockwise
401
343
  */
402
344
  fillArc(x: number, y: number, radius: number, start: number, end: number, antiClockwise?: boolean): void;
403
- /**
404
- * Stroke an ellipse at the specified coordinates with given radius
405
- * @param {number} x - ellipse center point x-axis
406
- * @param {number} y - ellipse center point y-axis
407
- * @param {number} w - horizontal radius of the ellipse
408
- * @param {number} h - vertical radius of the ellipse
409
- * @param {boolean} [fill=false] - also fill the shape with the current color if true
410
- */
411
- strokeEllipse(x: number, y: number, w: number, h: number, fill?: boolean): void;
412
- /**
413
- * Fill an ellipse at the specified coordinates with given radius
414
- * @param {number} x - ellipse center point x-axis
415
- * @param {number} y - ellipse center point y-axis
416
- * @param {number} w - horizontal radius of the ellipse
417
- * @param {number} h - vertical radius of the ellipse
418
- */
419
- fillEllipse(x: number, y: number, w: number, h: number): void;
420
- /**
421
- * Stroke a line of the given two points
422
- * @param {number} startX - the start x coordinate
423
- * @param {number} startY - the start y coordinate
424
- * @param {number} endX - the end x coordinate
425
- * @param {number} endY - the end y coordinate
426
- */
427
- strokeLine(startX: number, startY: number, endX: number, endY: number): void;
428
345
  /**
429
346
  * Fill a line of the given two points
430
347
  * @param {number} startX - the start x coordinate
@@ -444,23 +361,6 @@ export default class WebGLRenderer extends Renderer {
444
361
  * @param {Polygon} poly - the shape to draw
445
362
  */
446
363
  fillPolygon(poly: Polygon): void;
447
- /**
448
- * Draw a stroke rectangle at the specified coordinates
449
- * @param {number} x - x axis of the coordinate for the rectangle starting point.
450
- * @param {number} y - y axis of the coordinate for the rectangle starting point.
451
- * @param {number} width - The rectangle's width.
452
- * @param {number} height - The rectangle's height.
453
- * @param {boolean} [fill=false] - also fill the shape with the current color if true
454
- */
455
- strokeRect(x: number, y: number, width: number, height: number, fill?: boolean): void;
456
- /**
457
- * Draw a filled rectangle at the specified coordinates
458
- * @param {number} x - x axis of the coordinate for the rectangle starting point.
459
- * @param {number} y - y axis of the coordinate for the rectangle starting point.
460
- * @param {number} width - The rectangle's width.
461
- * @param {number} height - The rectangle's height.
462
- */
463
- fillRect(x: number, y: number, width: number, height: number): void;
464
364
  /**
465
365
  * Stroke a rounded rectangle at the specified coordinates
466
366
  * @param {number} x - x axis of the coordinate for the rounded rectangle starting point.
@@ -514,12 +414,6 @@ export default class WebGLRenderer extends Renderer {
514
414
  * @param {number} f - the f component to multiply the current matrix by
515
415
  */
516
416
  transform(a: Matrix2d | Matrix3d | number, b: number, c: number, d: number, e: number, f: number): void;
517
- /**
518
- * adds a translation transformation to the current matrix.
519
- * @param {number} x - Distance to move in the horizontal direction. Positive values are to the right, and negative to the left.
520
- * @param {number} y - Distance to move in the vertical direction. Positive values are down, and negative are up.
521
- */
522
- translate(x: number, y: number): void;
523
417
  /**
524
418
  * clip the given region from the original canvas. Once a region is clipped,
525
419
  * all future drawing will be limited to the clipped region.
@@ -1 +1 @@
1
- {"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"AAsDA;;;GAGG;AACH;IAQE;;;;;OAKG;IACH,oBAJU,MAAM,CAIU;IAU1B;;;;OAIG;IACH,IAFU,qBAAqB,CAEI;IAYnC;;;;OAIG;IACH,wBAHU,QAAQ,CAG0B;IAE5C;;;;OAIG;IACH,WAHU,MAAM,CAGE;IAElB;;;;;OAKG;IACH,UAHU,MAAM,CAGO;IAEvB;;;OAGG;IACH,cAFU,WAAW,CAEqB;IAE1C;;;;OAIG;IACH,sBAHU,MAAM,CAGwD;IAExE;;;;OAIG;IACH,iBAHU,MAAM,CAMf;IAED;;;OAGG;IACH;;;QAEE;IAIF,kBAA6B;IAG7B,kBAAoB;IAGpB,sBAA4B;IAE5B;;;;OAIG;IACH,kBAFU,QAAQ,CAEuC;IAEzD;;;OAGG;IACH,gBAFU,OAAO,CAEc;IAE/B;;;OAGG;IACH,gBAFU,YAAY,CAES;IAE/B;;;OAGG;IACH,4BAAyB;IAuBzB,wBAA2B;IAkB3B,oBAAqD;IAyCtD;;;;OAIG;IACH,oBAHU,MAAM,CAKf;IAuHC,+CAA6B;IAY7B,sCAA4B;IAW5B,4EAA0C;IAI5C;;;;;;;;OAQG;IACH,qBAHW,MAAM,QACN,MAAM,QAWhB;IAED;;;;;OAKG;IACH,mCAJW,MAAM,GACJ,MAAM,GAAC,SAAS,CA4B5B;IAED;;;;;OAKG;IACH,oBAJW,OAAO,SACP,MAAM,aACN,OAAO,QAYjB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,WACN,QAAQ,GACN,OAAO,CA+CnB;IAED;;OAEG;IACH,uBAEC;IAED;;;;;;;;;;;OAWG;IACH,qBAVW,gBAAgB,GAAC,eAAe,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,WAAW,GAAC,eAAe,GAAC,UAAU,UAC1G,MAAM,GACJ,YAAY,CA0CxB;IAiCC,oFAAwD;IA6E1D;;;;;;;;;OASG;IACH,kBAHa,YAAY,CAqBxB;IAyDD,cAAc;IACd,qCAsFC;IAuJD;;;;OAIG;IACH,mBAHW,KAAK,GAAC,MAAM,WACZ,OAAO,QAuBjB;IAED;;;;;;OAMG;IACH,aALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAOhB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAjBW,gBAAgB,GAAC,eAAe,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,WAAW,GAAC,eAAe,GAAC,UAAU,GAAC,eAAe,MAC1H,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAwFhB;IAED;;;;;;;;OAQG;IACH,qBAPW,YAAY,KACZ,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAkBhB;IA2DD;;;;;;;;;;;;;;;OAeG;IACH,kBAEC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAIhB;IAED;;OAEG;IACH,6BAEC;IAED;;;;;;;OAOG;IACH,sBALW,MAAM,OACN,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;;;;;;OASG;IACH,oBAPW,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;;;;;OAQG;IACH,UANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,UACN,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,QALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,aANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,oBAKhB;IAED;;;;OAIG;IACH,eAHW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,SAC1C,OAAO,QA2BjB;IAED;;;OAGG;IACH,aAFW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,QAIpD;IAED;;OAEG;IACH,kBAEC;IAED;;;;OAIG;IACH,cAFa,qBAAqB,CAIjC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,oBAJW,MAAM,uBACN,OAAO,GACL,MAAM,CAgElB;IArDC,+BAAmD;IAuDrD;;;;;;;;;;;;OAYG;IACH,gBAmDC;IAED;;;;;;;;;;;;OAYG;IACH,aAGC;IAED;;;;;;;;;;;OAWG;IACH,cAVW,MAAM,QAYhB;IAED;;;;OAIG;IACH,SAHW,MAAM,KACN,MAAM,QAIhB;IA8BD;;;OAGG;IACH,sBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAoBD;;;;;;;;;OASG;IACH,aARW,MAAM,KACN,MAAM,UACN,MAAM,SACN,MAAM,OACN,MAAM,kBACN,OAAO,SACP,OAAO,QAWjB;IAED;;;;;;;;OAQG;IACH,WAPW,MAAM,KACN,MAAM,UACN,MAAM,SACN,MAAM,OACN,MAAM,kBACN,OAAO,QAqCjB;IAED;;;;;;;OAOG;IACH,iBANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,SACN,OAAO,QAWjB;IAED;;;;;;OAMG;IACH,eALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAwBhB;IAED;;;;;;OAMG;IACH,mBALW,MAAM,UACN,MAAM,QACN,MAAM,QACN,MAAM,QAgBhB;IAED;;;;;;OAMG;IACH,iBALW,MAAM,UACN,MAAM,QACN,MAAM,QACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,oBAHW,OAAO,SACP,OAAO,QAkDjB;IAED;;;OAGG;IACH,kBAFW,OAAO,QAuDjB;IAED;;;;;;;OAOG;IACH,cANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,SACN,OAAO,QA2BjB;IAED;;;;;;OAMG;IACH,YALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QA2BhB;IAED;;;;;;;;OAQG;IACH,mBAPW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,MAAM,SACN,OAAO,QAWjB;IAED;;;;;;;OAOG;IACH,iBANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,MAAM,QA4FhB;IAED;;;;OAIG;IACH,eAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAIhB;IAgED;;;;;;;;;OASG;IACH,gBAPW,QAAQ,GAAC,QAAQ,GAAC,MAAM,KACxB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAKhB;IAED;;;;;;;;;OASG;IACH,aAPW,QAAQ,GAAC,QAAQ,GAAC,MAAM,KACxB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAmChB;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAUhB;IAED;;;;;;;;;;OAUG;IACH,YALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QA+EhB;IAED;;;;;;;OAOG;IACH,eAHW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,WACnC,OAAO,QA6CjB;;CAcD;qBAn3EoB,kBAAkB;yBAXd,wBAAwB;uBAC1B,yBAAyB;6BAsCtB,uBAAuB;yBAxBxB,uBAAuB;iCAUf,6BAA6B;6BAXpB,uBAAuB;0CAavB,oCAAoC;sBA7B7C,uBAAuB;0BAkCjC,iCAAiC;+BAC5B,iCAAiC;6BACnC,6BAA6B;0BAChC,4BAA4B;6BACzB,+BAA+B;8BAC9B,wBAAwB"}
1
+ {"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melonjs",
3
- "version": "19.4.0",
3
+ "version": "19.5.0",
4
4
  "description": "melonJS Game Engine",
5
5
  "homepage": "http://www.melonjs.org/",
6
6
  "type": "module",
@@ -1,351 +0,0 @@
1
- /**
2
- * @import Entity from "./../renderable/entity/entity.js";
3
- * @import Container from "./../renderable/container.js";
4
- * @import Renderable from "./../renderable/renderable.js";
5
- * @import Sprite from "./../renderable/sprite.js";
6
- * @import NineSliceSprite from "./../renderable/nineslicesprite.js";
7
- * @import {Vector2d} from "../math/vector2d.js";
8
- * @import ResponseObject from "./response.js";
9
- **/
10
- /**
11
- * a Generic Physic Body Object with some physic properties and behavior functionality, to add as a member of a Renderable.
12
- * @category Physics
13
- * @see Renderable.body
14
- */
15
- export default class Body {
16
- /**
17
- * @param {Renderable|Container|Entity|Sprite|NineSliceSprite} ancestor - the parent object this body is attached to
18
- * @param {Rect|Rect[]|Polygon|Polygon[]|Line|Line[]|Ellipse|Ellipse[]|Point|Point[]|Bounds|Bounds[]|object} [shapes] - a initial shape, list of shapes, or JSON object defining the body
19
- * @param {Function} [onBodyUpdate] - callback for when the body is updated (e.g. add/remove shapes)
20
- */
21
- constructor(ancestor: Renderable | Container | Entity | Sprite | NineSliceSprite, shapes?: Rect | Rect[] | Polygon | Polygon[] | Line | Line[] | Ellipse | Ellipse[] | Point | Point[] | Bounds | Bounds[] | object, onBodyUpdate?: Function);
22
- /**
23
- * a reference to the parent object that contains this body,
24
- * or undefined if it has not been added to one.
25
- * @public
26
- * @type {Renderable|Container|Entity|Sprite|NineSliceSprite}
27
- * @default undefined
28
- */
29
- public ancestor: Renderable | Container | Entity | Sprite | NineSliceSprite;
30
- /**
31
- * The AABB bounds box representing this body
32
- * @public
33
- * @type {Bounds}
34
- */
35
- public bounds: Bounds;
36
- /**
37
- * The collision shapes of the body
38
- * @ignore
39
- * @type {Polygon[]|Line[]|Ellipse[]|Point|Point[]}
40
- */
41
- shapes: Polygon[] | Line[] | Ellipse[] | Point | Point[];
42
- /**
43
- * The body collision mask, that defines what should collide with what.<br>
44
- * (by default will collide with all entities)
45
- * @ignore
46
- * @type {number}
47
- * @default collision.types.ALL_OBJECT
48
- * @see collision.types
49
- */
50
- collisionMask: number;
51
- /**
52
- * define the collision type of the body for collision filtering
53
- * @public
54
- * @type {number}
55
- * @default collision.types.ENEMY_OBJECT
56
- * @see collision.types
57
- * @example
58
- * // set the body collision type
59
- * body.collisionType = me.collision.types.PLAYER_OBJECT;
60
- */
61
- public collisionType: number;
62
- /**
63
- * The current velocity of the body.
64
- * See to apply a force if you need to modify a body velocity
65
- * @see Body.force
66
- * @public
67
- * @type {Vector2d}
68
- * @default <0,0>
69
- */
70
- public vel: Vector2d;
71
- /**
72
- * body force to apply to this the body in the current step.
73
- * (any positive or negative force will be cancelled after every world/body update cycle)
74
- * @public
75
- * @type {Vector2d}
76
- * @default <0,0>
77
- * @see Body.setMaxVelocity
78
- * @example
79
- * // define a default maximum acceleration, initial force and friction
80
- * this.body.force.set(1, 0);
81
- * this.body.friction.set(0.4, 0);
82
- * this.body.setMaxVelocity(3, 15);
83
- *
84
- * // apply a positive or negative force when pressing left of right key
85
- * update(dt) {
86
- * if (me.input.isKeyPressed("left")) {
87
- * this.body.force.x = -this.body.maxVel.x;
88
- * } else if (me.input.isKeyPressed("right")) {
89
- * this.body.force.x = this.body.maxVel.x;
90
- * }
91
- * }
92
- */
93
- public force: Vector2d;
94
- /**
95
- * body friction
96
- * @public
97
- * @type {Vector2d}
98
- * @default <0,0>
99
- */
100
- public friction: Vector2d;
101
- /**
102
- * the body bounciness level when colliding with other solid bodies :
103
- * a value of 0 will not bounce, a value of 1 will fully rebound.
104
- * @public
105
- * @type {number}
106
- * @default 0
107
- */
108
- public bounce: number;
109
- /**
110
- * the body mass
111
- * @public
112
- * @type {number}
113
- * @default 1
114
- */
115
- public mass: number;
116
- /**
117
- * max velocity (to limit body velocity)
118
- * @public
119
- * @type {Vector2d}
120
- * @default <490,490>
121
- */
122
- public maxVel: Vector2d;
123
- /**
124
- * Either this body is a static body or not.
125
- * A static body is completely fixed and can never change position or angle.
126
- * @readonly
127
- * @public
128
- * @type {boolean}
129
- * @default false
130
- */
131
- public readonly isStatic: boolean;
132
- /**
133
- * The degree to which this body is affected by the world gravity
134
- * @public
135
- * @see {@link World.gravity}
136
- * @type {number}
137
- * @default 1.0
138
- */
139
- public gravityScale: number;
140
- /**
141
- * If true this body won't be affected by the world gravity
142
- * @public
143
- * @see {@link World.gravity}
144
- * @type {boolean}
145
- * @default false
146
- */
147
- public ignoreGravity: boolean;
148
- /**
149
- * falling state of the body<br>
150
- * true if the object is falling<br>
151
- * false if the object is standing on something<br>
152
- * @readonly
153
- * @public
154
- * @type {boolean}
155
- * @default false
156
- */
157
- public readonly falling: boolean;
158
- /**
159
- * jumping state of the body<br>
160
- * equal true if the body is jumping<br>
161
- * @readonly
162
- * @public
163
- * @type {boolean}
164
- * @default false
165
- */
166
- public readonly jumping: boolean;
167
- onBodyUpdate: Function | undefined;
168
- /**
169
- * set the body as a static body
170
- * static body do not move automatically and do not check against collision with others
171
- * @param {boolean} [isStatic=true]
172
- */
173
- setStatic(isStatic?: boolean): void;
174
- /**
175
- * add a collision shape to this body <br>
176
- * (note: me.Rect objects will be converted to me.Polygon before being added)
177
- * @param {Rect|Polygon|Line|Ellipse|Point|Point[]|Bounds|object} shape - a shape or JSON object
178
- * @returns {number} the shape array length
179
- * @example
180
- * // add a rectangle shape
181
- * this.body.addShape(new me.Rect(0, 0, image.width, image.height));
182
- * // add a shape from a JSON object
183
- * this.body.addShape(me.loader.getJSON("shapesdef").banana);
184
- */
185
- addShape(shape: Rect | Polygon | Line | Ellipse | Point | Point[] | Bounds | object): number;
186
- /**
187
- * set the body vertices to the given one
188
- * @param {Vector2d[]} vertices - an array of me.Vector2d points defining a convex hull
189
- * @param {number} [index=0] - the shape object for which to set the vertices
190
- * @param {boolean} [clear=true] - either to reset the body definition before adding the new vertices
191
- */
192
- setVertices(vertices: Vector2d[], index?: number, clear?: boolean): void;
193
- /**
194
- * add the given vertices to the body shape
195
- * @param {Vector2d[]} vertices - an array of me.Vector2d points defining a convex hull
196
- * @param {number} [index=0] - the shape object for which to set the vertices
197
- */
198
- addVertices(vertices: Vector2d[], index?: number): void;
199
- /**
200
- * add collision mesh based on a JSON object
201
- * (this will also apply any physic properties defined in the given JSON file)
202
- * @param {object} json - a JSON object as exported from a Physics Editor tool
203
- * @param {string} [id] - an optional shape identifier within the given the json object
204
- * @see https://www.codeandweb.com/physicseditor
205
- * @returns {number} how many shapes were added to the body
206
- * @example
207
- * // define the body based on the banana shape
208
- * this.body.fromJSON(me.loader.getJSON("shapesdef").banana);
209
- * // or ...
210
- * this.body.fromJSON(me.loader.getJSON("shapesdef"), "banana");
211
- */
212
- fromJSON(json: object, id?: string): number;
213
- /**
214
- * return the collision shape at the given index
215
- * @param {number} [index=0] - the shape object at the specified index
216
- * @returns {Polygon|Line|Ellipse} shape a shape object if defined
217
- */
218
- getShape(index?: number): Polygon | Line | Ellipse;
219
- /**
220
- * returns the AABB bounding box for this body
221
- * @returns {Bounds} bounding box Rectangle object
222
- */
223
- getBounds(): Bounds;
224
- /**
225
- * remove the specified shape from the body shape list
226
- * @param {Polygon|Line|Ellipse} shape - a shape object
227
- * @returns {number} the shape array length
228
- */
229
- removeShape(shape: Polygon | Line | Ellipse): number;
230
- /**
231
- * remove the shape at the given index from the body shape list
232
- * @param {number} index - the shape object at the specified index
233
- * @returns {number} the shape array length
234
- */
235
- removeShapeAt(index: number): number;
236
- /**
237
- * By default all physic bodies are able to collide with all other bodies, <br>
238
- * but it's also possible to specify 'collision filters' to provide a finer <br>
239
- * control over which body can collide with each other.
240
- * @see collision.types
241
- * @param {number} [bitmask = collision.types.ALL_OBJECT] - the collision mask
242
- * @example
243
- * // filter collision detection with collision shapes, enemies and collectables
244
- * body.setCollisionMask(me.collision.types.WORLD_SHAPE | me.collision.types.ENEMY_OBJECT | me.collision.types.COLLECTABLE_OBJECT);
245
- * ...
246
- * // disable collision detection with all other objects
247
- * body.setCollisionMask(me.collision.types.NO_OBJECT);
248
- */
249
- setCollisionMask(bitmask?: number): void;
250
- /**
251
- * define the collision type of the body for collision filtering
252
- * @see collision.types
253
- * @param {number} type - the collision type
254
- * @example
255
- * // set the body collision type
256
- * body.collisionType = me.collision.types.PLAYER_OBJECT;
257
- */
258
- setCollisionType(type: number): void;
259
- /**
260
- * the built-in function to solve the collision response
261
- * @param {ResponseObject} response - the collision response object
262
- * @see {@link ResponseObject}
263
- */
264
- respondToCollision(response: ResponseObject): void;
265
- /**
266
- * The forEach() method executes a provided function once per body shape element. <br>
267
- * the callback function is invoked with three arguments: <br>
268
- * - The current element being processed in the array <br>
269
- * - The index of element in the array. <br>
270
- * - The array forEach() was called upon. <br>
271
- * @param {Function} callback - function to execute on each element
272
- * @param {object} [thisArg] - value to use as this(i.e reference Object) when executing callback.
273
- * @example
274
- * // iterate through all shapes of the physic body
275
- * mySprite.body.forEach((shape) => {
276
- * shape.doSomething();
277
- * });
278
- * mySprite.body.forEach((shape, index) => { ... });
279
- * mySprite.body.forEach((shape, index, array) => { ... });
280
- * mySprite.body.forEach((shape, index, array) => { ... }, thisArg);
281
- */
282
- forEach(callback: Function, thisArg?: object): void;
283
- /**
284
- * Returns true if the any of the shape composing the body contains the given point.
285
- * @param {number|Vector2d} x - x coordinate or a vector point to check
286
- * @param {number} [y] - y coordinate
287
- * @returns {boolean} true if contains
288
- * @example
289
- * if (mySprite.body.contains(10, 10)) {
290
- * // do something
291
- * }
292
- * // or
293
- * if (mySprite.body.contains(myVector2d)) {
294
- * // do something
295
- * }
296
- */
297
- contains(...args: any[]): boolean;
298
- /**
299
- * Rotate this body (counter-clockwise) by the specified angle (in radians).
300
- * Unless specified the body will be rotated around its center point
301
- * @param {number} angle - The angle to rotate (in radians)
302
- * @param {Vector2d} [v=Body.getBounds().center] - an optional point to rotate around
303
- * @returns {Body} Reference to this object for method chaining
304
- */
305
- rotate(angle: number, v?: Vector2d): Body;
306
- /**
307
- * cap the body velocity (body.maxVel property) to the specified value<br>
308
- * @param {number} x - max velocity on x axis
309
- * @param {number} y - max velocity on y axis
310
- */
311
- setMaxVelocity(x: number, y: number): void;
312
- /**
313
- * set the body default friction
314
- * @param {number} x - horizontal friction
315
- * @param {number} y - vertical friction
316
- */
317
- setFriction(x?: number, y?: number): void;
318
- /**
319
- * Updates the parent's position as well as computes the new body's velocity based
320
- * on the values of force/friction. Velocity changes are proportional to the
321
- * me.timer.tick value (which can be used to scale velocities). The approach to moving the
322
- * parent renderable is to compute new values of the Body.vel property then add them to
323
- * the parent.pos value thus changing the position by the amount of Body.vel each time the
324
- * update call is made. <br>
325
- * Updates to Body.vel are bounded by maxVel (which defaults to viewport size if not set) <br>
326
- * At this time a call to Body.Update does not call the onBodyUpdate callback that is listed in the constructor arguments.
327
- * @protected
328
- * @param {number} dt - time since the last update in milliseconds.
329
- * @returns {boolean} true if resulting velocity is different than 0
330
- */
331
- protected update(): boolean;
332
- /**
333
- * Destroy function<br>
334
- * @ignore
335
- */
336
- destroy(): void;
337
- }
338
- import type Renderable from "./../renderable/renderable.js";
339
- import type Container from "./../renderable/container.js";
340
- import type Entity from "./../renderable/entity/entity.js";
341
- import type Sprite from "./../renderable/sprite.js";
342
- import type NineSliceSprite from "./../renderable/nineslicesprite.js";
343
- import { Bounds } from "./bounds.ts";
344
- import { Polygon } from "../geometries/polygon.ts";
345
- import { Line } from "./../geometries/line.ts";
346
- import { Ellipse } from "./../geometries/ellipse.ts";
347
- import { Point } from "../geometries/point.ts";
348
- import type { Vector2d } from "../math/vector2d.js";
349
- import { Rect } from "./../geometries/rectangle.ts";
350
- import type ResponseObject from "./response.js";
351
- //# sourceMappingURL=body.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/physics/body.js"],"names":[],"mappings":"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"}