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.
- package/README.md +17 -14
- package/build/application/application.d.ts +34 -2
- package/build/application/application.d.ts.map +1 -1
- package/build/application/settings.d.ts +37 -1
- package/build/application/settings.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +59 -7
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts +335 -0
- package/build/camera/camera3d.d.ts.map +1 -0
- package/build/camera/frustum.d.ts +162 -0
- package/build/camera/frustum.d.ts.map +1 -0
- package/build/const.d.ts +30 -3
- package/build/const.d.ts.map +1 -1
- package/build/geometries/sphere.d.ts +105 -0
- package/build/geometries/sphere.d.ts.map +1 -0
- package/build/index.d.ts +6 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +27497 -24696
- package/build/index.js.map +4 -4
- package/build/input/keyboard.d.ts.map +1 -1
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/lang/deprecated.d.ts +18 -0
- package/build/lang/deprecated.d.ts.map +1 -1
- package/build/level/tiled/TMXLayer.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts +8 -0
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/loader/parsers/mtl.d.ts.map +1 -1
- package/build/loader/parsers/obj.d.ts.map +1 -1
- package/build/math/color.d.ts +43 -5
- package/build/math/color.d.ts.map +1 -1
- package/build/math/math.d.ts +44 -0
- package/build/math/math.d.ts.map +1 -1
- package/build/math/matrix3d.d.ts +1 -1
- package/build/math/observableVector2d.d.ts +14 -2
- package/build/math/observableVector2d.d.ts.map +1 -1
- package/build/math/observableVector3d.d.ts +14 -2
- package/build/math/observableVector3d.d.ts.map +1 -1
- package/build/math/vector2d.d.ts +16 -2
- package/build/math/vector2d.d.ts.map +1 -1
- package/build/math/vector3d.d.ts +16 -2
- package/build/math/vector3d.d.ts.map +1 -1
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/physics/adapter.d.ts +77 -0
- package/build/physics/adapter.d.ts.map +1 -1
- package/build/physics/broadphase/aabb3d.d.ts +115 -0
- package/build/physics/broadphase/aabb3d.d.ts.map +1 -0
- package/build/physics/broadphase/broadphase.d.ts +74 -0
- package/build/physics/broadphase/broadphase.d.ts.map +1 -0
- package/build/physics/broadphase/factory.d.ts +30 -0
- package/build/physics/broadphase/factory.d.ts.map +1 -0
- package/build/physics/broadphase/octree.d.ts +325 -0
- package/build/physics/broadphase/octree.d.ts.map +1 -0
- package/build/physics/broadphase/quadtree.d.ts +184 -0
- package/build/physics/broadphase/quadtree.d.ts.map +1 -0
- package/build/physics/builtin/body.d.ts +7 -3
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/builtin-adapter.d.ts +6 -1
- package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
- package/build/physics/builtin/raycast.d.ts.map +1 -1
- package/build/physics/world.d.ts +15 -4
- package/build/physics/world.d.ts.map +1 -1
- package/build/renderable/container.d.ts +51 -5
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts +85 -10
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +9 -4
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/renderable/ui/uitextbutton.d.ts +2 -1
- package/build/renderable/ui/uitextbutton.d.ts.map +1 -1
- package/build/state/stage.d.ts +8 -0
- package/build/state/stage.d.ts.map +1 -1
- package/build/state/state.d.ts.map +1 -1
- package/build/system/device.d.ts +196 -310
- package/build/system/device.d.ts.map +1 -1
- package/build/system/event.d.ts +49 -0
- package/build/system/event.d.ts.map +1 -1
- package/build/system/fullscreen.d.ts +16 -0
- package/build/system/fullscreen.d.ts.map +1 -0
- package/build/system/platform.d.ts +32 -4
- package/build/system/platform.d.ts.map +1 -1
- package/build/system/timer.d.ts.map +1 -1
- package/build/utils/function.d.ts +7 -1
- package/build/utils/function.d.ts.map +1 -1
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -1
- package/build/video/buffer/vertex.d.ts +19 -4
- package/build/video/buffer/vertex.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +4 -4
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/canvas_factory.d.ts +25 -0
- package/build/video/canvas_factory.d.ts.map +1 -0
- package/build/video/renderer.d.ts +89 -15
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/renderstate.d.ts +12 -0
- package/build/video/renderstate.d.ts.map +1 -1
- package/build/video/rendertarget/rendertarget.d.ts +3 -1
- package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts +5 -0
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/texture/resource.d.ts +22 -14
- package/build/video/texture/resource.d.ts.map +1 -1
- package/build/video/video.d.ts +3 -1
- package/build/video/video.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/material_batcher.d.ts +9 -0
- package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts +45 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts +2 -2
- package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +2 -2
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/package.json +4 -3
- package/build/physics/builtin/quadtree.d.ts +0 -112
- 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
|

|
|
19
19
|
|
|
20
|
-
[melonJS](https://melonjs.org/) is an open-source
|
|
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
|
|
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,
|
|
54
|
-
- Built-in effects such as tinting, masking and
|
|
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,
|
|
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
|
|
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
|
-
-
|
|
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
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
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
|
-
-
|
|
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():
|
|
141
|
-
set sortOn(value:
|
|
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":"AAAA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AA8BxC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;
|
|
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
|
-
*
|
|
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;
|
|
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
|
|
60
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
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(
|
|
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":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAc,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAC;AAC1D,OAAO,UAAU,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../../src/camera/camera2d.ts"],"names":[],"mappings":"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"}
|