melonjs 20.10.1 → 20.12.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.
- package/README.md +4 -5
- package/build/application/application.d.ts.map +1 -1
- package/build/application/defaultApplicationSettings.d.ts +1 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -1
- package/build/application/settings.d.ts +54 -3
- package/build/application/settings.d.ts.map +1 -1
- package/build/audio/audio.d.ts +14 -4
- package/build/audio/audio.d.ts.map +1 -1
- package/build/audio/backend/sound.d.ts.map +1 -1
- package/build/audio/playback.d.ts.map +1 -1
- package/build/audio/spatial.d.ts +13 -2
- package/build/audio/spatial.d.ts.map +1 -1
- package/build/audio/types.d.ts +44 -4
- package/build/audio/types.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +48 -4
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts.map +1 -1
- package/build/camera/effects/pixelate_transition_effect.d.ts +67 -0
- package/build/camera/effects/pixelate_transition_effect.d.ts.map +1 -0
- package/build/camera/effects/shake_effect.d.ts +3 -1
- package/build/camera/effects/shake_effect.d.ts.map +1 -1
- package/build/geometries/ellipse.d.ts +8 -4
- package/build/geometries/ellipse.d.ts.map +1 -1
- package/build/geometries/line.d.ts +2 -2
- package/build/geometries/line.d.ts.map +1 -1
- package/build/geometries/polygon.d.ts +3 -3
- package/build/geometries/polygon.d.ts.map +1 -1
- package/build/geometries/rectangle.d.ts +2 -2
- package/build/geometries/rectangle.d.ts.map +1 -1
- package/build/geometries/roundrect.d.ts +2 -2
- package/build/geometries/roundrect.d.ts.map +1 -1
- package/build/index.d.ts +5 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +9944 -6234
- package/build/index.js.map +4 -4
- package/build/input/gamepad.d.ts.map +1 -1
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/lang/console.d.ts +16 -1
- package/build/lang/console.d.ts.map +1 -1
- package/build/level/tiled/TMXLayer.d.ts +1 -1
- package/build/level/tiled/TMXLayer.d.ts.map +1 -1
- package/build/level/tiled/TMXObject.d.ts +196 -1
- package/build/level/tiled/TMXObject.d.ts.map +1 -1
- package/build/level/tiled/TMXObjectFactory.d.ts +18 -5
- package/build/level/tiled/TMXObjectFactory.d.ts.map +1 -1
- package/build/level/tiled/TMXTile.d.ts.map +1 -1
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
- package/build/level/tiled/TMXTileset.d.ts +17 -1
- package/build/level/tiled/TMXTileset.d.ts.map +1 -1
- package/build/level/tiled/TMXUtils.d.ts.map +1 -1
- package/build/level/tiled/factories/shape.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -1
- package/build/lighting/light2d.d.ts +30 -0
- package/build/lighting/light2d.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/math/matrix2d.d.ts +3 -2
- package/build/math/matrix2d.d.ts.map +1 -1
- package/build/math/matrix3d.d.ts +4 -1
- package/build/math/matrix3d.d.ts.map +1 -1
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/particles/particle.d.ts.map +1 -1
- package/build/particles/settings.d.ts +25 -0
- package/build/particles/settings.d.ts.map +1 -1
- package/build/physics/bounds.d.ts +5 -5
- package/build/physics/bounds.d.ts.map +1 -1
- package/build/physics/builtin/body.d.ts +1 -0
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
- package/build/physics/builtin/detector.d.ts.map +1 -1
- package/build/physics/builtin/raycast.d.ts.map +1 -1
- package/build/physics/builtin/sat.d.ts +40 -1
- package/build/physics/builtin/sat.d.ts.map +1 -1
- package/build/renderable/animation.d.ts +16 -2
- package/build/renderable/animation.d.ts.map +1 -1
- package/build/renderable/colorlayer.d.ts.map +1 -1
- package/build/renderable/container.d.ts +22 -2
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/entity/entity.d.ts.map +1 -1
- package/build/renderable/frameAnimation.d.ts.map +1 -1
- package/build/renderable/imagelayer.d.ts.map +1 -1
- package/build/renderable/instanced_mesh.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +69 -1
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/renderable/sprite.d.ts +23 -7
- package/build/renderable/sprite.d.ts.map +1 -1
- package/build/renderable/sprite3d.d.ts +5 -3
- package/build/renderable/sprite3d.d.ts.map +1 -1
- package/build/renderable/text/text.d.ts.map +1 -1
- package/build/renderable/trail3d.d.ts.map +1 -1
- package/build/renderable/ui/uipanel.d.ts +3 -3
- package/build/renderable/ui/uipanel.d.ts.map +1 -1
- package/build/state/stage.d.ts +12 -4
- package/build/state/stage.d.ts.map +1 -1
- package/build/state/state.d.ts +31 -6
- package/build/state/state.d.ts.map +1 -1
- package/build/system/legacy_pool.d.ts.map +1 -1
- package/build/system/timer.d.ts +1 -0
- package/build/system/timer.d.ts.map +1 -1
- package/build/utils/fetchdata.d.ts.map +1 -1
- package/build/video/buffer/vertex.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +8 -7
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/effects/ambientlight.d.ts +2 -0
- package/build/video/effects/ambientlight.d.ts.map +1 -0
- package/build/video/effects/bloom.d.ts +8 -9
- package/build/video/effects/bloom.d.ts.map +1 -1
- package/build/video/effects/blur.d.ts +3 -2
- package/build/video/effects/blur.d.ts.map +1 -1
- package/build/video/effects/chromaticAberration.d.ts +3 -2
- package/build/video/effects/chromaticAberration.d.ts.map +1 -1
- package/build/video/effects/dissolve.d.ts +5 -2
- package/build/video/effects/dissolve.d.ts.map +1 -1
- package/build/video/effects/dropShadow.d.ts +15 -3
- package/build/video/effects/dropShadow.d.ts.map +1 -1
- package/build/video/effects/flash.d.ts +6 -2
- package/build/video/effects/flash.d.ts.map +1 -1
- package/build/video/effects/frame.d.ts +48 -0
- package/build/video/effects/frame.d.ts.map +1 -0
- package/build/video/effects/glow.d.ts +8 -4
- package/build/video/effects/glow.d.ts.map +1 -1
- package/build/video/effects/glsl_realization.d.ts.map +1 -1
- package/build/video/effects/hologram.d.ts +5 -2
- package/build/video/effects/hologram.d.ts.map +1 -1
- package/build/video/effects/local_space.d.ts +19 -0
- package/build/video/effects/local_space.d.ts.map +1 -0
- package/build/video/effects/mesh_splice.d.ts.map +1 -1
- package/build/video/effects/outline.d.ts +8 -4
- package/build/video/effects/outline.d.ts.map +1 -1
- package/build/video/effects/pixelate.d.ts +3 -2
- package/build/video/effects/pixelate.d.ts.map +1 -1
- package/build/video/effects/radialGradient.d.ts +13 -16
- package/build/video/effects/radialGradient.d.ts.map +1 -1
- package/build/video/effects/rgba.d.ts +2 -0
- package/build/video/effects/rgba.d.ts.map +1 -0
- package/build/video/effects/scanline.d.ts.map +1 -1
- package/build/video/effects/shadereffect.d.ts +13 -0
- package/build/video/effects/shadereffect.d.ts.map +1 -1
- package/build/video/effects/shine.d.ts +10 -2
- package/build/video/effects/shine.d.ts.map +1 -1
- package/build/video/effects/squish.d.ts.map +1 -1
- package/build/video/effects/sway.d.ts +69 -0
- package/build/video/effects/sway.d.ts.map +1 -0
- package/build/video/effects/tintPulse.d.ts +5 -2
- package/build/video/effects/tintPulse.d.ts.map +1 -1
- package/build/video/effects/vignette.d.ts.map +1 -1
- package/build/video/effects/wave.d.ts +21 -2
- package/build/video/effects/wave.d.ts.map +1 -1
- package/build/video/effects/wgsl/parse.d.ts.map +1 -1
- package/build/video/effects/wgsl/scaffold.d.ts.map +1 -1
- package/build/video/effects/wgsl_realization.d.ts.map +1 -1
- package/build/video/gpu/frame.d.ts +2 -0
- package/build/video/gpu/frame.d.ts.map +1 -0
- package/build/video/renderer.d.ts +37 -12
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/rendertarget/canvasrendertarget.d.ts +14 -4
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
- package/build/video/rendertarget/rendertarget.d.ts +12 -16
- package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
- package/build/video/rendertarget/webgpurendertarget.d.ts +1 -0
- package/build/video/rendertarget/webgpurendertarget.d.ts.map +1 -1
- package/build/video/texture/atlas.d.ts +47 -28
- package/build/video/texture/atlas.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/utils/pixel_snap.d.ts +44 -0
- package/build/video/utils/pixel_snap.d.ts.map +1 -0
- 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.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts +2 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/glshader.d.ts.map +1 -1
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgl/shaders/frameclamp.d.ts +2 -0
- package/build/video/webgl/shaders/frameclamp.d.ts.map +1 -0
- package/build/video/webgl/shaders/multitexture-lit.d.ts.map +1 -1
- package/build/video/webgl/shaders/multitexture.d.ts.map +1 -1
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +0 -21
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/build/video/webgpu/batchers/lit_quad_batcher.d.ts +2 -1
- package/build/video/webgpu/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/mesh_batcher.d.ts +0 -1
- package/build/video/webgpu/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/quad_batcher.d.ts +2 -2
- package/build/video/webgpu/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgpu/buffer/uniformring.d.ts.map +1 -1
- package/build/video/webgpu/effect_binding.d.ts.map +1 -1
- package/build/video/webgpu/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgpu/webgpu_renderer.d.ts +3 -4
- package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
- package/package.json +21 -19
- package/skills/AGENTS.md +2 -1
- package/skills/melonjs/SKILL.md +1 -0
- package/skills/melonjs-audio/SKILL.md +47 -5
- package/skills/melonjs-camera-and-drawing/SKILL.md +63 -1
- package/skills/melonjs-display-and-scaling/SKILL.md +117 -7
- package/skills/melonjs-effects-and-shaders/SKILL.md +136 -19
- package/skills/melonjs-input/SKILL.md +24 -2
- package/skills/melonjs-lighting/SKILL.md +43 -8
- package/skills/melonjs-loading-assets/SKILL.md +4 -3
- package/skills/melonjs-math/SKILL.md +21 -1
- package/skills/melonjs-particles-and-trails/SKILL.md +36 -2
- package/skills/melonjs-performance/SKILL.md +4 -0
- package/skills/melonjs-plugins/SKILL.md +20 -1
- package/skills/melonjs-renderables/SKILL.md +46 -6
- package/skills/melonjs-renderer-backends/SKILL.md +2 -2
- package/skills/melonjs-scenes-and-state/SKILL.md +17 -2
- package/skills/melonjs-sprites-and-animation/SKILL.md +19 -3
- package/skills/melonjs-tilemaps/SKILL.md +126 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
melonJS 2
|
|
2
2
|
=========
|
|
3
|
-

|
|
4
4
|
|
|
5
5
|
[](https://github.com/melonjs/melonJS/actions/workflows/main.yml)
|
|
6
6
|
[](https://www.npmjs.com/package/melonjs)
|
|
@@ -14,9 +14,7 @@ melonJS 2
|
|
|
14
14
|
|
|
15
15
|
A modern & fully featured HTML5 game engine
|
|
16
16
|
-------------------------------------------------------------------------------
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
[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 WebGPU, WebGL 2 or Canvas2D with automatic fallback. The whole engine is ~250 KB minzipped of vanilla JS/TS, with no dependencies and no toolchain lock-in. Built with modern class syntax and bundled with [esbuild](https://esbuild.github.io).
|
|
17
|
+
[melonJS](https://melonjs.org/) is an open-source 2D & 3D 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 WebGPU, WebGL 2 or Canvas2D with automatic fallback. The whole engine is ~250 KB minzipped of vanilla JS/TS, with no dependencies and no toolchain lock-in. Built with modern class syntax and bundled with [esbuild](https://esbuild.github.io).
|
|
20
18
|
|
|
21
19
|
[melonJS](https://melonjs.org/) is licensed under the [MIT License](LICENSE.md) and actively maintained by the team at AltByte in Singapore.
|
|
22
20
|
|
|
@@ -180,7 +178,7 @@ Examples
|
|
|
180
178
|
-------------------------------------------------------------------------------
|
|
181
179
|
|
|
182
180
|
* [Platformer](https://melonjs.github.io/melonJS/examples/#/platformer) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/platformer))
|
|
183
|
-
* [Isometric
|
|
181
|
+
* [Isometric Dungeon](https://melonjs.github.io/melonJS/examples/#/isometric-dungeon) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/isometricDungeon))
|
|
184
182
|
* [SVG Shapes](https://melonjs.github.io/melonJS/examples/#/svg-shapes) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/svgShapes))
|
|
185
183
|
* [Graphics](https://melonjs.github.io/melonJS/examples/#/graphics) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/graphics))
|
|
186
184
|
* [Hello World](https://melonjs.github.io/melonJS/examples/#/hello-world) ([source](https://github.com/melonjs/melonJS/tree/master/packages/examples/src/examples/helloWorld))
|
|
@@ -250,6 +248,7 @@ Here is the list of official plugins maintained by the melonJS team:
|
|
|
250
248
|
- [debug-plugin](https://github.com/melonjs/melonJS/tree/master/packages/debug-plugin) - a debug panel for inspecting game objects
|
|
251
249
|
- [tiled-inflate-plugin](https://github.com/melonjs/melonJS/tree/master/packages/tiled-inflate-plugin) - enable loading and parsing of zlib, gzip and zstd compressed [Tiled](https://www.mapeditor.org/) maps
|
|
252
250
|
- [spine-plugin](https://github.com/melonjs/melonJS/tree/master/packages/spine-plugin) - [Spine](http://esotericsoftware.com) runtime integration to render Spine skeletal animations, with a dedicated batcher on each renderer (WebGPU, WebGL and Canvas)
|
|
251
|
+
- [gamepad-plugin](https://github.com/melonjs/melonJS/tree/master/packages/gamepad-plugin) - on-screen touch controls (sticks and buttons) reported as a gamepad, so the same bindings cover a real pad and a touch screen
|
|
253
252
|
- [capacitor-plugin](https://github.com/melonjs/melonJS/tree/master/packages/capacitor-plugin) - bridges [Capacitor](https://capacitorjs.com/)'s native lifecycle (pause/resume, hardware back-button, orientation lock, splash) for melonJS games wrapped as iOS / Android apps
|
|
254
253
|
|
|
255
254
|
If you wish to develop your own plugin, we also provide a [plugin template](https://github.com/melonjs/plugin-template) to help you get started.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AA8BxC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAQnD,OAAO,KAAK,EACX,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,eAAe,CAAC;AAiEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B;;OAEG;IACH,aAAa,EAAE,WAAW,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAG,QAAQ,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,QAAQ,EAAG,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAEhC;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,2BAA2B,CAAC;IAEtC;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAC;IAarB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAGjB,aAAa,EAAE,OAAO,CAAC;IAGvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultApplicationSettings.d.ts","sourceRoot":"","sources":["../../src/application/defaultApplicationSettings.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"defaultApplicationSettings.d.ts","sourceRoot":"","sources":["../../src/application/defaultApplicationSettings.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,CAAC"}
|
|
@@ -289,6 +289,20 @@ export type ApplicationSettings = {
|
|
|
289
289
|
* when `false`): unchanged behavior.
|
|
290
290
|
* - `"nearest"` — crisp/pixelated upscaling, regardless of `antiAlias`.
|
|
291
291
|
* - `"linear"` — smooth, regardless of `antiAlias`.
|
|
292
|
+
* - `"linear-mipmap"` — smooth, and a sprite, a tile or a text drawn
|
|
293
|
+
* smaller than its texture (a scaled-down sprite, or anything under a
|
|
294
|
+
* zoomed-out camera) takes its colour from the texture's mipmaps, its
|
|
295
|
+
* pre-shrunk copies, instead of shimmering as it moves. A sprite cut
|
|
296
|
+
* from an atlas or a tileset keeps its samples inside its own frame,
|
|
297
|
+
* so the neighbouring frames do not streak along its edges (a frame
|
|
298
|
+
* whose edges are not on a power of two can still mix a little of its
|
|
299
|
+
* neighbour into its outermost pixel at the smallest sizes, and a
|
|
300
|
+
* sprite drawn through a {@link ShaderEffect} is not kept to its
|
|
301
|
+
* frame); otherwise, drawn at its size or larger, a texture is the same
|
|
302
|
+
* as under `"linear"`. Not for the
|
|
303
|
+
* textures the engine renders into, nor a video, which keep to their
|
|
304
|
+
* full size. On WebGPU each texture it applies to takes about a third
|
|
305
|
+
* more memory.
|
|
292
306
|
*
|
|
293
307
|
* This is the **default** for every texture; a {@link Mesh} can still override
|
|
294
308
|
* it per-mesh via its own `textureFilter` setting (which wins).
|
|
@@ -307,8 +321,13 @@ export type ApplicationSettings = {
|
|
|
307
321
|
* antiAlias: true, // MSAA on
|
|
308
322
|
* textureFilter: "nearest", // textures stay crisp
|
|
309
323
|
* });
|
|
324
|
+
*
|
|
325
|
+
* // smooth, and smooth again when zoomed out
|
|
326
|
+
* new Application(1280, 720, {
|
|
327
|
+
* textureFilter: "linear-mipmap",
|
|
328
|
+
* });
|
|
310
329
|
*/
|
|
311
|
-
textureFilter: "auto" | "nearest" | "linear";
|
|
330
|
+
textureFilter: "auto" | "nearest" | "linear" | "linear-mipmap";
|
|
312
331
|
/**
|
|
313
332
|
* How many texture units the WebGL multi-texture batchers may use
|
|
314
333
|
* ([#1585](https://github.com/melonjs/melonJS/issues/1585)).
|
|
@@ -449,15 +468,47 @@ export type ApplicationSettings = {
|
|
|
449
468
|
*/
|
|
450
469
|
highPrecisionShader: boolean;
|
|
451
470
|
/**
|
|
452
|
-
* whether a renderable may sit on a fractional position WITHIN the frame. `false`, the default,
|
|
471
|
+
* whether a renderable may sit on a fractional position WITHIN the frame. `false`, the default, draws everything on whole pixels, which is what stops a slowly moving or transformed sprite shimmering along its edges.
|
|
472
|
+
*
|
|
473
|
+
* The snap happens once, where a draw lands, and the same way on every renderer: each edge of what is drawn (a sprite, a shape, a clip) is rounded to the nearest pixel after every translation and scale it is drawn under. So nested containers add their positions up exactly before anything is rounded, a flipped sprite covers the pixels it covers unflipped, a sprite and a `fillRect` at the same position cover the same pixels, a shape has no half-grey edge on the Canvas renderer, and a position that floating point error leaves a hair short of a whole pixel (a body resting on the floor at 223.99999999999997 after a collision push-out) lands on that pixel.
|
|
474
|
+
*
|
|
475
|
+
* The camera's view starts on a whole pixel too, in world units (zoomed 2x, it moves in 2 px steps), and the world is culled and the pointer read from that same position: things standing still stay still against each other while the view scrolls, and a click lands on what is drawn under it. The camera's `pos` keeps its fraction, so a damped follow still settles.
|
|
453
476
|
*
|
|
454
|
-
*
|
|
477
|
+
* A rotated or skewed draw cannot sit on the pixel grid and is drawn where it is, as is anything a perspective `Camera3d` draws.
|
|
455
478
|
*
|
|
456
479
|
* It says nothing about how the frame reaches the screen. A game that snaps positions here and is then presented at a fractional scale has undone the work at the last step; {@link ApplicationSettings.scaleRounding} is what addresses that half.
|
|
457
480
|
* @default false
|
|
458
481
|
* @see ApplicationSettings.scaleRounding
|
|
459
482
|
*/
|
|
460
483
|
subPixel: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* Run the game's updates in a steady pattern on a display that refreshes
|
|
486
|
+
* at `maxfps`, or a whole multiple or fraction of it: one update every
|
|
487
|
+
* frame at 60 Hz, one every other frame at 120 Hz, for the default
|
|
488
|
+
* `maxfps` of 60.
|
|
489
|
+
*
|
|
490
|
+
* The game updates in fixed steps, as many as the time since the last
|
|
491
|
+
* frame holds. That time jitters around the display's refresh by up to a
|
|
492
|
+
* millisecond, so on a 60 Hz display a frame can get no update and the
|
|
493
|
+
* next one two: anything that scrolls or moves steadily stutters. With
|
|
494
|
+
* this on, the time is counted in whole display frames, the rest carried
|
|
495
|
+
* to the next frame, so the steps fall evenly and the game keeps its
|
|
496
|
+
* speed. A display within 2% of `maxfps`, or of 2, 3 or 4 times it, or a
|
|
497
|
+
* half, a third or a quarter of it, is counted at exactly that rate (a
|
|
498
|
+
* 59.94 Hz screen runs the game 0.1% slower than the wall clock). The
|
|
499
|
+
* display's rate is learned as the game runs, and learned again when it
|
|
500
|
+
* changes, such as when the window moves to another screen.
|
|
501
|
+
*
|
|
502
|
+
* It sets `timer.syncToDisplay` when the application is initialized.
|
|
503
|
+
* The timer is shared, so with more than one application the last one
|
|
504
|
+
* initialized decides, and a game can turn it on or off later through
|
|
505
|
+
* `timer.syncToDisplay`.
|
|
506
|
+
* @default false
|
|
507
|
+
* @example
|
|
508
|
+
* // steady updates on a 60 or 120 Hz display
|
|
509
|
+
* const app = new Application(1280, 720, { syncToDisplay: true });
|
|
510
|
+
*/
|
|
511
|
+
syncToDisplay: boolean;
|
|
461
512
|
/**
|
|
462
513
|
* whether to enable verbose mode (additional console output for debugging)
|
|
463
514
|
* @default false
|
|
@@ -1 +1 @@
|
|
|
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,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GACX,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,SAAS,GACT,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,YAAY,CAAC;AAEhB;;;;;;;;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,GAAG,kBAAkB,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,EAAE,YAAY,GAAG,QAAQ,CAAC;IAElC;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;;;;;;OAQG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,EAAE,YAAY,GAAG,SAAS,CAAC;IAExC;;;;;;;OAOG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,GAAG,EAAE,OAAO,CAAC;IAEb;;;;;;;;;;;;;;OAcG;IACH;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAE1D;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/application/settings.ts"],"names":[],"mappings":"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"}
|
package/build/audio/audio.d.ts
CHANGED
|
@@ -17,11 +17,12 @@
|
|
|
17
17
|
* This file owns the remaining lifecycle / track / mix / unload
|
|
18
18
|
* helpers, plus the barrel re-exports that compose the namespace.
|
|
19
19
|
*/
|
|
20
|
+
import type { TrackOptions } from "./types.ts";
|
|
20
21
|
export { duration, fade, load, orientation, panner, pause, play, playing, position, rate, resume, seek, state, stereo, stop, } from "./playback.ts";
|
|
21
22
|
export { noise, tone } from "./procedural.ts";
|
|
22
23
|
export { getSpatialDefaults, listener, listenerOrientation, setListener, setSpatialDefaults, unfollow, } from "./spatial.ts";
|
|
23
24
|
export { getAudioContext, getMasterGain, setStopOnAudioError, stopOnAudioError, } from "./state.ts";
|
|
24
|
-
export type { LoadSettings, NoiseFilter, NoiseOptions, PannerAttributes, SoundAsset, ToneOptions, } from "./types.ts";
|
|
25
|
+
export type { LoadSettings, NoiseFilter, NoiseOptions, PannerAttributes, SoundAsset, ToneOptions, TrackOptions, } from "./types.ts";
|
|
25
26
|
/**
|
|
26
27
|
* Initialize and configure the audio module.
|
|
27
28
|
*
|
|
@@ -85,18 +86,27 @@ export declare function disable(): void;
|
|
|
85
86
|
*
|
|
86
87
|
* Use {@link play} for sound effects: they are meant to overlap, and nothing
|
|
87
88
|
* here applies to them.
|
|
89
|
+
* The track can be one region of the clip, from its `sprite` map. An MP3
|
|
90
|
+
* encoder pads the end of its file and Safari plays the padding, so a looping
|
|
91
|
+
* MP3 drops out for a moment at each loop there: a region of the loop's exact
|
|
92
|
+
* length keeps it gapless.
|
|
88
93
|
* @param sound_name - Audio track name (case-sensitive).
|
|
89
|
-
* @param
|
|
90
|
-
* global volume
|
|
94
|
+
* @param volumeOrOptions - Playback volume, `0.0..1.0` (defaults to the
|
|
95
|
+
* current global volume), or a {@link TrackOptions} object with `volume`
|
|
96
|
+
* and the `sprite` region to loop on.
|
|
91
97
|
* @returns The sound instance ID.
|
|
92
98
|
* @throws {Error} when no clip of that name is loaded, raised before anything
|
|
93
99
|
* is stopped, so a mistyped name cannot silence the music already playing.
|
|
94
100
|
* @example
|
|
95
101
|
* me.audio.playTrack("menu_theme");
|
|
96
102
|
* me.audio.playTrack("battle_theme"); // the menu theme stops
|
|
103
|
+
* @example
|
|
104
|
+
* // loop on a region of exactly 12 s, declared when the clip is loaded:
|
|
105
|
+
* // { name: "ambience", type: "audio", src: "sfx/", sprite: { loop: [0, 12000] } }
|
|
106
|
+
* me.audio.playTrack("ambience", { sprite: "loop", volume: 0.6 });
|
|
97
107
|
* @category Audio
|
|
98
108
|
*/
|
|
99
|
-
export declare function playTrack(sound_name: string,
|
|
109
|
+
export declare function playTrack(sound_name: string, volumeOrOptions?: number | TrackOptions): number;
|
|
100
110
|
/**
|
|
101
111
|
* Stop the current audio track, and leave no current track behind.
|
|
102
112
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/audio/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/audio/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EACN,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,MAAM,EACN,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,GACJ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACN,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,QAAQ,GACR,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,GACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAE,MAAc,GAAG,OAAO,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,IAAI,CAE7B;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CACxB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GAAG,YAAY,GACrC,MAAM,CA8BR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAMhC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CACnB,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,EACX,UAAU,GAAE,OAAc,GACxB,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAsBlD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAOhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../../src/audio/backend/sound.ts"],"names":[],"mappings":"AAKA,OAAO,EAEN,KAAK,4BAA4B,EAIjC,KAAK,YAAY,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,cAAM,KAAK;gBA2KE,CAAC,EAAE,YAAY;IAW3B,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../../src/audio/backend/sound.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CACnB,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,EACrB,SAAS,CAAC,EAAE,MAAM,IAAI,EACtB,QAAQ,GAAE,YAAiB,GACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"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"}
|
package/build/audio/spatial.d.ts
CHANGED
|
@@ -36,8 +36,19 @@ export declare function listenerOrientation(fx: number, fy: number, fz: number,
|
|
|
36
36
|
* with a lagging camera wants. Pass `null` to stop, leaving the listener
|
|
37
37
|
* where it was.
|
|
38
38
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
39
|
+
* Where the ear goes depends on the target:
|
|
40
|
+
*
|
|
41
|
+
* - a `Camera2d` is heard from the CENTER of its view (`worldView`, so its
|
|
42
|
+
* `offset` and `zoom` count), not from its `pos`, which is the view's
|
|
43
|
+
* top-left corner.
|
|
44
|
+
* - a {@link Camera3d} is heard from its `pos`, which is its eye, and also
|
|
45
|
+
* contributes its ORIENTATION, so turning the camera swings the stereo
|
|
46
|
+
* image.
|
|
47
|
+
* - any other renderable is heard from `getAbsolutePosition()`, position
|
|
48
|
+
* only: its `pos`, which is where its `anchorPoint` sits. That is its
|
|
49
|
+
* center under the `(0.5, 0.5)` default of a `Renderable` or a `Sprite`,
|
|
50
|
+
* but its TOP-LEFT corner under the `(0, 0)` of an `Entity` or of any
|
|
51
|
+
* object loaded from Tiled.
|
|
41
52
|
*
|
|
42
53
|
* Following stops on its own if the target is destroyed, which a stage that
|
|
43
54
|
* owns its camera does on every state change.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatial.d.ts","sourceRoot":"","sources":["../../src/audio/spatial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"spatial.d.ts","sourceRoot":"","sources":["../../src/audio/spatial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAW1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsNnD,kBAAkB;AAClB,wBAAgB,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,kBAAkB;AAClB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;AAkCjE,kBAAkB;AAClB,wBAAgB,mBAAmB,IAAI;IACtC,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACN,CAAC;AACF,kBAAkB;AAClB,wBAAgB,mBAAmB,CAClC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACR,IAAI,CAAC;AAyCR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIzC"}
|
package/build/audio/types.d.ts
CHANGED
|
@@ -49,8 +49,20 @@ export interface SoundAsset {
|
|
|
49
49
|
/** Start muted. Defaults to `false`. */
|
|
50
50
|
mute?: boolean;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
52
|
+
* When the clip is downloaded. Defaults to `true`.
|
|
53
|
+
*
|
|
54
|
+
* - `true`: during the preload, so it plays the moment it is asked to.
|
|
55
|
+
* - `false`: when it is first played (`audio.play`, `audio.playTrack`, or
|
|
56
|
+
* `autoplay`). That play fetches it and streams it, as `stream: true`
|
|
57
|
+
* does, so the sound starts as soon as enough of the file has arrived
|
|
58
|
+
* rather than once all of it has. A clip never played is never
|
|
59
|
+
* downloaded: for music a player may not reach, such as a boss or an
|
|
60
|
+
* ending theme, that keeps the wait before the game starts short. As a
|
|
61
|
+
* streamed clip it plays through an `<audio>` element, so positional
|
|
62
|
+
* sound (`follow`, `at`, `stereo`) does not apply to it.
|
|
63
|
+
* - `"metadata"`: on a streamed clip, only enough to know its duration
|
|
64
|
+
* during the preload, the rest when it plays. A buffered clip is
|
|
65
|
+
* downloaded whole either way.
|
|
54
66
|
*/
|
|
55
67
|
preload?: boolean | "metadata";
|
|
56
68
|
/**
|
|
@@ -69,7 +81,10 @@ export interface SoundAsset {
|
|
|
69
81
|
loop?: boolean;
|
|
70
82
|
/**
|
|
71
83
|
* Stream the resource instead of fully decoding upfront — preferred
|
|
72
|
-
* for long music tracks.
|
|
84
|
+
* for long music tracks. It is still fetched during the preload; add
|
|
85
|
+
* `preload: false` to fetch it only when it is first played. Plays
|
|
86
|
+
* through an `<audio>` element, so positional sound (`follow`, `at`,
|
|
87
|
+
* `stereo`) does not apply to it. Defaults to `false`.
|
|
73
88
|
*/
|
|
74
89
|
stream?: boolean;
|
|
75
90
|
/**
|
|
@@ -290,7 +305,10 @@ export interface PlayOptions {
|
|
|
290
305
|
* whole clip.
|
|
291
306
|
*/
|
|
292
307
|
sprite?: string | undefined;
|
|
293
|
-
/**
|
|
308
|
+
/**
|
|
309
|
+
* Loop playback when the region ends. Defaults to the region's own loop
|
|
310
|
+
* flag (the third element of its `sprite` entry), else `false`.
|
|
311
|
+
*/
|
|
294
312
|
loop?: boolean | undefined;
|
|
295
313
|
/** Called when this instance finishes playing. */
|
|
296
314
|
onend?: (() => void) | undefined;
|
|
@@ -304,6 +322,13 @@ export interface PlayOptions {
|
|
|
304
322
|
* melonJS; the Y flip Web Audio wants is applied for you. Sounds placed
|
|
305
323
|
* this way are given the pixel-shaped panner defaults, which
|
|
306
324
|
* `audio.setSpatialDefaults()` can change and `audio.panner()` overrides.
|
|
325
|
+
*
|
|
326
|
+
* The sound sits at the renderable's `getAbsolutePosition()`, which is
|
|
327
|
+
* where its `anchorPoint` sits: its center under the `(0.5, 0.5)` default
|
|
328
|
+
* of a `Renderable` or a `Sprite`, but its TOP-LEFT corner under the
|
|
329
|
+
* `(0, 0)` of an `Entity` or of any object loaded from Tiled. For a large
|
|
330
|
+
* entity, such as a boss, that puts the sound half its size up and to the
|
|
331
|
+
* left of where it looks to be.
|
|
307
332
|
*/
|
|
308
333
|
follow?: Renderable | undefined;
|
|
309
334
|
/**
|
|
@@ -356,4 +381,19 @@ export interface SoundEvents {
|
|
|
356
381
|
/** Audio was unlocked by a user gesture. */
|
|
357
382
|
unlock?: (() => void) | undefined;
|
|
358
383
|
}
|
|
384
|
+
/**
|
|
385
|
+
* Options accepted by {@link audio.playTrack | `audio.playTrack`} in place of its `volume` argument.
|
|
386
|
+
* @category Audio
|
|
387
|
+
*/
|
|
388
|
+
export interface TrackOptions {
|
|
389
|
+
/** Playback volume, `0.0..1.0`. Defaults to the current global volume. */
|
|
390
|
+
volume?: number | undefined;
|
|
391
|
+
/**
|
|
392
|
+
* Name of a region declared in the clip's `sprite` map: the track loops on
|
|
393
|
+
* that region instead of the whole clip. A region of a loop's exact length
|
|
394
|
+
* keeps it gapless where a decoder pads the end of the clip (Safari, on
|
|
395
|
+
* MP3).
|
|
396
|
+
*/
|
|
397
|
+
sprite?: string | undefined;
|
|
398
|
+
}
|
|
359
399
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audio/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audio/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,27 @@ export default class Camera2d extends Renderable {
|
|
|
78
78
|
* @default 1.0
|
|
79
79
|
*/
|
|
80
80
|
damping: number;
|
|
81
|
+
/**
|
|
82
|
+
* The layers this camera draws, as bits: a renderable is drawn only if
|
|
83
|
+
* its {@link Renderable#visibilityLayer} shares a bit with this mask. All
|
|
84
|
+
* bits by default, so a camera draws everything. Leave a layer out to
|
|
85
|
+
* keep what is on it off this camera only, such as the particles off a
|
|
86
|
+
* minimap: `~layer` is every layer but that one.
|
|
87
|
+
* <br><br>
|
|
88
|
+
* It decides what this camera draws, and nothing else: what it leaves
|
|
89
|
+
* out still updates, collides and receives pointer events. A
|
|
90
|
+
* {@link Light2d} it leaves out, itself or a container it is in,
|
|
91
|
+
* neither glows, nor cuts its hole in the darkness, nor lights
|
|
92
|
+
* normal-mapped sprites in this camera. A mask of `0` draws nothing.
|
|
93
|
+
* @default -1 (all bits)
|
|
94
|
+
* @see Renderable#visibilityLayer
|
|
95
|
+
* @example
|
|
96
|
+
* // particles on their own layer, and a minimap that leaves it out
|
|
97
|
+
* const PARTICLES = 2;
|
|
98
|
+
* emitter.visibilityLayer = PARTICLES;
|
|
99
|
+
* minimap.cullMask = ~PARTICLES;
|
|
100
|
+
*/
|
|
101
|
+
cullMask: number;
|
|
81
102
|
/**
|
|
82
103
|
* the closest point relative to the camera. Widened from `-1000` in
|
|
83
104
|
* 19.7 to accommodate sprites at large `depth` values now that
|
|
@@ -128,7 +149,21 @@ export default class Camera2d extends Renderable {
|
|
|
128
149
|
* (2d cameras use an orthographic projection by default).
|
|
129
150
|
*/
|
|
130
151
|
projectionMatrix: Matrix3d;
|
|
131
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* Shifts the view without moving the camera, in world units: to look
|
|
154
|
+
* ahead of what the camera follows, or above it, or for a shake of
|
|
155
|
+
* your own. It is applied after following and the camera's bounds, so
|
|
156
|
+
* the view can show past them. Drawing, culling, the lights and the
|
|
157
|
+
* pointer (`localToWorld`, `worldToLocal`) all count it. The built-in
|
|
158
|
+
* {@link Camera2d#shake} adds its jitter to it and takes it back off
|
|
159
|
+
* when it ends, so a value set before or during a shake is kept.
|
|
160
|
+
* Cleared by {@link Camera2d#reset}.
|
|
161
|
+
* @default <0,0>
|
|
162
|
+
* @example
|
|
163
|
+
* // follow the hero, looking a little above his feet
|
|
164
|
+
* app.viewport.follow(hero, app.viewport.AXIS.BOTH, 0.1);
|
|
165
|
+
* app.viewport.offset.set(0, -70);
|
|
166
|
+
*/
|
|
132
167
|
offset: Vector2d;
|
|
133
168
|
/** target to follow */
|
|
134
169
|
target: Vector2d | Vector3d | null;
|
|
@@ -206,7 +241,7 @@ export default class Camera2d extends Renderable {
|
|
|
206
241
|
get isDefault(): boolean;
|
|
207
242
|
/**
|
|
208
243
|
* The world-space bounds currently visible through this camera,
|
|
209
|
-
* taking into account position and zoom level.
|
|
244
|
+
* taking into account position, {@link Camera2d#offset} and zoom level.
|
|
210
245
|
* @returns the visible world area
|
|
211
246
|
*/
|
|
212
247
|
get worldView(): Bounds;
|
|
@@ -229,9 +264,14 @@ export default class Camera2d extends Renderable {
|
|
|
229
264
|
* change the deadzone settings.
|
|
230
265
|
* the "deadzone" defines an area within the current camera in which
|
|
231
266
|
* the followed renderable can move without scrolling the camera.
|
|
267
|
+
* Its edges are on whole pixels: the size is rounded to the nearest one.
|
|
232
268
|
* @see {@link follow}
|
|
233
269
|
* @param w - deadzone width
|
|
234
270
|
* @param h - deadzone height
|
|
271
|
+
* @example
|
|
272
|
+
* // the hero moves 200 x 120 pixels around the middle before the camera follows
|
|
273
|
+
* app.viewport.follow(hero, app.viewport.AXIS.BOTH);
|
|
274
|
+
* app.viewport.setDeadzone(200, 120);
|
|
235
275
|
*/
|
|
236
276
|
setDeadzone(w: number, h: number): void;
|
|
237
277
|
/**
|
|
@@ -358,7 +398,10 @@ export default class Camera2d extends Renderable {
|
|
|
358
398
|
*/
|
|
359
399
|
isVisible(obj: Renderable, floating?: boolean): boolean;
|
|
360
400
|
/**
|
|
361
|
-
* convert the given "local" (screen) coordinates into world coordinates
|
|
401
|
+
* convert the given "local" (screen) coordinates into world coordinates.
|
|
402
|
+
* Screen coordinates are in canvas pixels: on a zoomed camera, or one
|
|
403
|
+
* drawn in a corner of the screen (see {@link screenX}), they are
|
|
404
|
+
* measured from where the camera is drawn, and scaled by its zoom.
|
|
362
405
|
* @param x - the x coordinate of the local point to be converted
|
|
363
406
|
* @param y - the y coordinate of the local point to be converted
|
|
364
407
|
* @param [v] - an optional vector object where to set the converted value
|
|
@@ -366,7 +409,8 @@ export default class Camera2d extends Renderable {
|
|
|
366
409
|
*/
|
|
367
410
|
localToWorld(x: number, y: number, v?: Vector2d): Vector2d;
|
|
368
411
|
/**
|
|
369
|
-
* convert the given world coordinates into "local" (screen) coordinates
|
|
412
|
+
* convert the given world coordinates into "local" (screen) coordinates,
|
|
413
|
+
* in canvas pixels: where this camera draws the given point
|
|
370
414
|
* @param x - the x world coordinate to be converted
|
|
371
415
|
* @param y - the y world coordinate to be converted
|
|
372
416
|
* @param [v] - an optional vector object where to set the converted value
|
|
@@ -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;AAE5D,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAcvD,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAK3D;;;;GAIG;AAEH,UAAU,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACjB;AAID;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC/C;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAO;IAEtD;;;;;;OAMG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAQhB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,eAAe,EAAE,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,gBAAgB,EAAE,QAAQ,CAAC;IAE3B;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IASpB;;;OAGG;IACH,gBAAgB,EAAE,QAAQ,CAAC;IAS3B
|
|
1
|
+
{"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../../src/camera/camera2d.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera3d.d.ts","sourceRoot":"","sources":["../../src/camera/camera3d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAE5D,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,OAAO,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqIhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,QAAQ;IAC7C;;;;;;;OAOG;IACH,OAAgB,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAW;IAEnE;;;;;;OAMG;IACH,OAAO,EAAE,OAAO,CAAC;IAsEjB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;;;;;;;;;OAgBG;IACH,IAAa,IAAI,IAAI,MAAM,CAE1B;IAED,IAAa,IAAI,CAAC,KAAK,EAAE,MAAM,EAM9B;IAED;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;OAQG;IACH,SAAS,EAAE,QAAQ,CAAC;IAEpB;;;;;;OAMG;gBAEF,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,cAAc;IAmCtB;;;OAGG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAIpB;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAIvB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAU9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAkGxC;;;;OAIG;IACH,IAAI,GAAG,IAAI,UAAU,GAAG,IAAI,CA4B3B;IAkGD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAgBhE;;;;;;;;;;;;;OAaG;IACM,KAAK,CAAC,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,IAAI;IASzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IA0ChE;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ;IAKjC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ;IAK9B;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ;IAoFnC;;;;;OAKG;IACM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"camera3d.d.ts","sourceRoot":"","sources":["../../src/camera/camera3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type Tween from "../../tweens/tween.ts";
|
|
2
|
+
import PixelateEffect from "../../video/effects/pixelate.js";
|
|
3
|
+
import type Renderer from "../../video/renderer.js";
|
|
4
|
+
import type Camera2d from "../camera2d.ts";
|
|
5
|
+
import CameraEffect from "./camera_effect.ts";
|
|
6
|
+
/**
|
|
7
|
+
* A camera effect that performs a pixelate scene transition: the frame breaks
|
|
8
|
+
* up into blocks that grow to `size` pixels (hide), or shrink from `size` back
|
|
9
|
+
* to the sharp frame (reveal).
|
|
10
|
+
*
|
|
11
|
+
* It works on what the camera draws, through a {@link PixelateEffect} it puts
|
|
12
|
+
* FIRST in the camera's post-effect chain for as long as it runs, so the
|
|
13
|
+
* effects after it (a vignette, scanlines) stay sharp over the blocks. That
|
|
14
|
+
* is a shader, so on the Canvas renderer the effect does nothing: it adds no
|
|
15
|
+
* shader to the camera and only keeps its timing, and
|
|
16
|
+
* {@link state.transition} skips a pixelate transition there altogether.
|
|
17
|
+
* @category Camera
|
|
18
|
+
* @example
|
|
19
|
+
* // break the screen up into 32 pixel blocks over 300ms
|
|
20
|
+
* camera.addCameraEffect(new PixelateTransitionEffect(camera, {
|
|
21
|
+
* renderer: app.renderer,
|
|
22
|
+
* size: 32,
|
|
23
|
+
* duration: 300,
|
|
24
|
+
* direction: "hide",
|
|
25
|
+
* }));
|
|
26
|
+
*/
|
|
27
|
+
export default class PixelateTransitionEffect extends CameraEffect {
|
|
28
|
+
/**
|
|
29
|
+
* the largest blocks, at the end of a hide and the start of a reveal, in
|
|
30
|
+
* screen pixels
|
|
31
|
+
*/
|
|
32
|
+
size: number;
|
|
33
|
+
/**
|
|
34
|
+
* the transition progress, 0 for the sharp frame and 1 for the largest
|
|
35
|
+
* blocks
|
|
36
|
+
*/
|
|
37
|
+
progress: {
|
|
38
|
+
value: number;
|
|
39
|
+
};
|
|
40
|
+
tween: Tween;
|
|
41
|
+
direction: "hide" | "reveal";
|
|
42
|
+
onComplete: (() => void) | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* the shader effect this transition drives on the camera, or `undefined`
|
|
45
|
+
* on a renderer without shaders (Canvas)
|
|
46
|
+
*/
|
|
47
|
+
effect: PixelateEffect | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* @param camera - the camera to apply the effect to
|
|
50
|
+
* @param options - effect options
|
|
51
|
+
* @param options.renderer - the renderer drawing the camera
|
|
52
|
+
* @param [options.size=32] - the largest blocks, in screen pixels
|
|
53
|
+
* @param [options.duration=500] - expressed in milliseconds
|
|
54
|
+
* @param [options.direction="hide"] - "hide" to break the frame up, "reveal" to bring it back
|
|
55
|
+
* @param [options.onComplete] - callback once the effect is over
|
|
56
|
+
*/
|
|
57
|
+
constructor(camera: Camera2d, options: {
|
|
58
|
+
renderer: Renderer;
|
|
59
|
+
size?: number | undefined;
|
|
60
|
+
duration?: number | undefined;
|
|
61
|
+
direction?: "hide" | "reveal" | undefined;
|
|
62
|
+
onComplete?: (() => void) | undefined;
|
|
63
|
+
});
|
|
64
|
+
update(): void;
|
|
65
|
+
destroy(): void;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=pixelate_transition_effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixelate_transition_effect.d.ts","sourceRoot":"","sources":["../../../src/camera/effects/pixelate_transition_effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,YAAY;IACjE;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5B,KAAK,EAAE,KAAK,CAAC;IAEb,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE7B,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAErC;;;OAGG;IACH,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IAEnC;;;;;;;;OAQG;gBAEF,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE;QACR,QAAQ,EAAE,QAAQ,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC1C,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;KACtC;IA6DO,MAAM,IAAI,IAAI;IAoBd,OAAO,IAAI,IAAI;CAiBxB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type Camera2d from "../camera2d.ts";
|
|
2
2
|
import CameraEffect from "./camera_effect.ts";
|
|
3
3
|
/**
|
|
4
|
-
* A camera effect that shakes the viewport
|
|
4
|
+
* A camera effect that shakes the viewport. Each frame it adds a random
|
|
5
|
+
* jitter to the camera's {@link Camera2d#offset}, and takes it back off when
|
|
6
|
+
* it ends, so an offset the game sets, before or during the shake, is kept.
|
|
5
7
|
* @category Camera
|
|
6
8
|
* @example
|
|
7
9
|
* camera.addCameraEffect(new ShakeEffect(camera, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shake_effect.d.ts","sourceRoot":"","sources":["../../../src/camera/effects/shake_effect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shake_effect.d.ts","sourceRoot":"","sources":["../../../src/camera/effects/shake_effect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAS9C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACpD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IASrC;;;;;;;OAOG;gBAEF,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;KACtC;IA4CO,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IA2BxB,OAAO,IAAI,IAAI;CAGxB"}
|