melonjs 19.6.0 → 19.7.1

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 (118) hide show
  1. package/README.md +17 -14
  2. package/build/application/application.d.ts +34 -2
  3. package/build/application/application.d.ts.map +1 -1
  4. package/build/application/settings.d.ts +37 -1
  5. package/build/application/settings.d.ts.map +1 -1
  6. package/build/camera/camera2d.d.ts +59 -7
  7. package/build/camera/camera2d.d.ts.map +1 -1
  8. package/build/camera/camera3d.d.ts +335 -0
  9. package/build/camera/camera3d.d.ts.map +1 -0
  10. package/build/camera/frustum.d.ts +162 -0
  11. package/build/camera/frustum.d.ts.map +1 -0
  12. package/build/const.d.ts +30 -3
  13. package/build/const.d.ts.map +1 -1
  14. package/build/geometries/sphere.d.ts +105 -0
  15. package/build/geometries/sphere.d.ts.map +1 -0
  16. package/build/index.d.ts +6 -4
  17. package/build/index.d.ts.map +1 -1
  18. package/build/index.js +27497 -24696
  19. package/build/index.js.map +4 -4
  20. package/build/input/keyboard.d.ts.map +1 -1
  21. package/build/input/pointerevent.d.ts.map +1 -1
  22. package/build/lang/deprecated.d.ts +18 -0
  23. package/build/lang/deprecated.d.ts.map +1 -1
  24. package/build/level/tiled/TMXLayer.d.ts.map +1 -1
  25. package/build/loader/loadingscreen.d.ts +8 -0
  26. package/build/loader/loadingscreen.d.ts.map +1 -1
  27. package/build/loader/parsers/mtl.d.ts.map +1 -1
  28. package/build/loader/parsers/obj.d.ts.map +1 -1
  29. package/build/math/color.d.ts +43 -5
  30. package/build/math/color.d.ts.map +1 -1
  31. package/build/math/math.d.ts +44 -0
  32. package/build/math/math.d.ts.map +1 -1
  33. package/build/math/matrix3d.d.ts +1 -1
  34. package/build/math/observableVector2d.d.ts +14 -2
  35. package/build/math/observableVector2d.d.ts.map +1 -1
  36. package/build/math/observableVector3d.d.ts +14 -2
  37. package/build/math/observableVector3d.d.ts.map +1 -1
  38. package/build/math/vector2d.d.ts +16 -2
  39. package/build/math/vector2d.d.ts.map +1 -1
  40. package/build/math/vector3d.d.ts +16 -2
  41. package/build/math/vector3d.d.ts.map +1 -1
  42. package/build/particles/emitter.d.ts.map +1 -1
  43. package/build/physics/adapter.d.ts +77 -0
  44. package/build/physics/adapter.d.ts.map +1 -1
  45. package/build/physics/broadphase/aabb3d.d.ts +115 -0
  46. package/build/physics/broadphase/aabb3d.d.ts.map +1 -0
  47. package/build/physics/broadphase/broadphase.d.ts +74 -0
  48. package/build/physics/broadphase/broadphase.d.ts.map +1 -0
  49. package/build/physics/broadphase/factory.d.ts +30 -0
  50. package/build/physics/broadphase/factory.d.ts.map +1 -0
  51. package/build/physics/broadphase/octree.d.ts +325 -0
  52. package/build/physics/broadphase/octree.d.ts.map +1 -0
  53. package/build/physics/broadphase/quadtree.d.ts +184 -0
  54. package/build/physics/broadphase/quadtree.d.ts.map +1 -0
  55. package/build/physics/builtin/body.d.ts +7 -3
  56. package/build/physics/builtin/body.d.ts.map +1 -1
  57. package/build/physics/builtin/builtin-adapter.d.ts +6 -1
  58. package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
  59. package/build/physics/builtin/raycast.d.ts.map +1 -1
  60. package/build/physics/world.d.ts +15 -4
  61. package/build/physics/world.d.ts.map +1 -1
  62. package/build/renderable/container.d.ts +51 -5
  63. package/build/renderable/container.d.ts.map +1 -1
  64. package/build/renderable/mesh.d.ts +85 -10
  65. package/build/renderable/mesh.d.ts.map +1 -1
  66. package/build/renderable/renderable.d.ts +9 -4
  67. package/build/renderable/renderable.d.ts.map +1 -1
  68. package/build/renderable/ui/uitextbutton.d.ts +2 -1
  69. package/build/renderable/ui/uitextbutton.d.ts.map +1 -1
  70. package/build/state/stage.d.ts +8 -0
  71. package/build/state/stage.d.ts.map +1 -1
  72. package/build/state/state.d.ts.map +1 -1
  73. package/build/system/device.d.ts +196 -310
  74. package/build/system/device.d.ts.map +1 -1
  75. package/build/system/event.d.ts +49 -0
  76. package/build/system/event.d.ts.map +1 -1
  77. package/build/system/fullscreen.d.ts +16 -0
  78. package/build/system/fullscreen.d.ts.map +1 -0
  79. package/build/system/platform.d.ts +32 -4
  80. package/build/system/platform.d.ts.map +1 -1
  81. package/build/system/timer.d.ts.map +1 -1
  82. package/build/utils/function.d.ts +7 -1
  83. package/build/utils/function.d.ts.map +1 -1
  84. package/build/utils/types.d.ts +5 -0
  85. package/build/utils/types.d.ts.map +1 -1
  86. package/build/video/buffer/vertex.d.ts +19 -4
  87. package/build/video/buffer/vertex.d.ts.map +1 -1
  88. package/build/video/canvas/canvas_renderer.d.ts +4 -4
  89. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  90. package/build/video/canvas_factory.d.ts +25 -0
  91. package/build/video/canvas_factory.d.ts.map +1 -0
  92. package/build/video/renderer.d.ts +89 -15
  93. package/build/video/renderer.d.ts.map +1 -1
  94. package/build/video/renderstate.d.ts +12 -0
  95. package/build/video/renderstate.d.ts.map +1 -1
  96. package/build/video/rendertarget/rendertarget.d.ts +3 -1
  97. package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
  98. package/build/video/texture/cache.d.ts +5 -0
  99. package/build/video/texture/cache.d.ts.map +1 -1
  100. package/build/video/texture/resource.d.ts +22 -14
  101. package/build/video/texture/resource.d.ts.map +1 -1
  102. package/build/video/video.d.ts +3 -1
  103. package/build/video/video.d.ts.map +1 -1
  104. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  105. package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
  106. package/build/video/webgl/batchers/material_batcher.d.ts +9 -0
  107. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  108. package/build/video/webgl/batchers/mesh_batcher.d.ts +45 -1
  109. package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
  110. package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
  111. package/build/video/webgl/batchers/quad_batcher.d.ts +2 -2
  112. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  113. package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
  114. package/build/video/webgl/webgl_renderer.d.ts +2 -2
  115. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  116. package/package.json +4 -3
  117. package/build/physics/builtin/quadtree.d.ts +0 -112
  118. package/build/physics/builtin/quadtree.d.ts.map +0 -1
package/README.md CHANGED
@@ -17,7 +17,7 @@ A modern & lightweight HTML5 game engine
17
17
  -------------------------------------------------------------------------------
18
18
  ![melonJS](https://melonjs.org/img/alex4-github.png)
19
19
 
20
- [melonJS](https://melonjs.org/) is an open-source 2D game engine designed for indie developers — post-processing effects, custom shaders, 3D mesh support, polygon-accurate physics, modern Tiled workflows, and high performance, all packed into just over 100 KB minzipped of vanilla JS/TS with no toolchain lock-in. Built with ES6 classes and bundled with [esbuild](https://esbuild.github.io).
20
+ [melonJS](https://melonjs.org/) is an open-source 2.5D game engine designed for indie developers — perspective and orthogonal cameras, GPU-accelerated tilemap rendering, post-processing effects, custom shaders, 3D mesh support, polygon-accurate physics, modern Tiled workflows, and high performance. Runs on WebGL or Canvas2D with automatic fallback, tree-shakeable so you only pay for what you use, and the entire engine fits in ~150 KB minzipped of vanilla JS/TS with no toolchain lock-in. Built with ES6 classes and bundled with [esbuild](https://esbuild.github.io).
21
21
 
22
22
  [melonJS](https://melonjs.org/) is licensed under the [MIT License](LICENSE.md) and actively maintained by the team at AltByte in Singapore.
23
23
 
@@ -30,9 +30,9 @@ melonJS is designed so you can **focus on making games, not on graphics plumbing
30
30
 
31
31
  - **True renderer abstraction** — Write your game once, run it on WebGL or Canvas2D with zero code changes. The engine handles all GPU complexity behind a unified API, with automatic fallback when WebGL is not available. Designed to support future backends (WebGPU) without touching game code.
32
32
 
33
- - **Complete engine, minimal footprint** — Physics, tilemaps, audio, input, cameras, tweens, particles, UI — a full 2D game stack in a single tree-shakeable ES module. No dependency sprawl, no library stitching.
33
+ - **Complete engine, minimal footprint** — Physics, tilemaps, audio, input, cameras, tweens, particles, UI — a full game stack in a single tree-shakeable ES module. No dependency sprawl, no library stitching.
34
34
 
35
- - **Tiled as a first-class citizen** — Deep [Tiled](https://www.mapeditor.org) integration built into the core: orthogonal, isometric, hexagonal and staggered maps, animated tilesets, collision shapes, object properties, compressed formats — all parsed and rendered natively.
35
+ - **Tiled as a first-class citizen** — Deep [Tiled](https://www.mapeditor.org) integration built into the core: orthogonal, isometric, hexagonal and staggered maps, animated tilesets, collision shapes, object properties, compressed formats — all parsed and rendered natively, with GPU-accelerated tile rendering for orthogonal maps under WebGL 2.
36
36
 
37
37
  - **Batteries included, hackable by design** — Get started in minutes with minimal setup. When you need to go deeper: ES6 classes throughout, a plugin system for engine extensions, and a clean architecture that's easy to extend without fighting the framework.
38
38
 
@@ -46,15 +46,15 @@ Compatibility
46
46
  - Compatible with all major browsers (Chrome, Safari, Firefox, Opera, Edge) and mobile devices
47
47
 
48
48
  Graphics
49
- - 2D sprite-based graphic engine
50
49
  - Fast WebGL renderer for desktop and mobile devices with fallback to Canvas rendering
51
50
  - Extensible batcher system for custom rendering pipelines
52
51
  - High DPI resolution & Canvas advanced auto scaling
53
- - Sprite with 9-slice scaling option, and animation management
54
- - Built-in effects such as tinting, masking and 2D lighting (with optional per-pixel normal-map shading on sprites for 3D-looking dynamic lights)
52
+ - Sprite with 9-slice scaling option, frame animation, and optional per-pixel normal-map shading for 3D-looking dynamic lights
53
+ - Built-in effects such as tinting, masking, and CSS-style blend modes (normal, additive, multiply, screen, darken, lighten)
55
54
  - Standard spritesheet, single and multiple Packed Textures support
56
55
  - Compressed texture support (DDS, KTX, KTX2, PVR, PKM) with automatic format detection and fallback
57
- - 3D mesh rendering with OBJ/MTL model loading, perspective projection and hardware depth testing
56
+ - 3D mesh rendering with OBJ/MTL model loading, multi-material support, hardware depth testing, and perspective projection via `Camera3d`
57
+ - `Light2d` as a first-class `Renderable` — multiple dynamic lights, radial-gradient falloff, illumination-only mode, and procedural rendering via `drawLight`
58
58
  - Built-in shader effects (Flash, Outline, Glow, Dissolve, CRT, Hologram, etc.) with multi-pass chaining via `postEffects`, plus custom shader support via `ShaderEffect` for per-sprite fragment effects (WebGL)
59
59
  - Trail renderable for fading, tapering ribbons behind moving objects (speed lines, sword slashes, magic trails)
60
60
  - System & Bitmap Text with built-in typewriter effect
@@ -67,8 +67,8 @@ Sound
67
67
 
68
68
  Physics
69
69
  - Polygon (SAT) based collision algorithm for accurate detection and response
70
- - Fast broad-phase collision detection using spatial partitioning (QuadTree)
71
- - Raycast and AABB region queries with precise entry geometry
70
+ - Fast broad-phase collision detection using spatial partitioning (QuadTree in 2D, Octree in 3D, swapped automatically)
71
+ - Raycast, AABB and sphere region queries with precise entry geometry, including 3D raycasts (`raycast3d`)
72
72
  - Collision lifecycle hooks on every `Renderable`
73
73
  - Collision filtering for optimized automatic collision detection
74
74
  - Multiple shapes per body for complex hitboxes
@@ -82,17 +82,19 @@ Input
82
82
 
83
83
  Camera
84
84
  - Multi-camera support (split-screen, minimaps, multiple viewports)
85
- - Camera follow with configurable deadzone and damping
85
+ - Optional perspective camera (`Camera3d`) with frustum culling for 2.5D / 3D-projected scenes — drop-in subclass of the default 2D camera
86
+ - Camera follow with configurable deadzone and frame-rate-independent damping
86
87
  - Built-in shake, fade, flash, and mask-based transition effects
87
88
  - Per-camera post-processing pipeline with stackable shader effects and color grading (ColorMatrix)
88
89
 
89
90
  UI
90
- - Clickable, hoverable and draggable UI elements
91
- - Drag-and-drop support
92
- - Text buttons with built-in styling
91
+ - `UIBaseElement` / `UISpriteElement` containers for clickable, hoverable and holdable elements with full pointer-event wiring
92
+ - `Draggable` / `DropTarget` for drag-and-drop with configurable overlap or contains-check
93
+ - `UITextButton` text button with hover, press, and key-bind support — built on `BitmapText`
93
94
 
94
95
  Level Editor
95
96
  - [Tiled](https://www.mapeditor.org) map format [up to 1.12](https://doc.mapeditor.org/en/stable/reference/tmx-changelog/) built-in support for easy level design
97
+ - **GPU-accelerated tile rendering** for orthogonal maps under WebGL 2 — each layer draws as a single quad with no per-tile loop, ~5–8× faster than the legacy CPU renderer on dense maps. Honors animated tiles, flip bits, per-layer opacity/tint/blend, and oversized bottom-aligned tiles; falls back transparently to the CPU renderer on isometric/staggered/hexagonal layers or non-WebGL-2 contexts
96
98
  - Uncompressed and [compressed](https://github.com/melonjs/melonJS/tree/master/packages/tiled-inflate-plugin) Plain, Base64, CSV and JSON encoded XML tilemap loading
97
99
  - Orthogonal, Isometric, Hexagonal (both normal and staggered) and Oblique maps
98
100
  - Multiple layers with per-layer alpha, tinting and blend modes (multiple background/foreground, collision and Image layers)
@@ -120,7 +122,7 @@ Core
120
122
  - Tween effects with multiple easing functions (Quadratic, Cubic, Elastic, Bounce, etc.) and Bezier/Catmull-Rom interpolation
121
123
  - Transition effects
122
124
  - Pooling support for object recycling
123
- - Basic Particle System
125
+ - Particle system with `ParticleEmitter` (emission rate, lifetime, velocity, gravity, blend modes)
124
126
  - EventEmitter based event system
125
127
  - Persistent data storage (save/load via localStorage)
126
128
  - Plugin system for extending engine capabilities
@@ -170,6 +172,7 @@ Examples
170
172
  * [Compressed Textures](https://melonjs.github.io/melonJS/examples/#/compressed-textures) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/compressedTextures))
171
173
  * [3D Mesh](https://melonjs.github.io/melonJS/examples/#/mesh-3d) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/mesh3d))
172
174
  * [3D Mesh Material](https://melonjs.github.io/melonJS/examples/#/mesh-3d-material) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/mesh3dMaterial))
175
+ * [AfterBurner Clone](https://melonjs.github.io/melonJS/examples/#/after-burner) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/afterBurner)) — `Camera3d` + 3D Mesh arcade shooter
173
176
  * [Trail](https://melonjs.github.io/melonJS/examples/#/trail) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/trail))
174
177
  * [Shader Effects](https://melonjs.github.io/melonJS/examples/#/shader-effects) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/shaderEffects))
175
178
  * [Spine](https://melonjs.github.io/melonJS/examples/#/spine) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/spine))
@@ -137,8 +137,8 @@ export default class Application {
137
137
  * Accepted values : "x", "y", "z", "depth"
138
138
  * @see {@link World.sortOn}
139
139
  */
140
- get sortOn(): string;
141
- set sortOn(value: string);
140
+ get sortOn(): "x" | "y" | "z" | "depth";
141
+ set sortOn(value: "x" | "y" | "z" | "depth");
142
142
  /**
143
143
  * Fired when a level is fully loaded and all renderable instantiated. <br>
144
144
  * Additionally the level id will also be passed to the called function.
@@ -158,6 +158,38 @@ export default class Application {
158
158
  * @returns the parent HTML element
159
159
  */
160
160
  getParentElement(): HTMLElement;
161
+ /**
162
+ * Returns `true` if the browser/device is currently in fullscreen mode.
163
+ * Thin convenience around {@link device.isFullscreen} so the
164
+ * fullscreen trio (`isFullscreen` / `requestFullscreen` /
165
+ * `exitFullscreen`) lives together on the app instance.
166
+ * @category Application
167
+ */
168
+ isFullscreen(): boolean;
169
+ /**
170
+ * Trigger a fullscreen request for this application. Defaults to this
171
+ * application's `parentElement` (the container the canvas was appended
172
+ * into — see {@link Application#getParentElement}), so the canvas and
173
+ * any sibling HUD / overlay markup inside that container go fullscreen
174
+ * together.
175
+ * @param element - optional element to fullscreen instead of `this.parentElement`
176
+ * @example
177
+ * // bind F to toggle fullscreen
178
+ * me.input.bindKey(me.input.KEY.F, "toggleFullscreen");
179
+ * me.event.on(me.event.KEYDOWN, (action) => {
180
+ * if (action === "toggleFullscreen") {
181
+ * if (!app.isFullscreen()) app.requestFullscreen();
182
+ * else app.exitFullscreen();
183
+ * }
184
+ * });
185
+ * @category Application
186
+ */
187
+ requestFullscreen(element?: Element): void;
188
+ /**
189
+ * Exit fullscreen mode for this application.
190
+ * @category Application
191
+ */
192
+ exitFullscreen(): void;
161
193
  /**
162
194
  * The HTML canvas element associated with this application's renderer.
163
195
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * additional import for TypeScript
3
3
  * @import Renderer from "./../video/renderer.js";
4
4
  */
5
+ import type Camera2d from "../camera/camera2d";
5
6
  import { RendererType } from "../const";
6
7
  import { PhysicsAdapter } from "../physics/adapter";
7
8
  import Renderer from "../video/renderer";
@@ -23,7 +24,22 @@ type PhysicsType = "builtin" | "none" | PhysicsAdapter | {
23
24
  type PowerPreference = "default" | "low-power";
24
25
  export type ApplicationSettings = {
25
26
  /**
26
- * renderer to use (CANVAS, WEBGL, AUTO), or a custom renderer class
27
+ * Renderer to use. Three built-in modes (constants from `me.video`):
28
+ *
29
+ * - {@link CANVAS} — HTML5 Canvas backend. No shader / mesh /
30
+ * Camera3d support.
31
+ * - {@link WEBGL} — **requires WebGL**. Throws at `new Application(...)`
32
+ * time if WebGL is unavailable (driver-blocklisted GPU, perf-caveat
33
+ * failure, etc.). Use this when your scene needs Camera3d, Mesh,
34
+ * ShaderEffect, Light2d or GPU tilemap — you'd rather fail fast
35
+ * than render a stuck blank canvas.
36
+ * - {@link AUTO} — try WebGL, silently fall back to Canvas if
37
+ * unavailable. Application construction always succeeds. The
38
+ * WebGL-only subsystems (Camera3d, Mesh, ShaderEffect, Light2d,
39
+ * GPU tilemap) silently stop working under the Canvas fallback —
40
+ * if your scene depends on any of those, use `WEBGL` instead.
41
+ *
42
+ * Or pass a custom `Renderer` subclass instance for full control.
27
43
  * @default AUTO
28
44
  */
29
45
  renderer: RendererType | Renderer;
@@ -153,6 +169,26 @@ export type ApplicationSettings = {
153
169
  * a custom batcher class (WebGL only)
154
170
  */
155
171
  batcher?: (new (renderer: any) => Batcher) | undefined;
172
+ /**
173
+ * Default camera class instantiated for any {@link Stage} that does not
174
+ * explicitly provide its own cameras. Set to {@link Camera3d} to opt
175
+ * every stage in the app into perspective rendering by default. Stages
176
+ * can still override per-instance via `super({ cameras: [...] })` or
177
+ * per-class via `super({ cameraClass: Camera2d })`. Built-in stages
178
+ * (e.g. the loader screen) explicitly use {@link Camera2d} regardless
179
+ * of this setting.
180
+ *
181
+ * **WebGL requirement.** Camera classes whose
182
+ * `static defaultSortOn === "depth"` (Camera3d and any subclass) need
183
+ * the WebGL renderer — perspective projection, depth attachment and
184
+ * mesh draw all live in the WebGL backend. Pairing such a
185
+ * `cameraClass` with `renderer: video.AUTO` on a system where AUTO
186
+ * falls back to Canvas emits a `console.warn` at construction time
187
+ * and produces a non-functional render. Use `renderer: video.WEBGL`
188
+ * to get a hard throw instead.
189
+ * @default Camera2d
190
+ */
191
+ cameraClass?: new (minX: number, minY: number, maxX: number, maxY: number) => Camera2d;
156
192
  } & ({
157
193
  /**
158
194
  * the DOM parent element (or its string ID) to hold the canvas in the HTML file
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/application/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3E;;;;;;;;GAQG;AACH,KAAK,WAAW,GACb,SAAS,GACT,MAAM,GACN,cAAc,GACd;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAE/B,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IACjC;;;OAGG;IACH,QAAQ,EAAE,YAAY,GAAG,QAAQ,CAAC;IAElC;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,4BAA4B,EAAE,OAAO,CAAC;IAEtC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAE1D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACvD,GAAG,CACD;IACA;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,MAAM,CAAC,EAAE,KAAK,CAAC;CACd,GACD;IACA,MAAM,CAAC,EAAE,KAAK,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,iBAAiB,CAAC;CACzB,CACH,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/application/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3E;;;;;;;;GAQG;AACH,KAAK,WAAW,GACb,SAAS,GACT,MAAM,GACN,cAAc,GACd;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAE/B,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IACjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,YAAY,GAAG,QAAQ,CAAC;IAElC;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,4BAA4B,EAAE,OAAO,CAAC;IAEtC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAE1D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvD;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;CACd,GAAG,CACD;IACA;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,MAAM,CAAC,EAAE,KAAK,CAAC;CACd,GACD;IACA,MAAM,CAAC,EAAE,KAAK,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,iBAAiB,CAAC;CACzB,CACH,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -38,6 +38,15 @@ interface AxisEnum {
38
38
  * this.cameras.set("minimap", minimap);
39
39
  */
40
40
  export default class Camera2d extends Renderable {
41
+ /**
42
+ * Preferred `Container.sortOn` mode for this camera type. Read by
43
+ * `Application` (and `Stage`) at bootstrap to initialize the world
44
+ * container's sort. Camera2d uses `"z"` (painter's-algorithm 2D
45
+ * layering, higher pos.z draws on top); `Camera3d` overrides to
46
+ * `"depth"` (camera-distance sort required by perspective).
47
+ * Subclasses can override to declare their own preferred mode.
48
+ */
49
+ static defaultSortOn: "x" | "y" | "z" | "depth";
41
50
  /**
42
51
  * Axis definition
43
52
  * NONE no axis
@@ -56,19 +65,37 @@ export default class Camera2d extends Renderable {
56
65
  */
57
66
  smoothFollow: boolean;
58
67
  /**
59
- * Camera damping for smooth transition [0 .. 1].
60
- * 1 being the maximum value and will snap the camera to the target position
68
+ * Camera damping for smooth follow `[0 .. 1]`. `1` snaps the camera
69
+ * to the target every frame (no smoothing); lower values produce a
70
+ * trailing follow — `0.1` is a soft springy follow, `0.5` is snappy.
71
+ *
72
+ * **Frame-rate independent (since 19.7 / #1478).** The value is the
73
+ * fraction of the gap covered per frame at the engine's target
74
+ * framerate ({@link timer.maxfps}, default 60). The underlying
75
+ * implementation switched from `pos.lerp` to `pos.damp` with
76
+ * `lambda = -ln(1 - damping) * timer.maxfps`, so the legacy
77
+ * per-frame fraction is recovered exactly at the target rate AND
78
+ * the wall-clock convergence stays constant when the actual frame
79
+ * rate drifts (slow machine, throttled tab, high-refresh display).
80
+ * Existing `damping` tuning carries over with no changes.
61
81
  * @default 1.0
62
82
  */
63
83
  damping: number;
64
84
  /**
65
- * the closest point relative to the camera
66
- * @default -1000
85
+ * the closest point relative to the camera. Widened from `-1000` in
86
+ * 19.7 to accommodate sprites at large `depth` values now that
87
+ * `aVertex.z` participates in clip-space (PR A): the default
88
+ * `Container.autoDepth = true` assigns `pos.z = childCount` so any
89
+ * container with >1000 children would otherwise clip-cull, and the
90
+ * common Y-sort pattern `sprite.depth = sprite.pos.y` exceeds 1000
91
+ * on tall maps. Override per-camera if you need tighter z clipping.
92
+ * @default -1e6
67
93
  */
68
94
  near: number;
69
95
  /**
70
- * the furthest point relative to the camera.
71
- * @default 1000
96
+ * the furthest point relative to the camera. Widened from `1000` in
97
+ * 19.7 — see {@link Camera2d#near}.
98
+ * @default 1e6
72
99
  */
73
100
  far: number;
74
101
  /**
@@ -253,7 +280,7 @@ export default class Camera2d extends Renderable {
253
280
  */
254
281
  moveTo(x: number, y: number): void;
255
282
  /** @ignore */
256
- updateTarget(_dt?: number): void;
283
+ updateTarget(dt?: number): void;
257
284
  /** @ignore */
258
285
  update(dt?: number): boolean;
259
286
  /**
@@ -347,6 +374,16 @@ export default class Camera2d extends Renderable {
347
374
  * @returns a vector with the converted local coordinates
348
375
  */
349
376
  worldToLocal(x: number, y: number, v?: Vector2d): Vector2d;
377
+ /**
378
+ * Build and install the world + screen projections used when this
379
+ * camera is non-default (split-screen, picture-in-picture, etc.).
380
+ * Default behavior is a shifted ortho that places the camera's
381
+ * world view at the camera's screen-rect within the full renderer
382
+ * viewport. Subclasses (e.g. Camera3d) override this to install a
383
+ * perspective `worldProjection` instead.
384
+ * @ignore
385
+ */
386
+ _setupNonDefaultProjection(renderer: Renderer): void;
350
387
  /**
351
388
  * render the camera effects
352
389
  * @ignore
@@ -357,6 +394,21 @@ export default class Camera2d extends Renderable {
357
394
  * @ignore
358
395
  */
359
396
  draw(renderer: Renderer, container: Container): void;
397
+ /**
398
+ * Apply the world-to-camera-view transform to the container before
399
+ * its draw walk. Camera2d translates by `-camera.pos` (plus shake
400
+ * offset); Camera3d overrides this to additionally rotate by
401
+ * `-camera.pitch` / `-camera.yaw` in the correct order.
402
+ * @ignore
403
+ */
404
+ _applyContainerViewTransform(container: Container, translateX: number, translateY: number): void;
405
+ /**
406
+ * Revert the transform applied by {@link Camera2d#_applyContainerViewTransform}.
407
+ * Must undo each mutation in reverse order. Subclasses overriding
408
+ * `_applyContainerViewTransform` should override this too.
409
+ * @ignore
410
+ */
411
+ _revertContainerViewTransform(container: Container, translateX: number, translateY: number): void;
360
412
  /**
361
413
  * @ignore
362
414
  */
@@ -1 +1 @@
1
- {"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../../src/camera/camera2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../../src/camera/camera2d.ts"],"names":[],"mappings":"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"}