melonjs 17.1.0 → 17.3.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/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/_virtual/re.js +1 -1
- package/dist/melonjs.mjs/application/application.js +7 -7
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +29 -32
- package/dist/melonjs.mjs/audio/audio.js +13 -9
- package/dist/melonjs.mjs/camera/camera2d.js +1 -1
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
- package/dist/melonjs.mjs/geometries/line.js +1 -1
- package/dist/melonjs.mjs/geometries/path2d.js +17 -17
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +1 -1
- package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
- package/dist/melonjs.mjs/index.js +4 -4
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +1 -1
- package/dist/melonjs.mjs/input/pointerevent.js +1 -1
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +29 -2
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +3 -3
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +5 -5
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +3 -3
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +5 -2
- package/dist/melonjs.mjs/loader/loader.js +34 -5
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -4
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fontface.js +25 -15
- package/dist/melonjs.mjs/loader/parsers/image.js +3 -3
- package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/tmx.js +2 -9
- package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
- package/dist/melonjs.mjs/math/color.js +6 -6
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +7 -7
- package/dist/melonjs.mjs/math/matrix3.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
- package/dist/melonjs.mjs/math/observable_vector3.js +4 -4
- package/dist/melonjs.mjs/math/vector2.js +3 -3
- package/dist/melonjs.mjs/math/vector3.js +4 -4
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +6 -5
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +2 -2
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +49 -0
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +1 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +4 -4
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +1 -1
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +1 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +1 -1
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +2 -2
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
- package/dist/melonjs.mjs/renderable/light2d.js +7 -7
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
- package/dist/melonjs.mjs/renderable/renderable.js +1 -1
- package/dist/melonjs.mjs/renderable/sprite.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
- package/dist/melonjs.mjs/renderable/text/text.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +1 -1
- package/dist/melonjs.mjs/state/state.js +5 -5
- package/dist/melonjs.mjs/system/device.js +6 -6
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +4 -2
- package/dist/melonjs.mjs/system/pooling.js +2 -2
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +68 -70
- package/dist/melonjs.mjs/tweens/interpolation.js +29 -29
- package/dist/melonjs.mjs/tweens/tween.js +43 -43
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +18 -10
- package/dist/melonjs.mjs/video/renderer.js +18 -70
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +12 -6
- package/dist/melonjs.mjs/video/texture/atlas.js +13 -4
- package/dist/melonjs.mjs/video/texture/cache.js +57 -38
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +4 -3
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +5 -5
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +47 -21
- package/dist/melonjs.module.js +607 -1294
- package/dist/types/application/application.d.ts +7 -6
- package/dist/types/application/settings.d.ts +40 -23
- package/dist/types/audio/audio.d.ts +8 -4
- package/dist/types/loader/cache.d.ts +1 -0
- package/dist/types/loader/loader.d.ts +7 -0
- package/dist/types/physics/world.d.ts +1 -1
- package/dist/types/system/platform.d.ts +2 -0
- package/dist/types/video/canvas/canvas_renderer.d.ts +6 -3
- package/dist/types/video/renderer.d.ts +6 -16
- package/dist/types/video/rendertarget/canvasrendertarget.d.ts +6 -9
- package/dist/types/video/texture/atlas.d.ts +6 -0
- package/dist/types/video/texture/cache.d.ts +7 -5
- package/dist/types/video/video.d.ts +3 -2
- package/dist/types/video/webgl/webgl_renderer.d.ts +8 -6
- package/package.json +16 -16
- package/src/application/application.js +6 -6
- package/src/application/header.js +1 -1
- package/src/application/settings.js +27 -30
- package/src/audio/audio.js +12 -8
- package/src/geometries/path2d.js +16 -16
- package/src/index.js +2 -2
- package/src/lang/deprecated.js +28 -1
- package/src/level/tiled/TMXObject.js +1 -1
- package/src/level/tiled/TMXTileMap.js +1 -1
- package/src/level/tiled/TMXUtils.js +2 -2
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +4 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/src/loader/cache.js +3 -0
- package/src/loader/loader.js +33 -3
- package/src/loader/parsers/fontface.js +24 -14
- package/src/loader/parsers/image.js +2 -2
- package/src/loader/parsers/tmx.js +1 -8
- package/src/math/color.js +5 -5
- package/src/math/matrix2.js +6 -6
- package/src/math/matrix3.js +1 -1
- package/src/math/observable_vector2.js +2 -2
- package/src/math/observable_vector3.js +3 -3
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +3 -3
- package/src/physics/body.js +3 -3
- package/src/physics/detector.js +1 -1
- package/src/physics/world.js +1 -1
- package/src/renderable/container.js +1 -1
- package/src/renderable/light2d.js +6 -6
- package/src/state/state.js +4 -4
- package/src/system/device.js +5 -5
- package/src/system/platform.js +2 -0
- package/src/system/pooling.js +1 -1
- package/src/system/save.js +1 -1
- package/src/system/timer.js +1 -1
- package/src/tweens/easing.js +67 -69
- package/src/tweens/interpolation.js +28 -28
- package/src/tweens/tween.js +42 -42
- package/src/video/canvas/canvas_renderer.js +17 -9
- package/src/video/renderer.js +17 -69
- package/src/video/rendertarget/canvasrendertarget.js +11 -5
- package/src/video/texture/atlas.js +12 -3
- package/src/video/texture/cache.js +56 -37
- package/src/video/video.js +3 -2
- package/src/video/webgl/utils/precision.js +4 -4
- package/src/video/webgl/webgl_renderer.js +46 -20
- package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +0 -352
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +0 -24
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +0 -444
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -14,7 +14,7 @@ import timer from '../system/timer.js';
|
|
|
14
14
|
import state from '../state/state.js';
|
|
15
15
|
import World from '../physics/world.js';
|
|
16
16
|
import { onresize } from './resize.js';
|
|
17
|
-
import {
|
|
17
|
+
import { ApplicationSettings } from './settings.js';
|
|
18
18
|
import { consoleHeader } from './header.js';
|
|
19
19
|
import { WEBGL, CANVAS, AUTO } from '../const.js';
|
|
20
20
|
|
|
@@ -27,7 +27,7 @@ class Application {
|
|
|
27
27
|
/**
|
|
28
28
|
* @param {number} width - The width of the canvas viewport
|
|
29
29
|
* @param {number} height - The height of the canvas viewport
|
|
30
|
-
* @param {
|
|
30
|
+
* @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
|
|
31
31
|
* @throws Will throw an exception if it fails to instantiate a renderer
|
|
32
32
|
*/
|
|
33
33
|
constructor(width, height, options) {
|
|
@@ -83,7 +83,7 @@ class Application {
|
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* the given settings used when creating this application
|
|
86
|
-
* @type {
|
|
86
|
+
* @type {ApplicationSettings}
|
|
87
87
|
*/
|
|
88
88
|
this.settings = undefined;
|
|
89
89
|
|
|
@@ -144,11 +144,11 @@ class Application {
|
|
|
144
144
|
* init the game instance (create a physic world, update starting time, etc..)
|
|
145
145
|
* @param {number} width - The width of the canvas viewport
|
|
146
146
|
* @param {number} height - The height of the canvas viewport
|
|
147
|
-
* @param {
|
|
147
|
+
* @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
|
|
148
148
|
*/
|
|
149
149
|
init(width, height, options) {
|
|
150
150
|
|
|
151
|
-
this.settings = Object.assign(
|
|
151
|
+
this.settings = Object.assign(ApplicationSettings, options || {});
|
|
152
152
|
|
|
153
153
|
// sanitize potential given parameters
|
|
154
154
|
this.settings.width = width;
|
|
@@ -187,7 +187,7 @@ class Application {
|
|
|
187
187
|
|
|
188
188
|
// identify parent element and/or the html target for resizing
|
|
189
189
|
this.parentElement = getElement(this.settings.parent);
|
|
190
|
-
if (typeof this.settings.scaleTarget !== "undefined"
|
|
190
|
+
if (typeof this.settings.scaleTarget !== "undefined") {
|
|
191
191
|
this.settings.scaleTarget = getElement(this.settings.scaleTarget);
|
|
192
192
|
}
|
|
193
193
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -27,7 +27,7 @@ function consoleHeader(app) {
|
|
|
27
27
|
language
|
|
28
28
|
);
|
|
29
29
|
|
|
30
|
-
console.log(
|
|
30
|
+
console.log("resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
|
|
31
31
|
", got " + app.renderer.width + "x" + app.renderer.height
|
|
32
32
|
);
|
|
33
33
|
}
|
|
@@ -1,36 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
6
|
* @copyright (C) 2011 - 2024 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
-
// default settings
|
|
9
|
-
const defaultSettings = {
|
|
10
|
-
parent : undefined,
|
|
11
|
-
renderer : 2, // AUTO
|
|
12
|
-
autoScale : false,
|
|
13
|
-
scale : 1.0,
|
|
14
|
-
scaleMethod : "manual",
|
|
15
|
-
scaleTarget : undefined,
|
|
16
|
-
transparent : false,
|
|
17
|
-
premultipliedAlpha: true,
|
|
18
|
-
blendMode : "normal",
|
|
19
|
-
physic : "builtin",
|
|
20
|
-
antiAlias : false,
|
|
21
|
-
failIfMajorPerformanceCaveat : true,
|
|
22
|
-
subPixel : false,
|
|
23
|
-
preferWebGL1 : false,
|
|
24
|
-
powerPreference : "default",
|
|
25
|
-
verbose : false,
|
|
26
|
-
consoleHeader : true,
|
|
27
|
-
legacy : false,
|
|
28
|
-
canvas : undefined
|
|
29
|
-
};
|
|
30
|
-
|
|
31
8
|
/**
|
|
32
9
|
* Application & Renderer Settings definition.
|
|
33
|
-
* @typedef {
|
|
10
|
+
* @typedef {Object} ApplicationSettings
|
|
34
11
|
* @property {string|HTMLElement} [parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
35
12
|
* @property {HTMLCanvasElement} [canvas] - an existing canvas element to use as the renderer target (by default melonJS will create its own canvas based on given parameters)
|
|
36
13
|
* @property {number|Renderer} [renderer=AUTO] - renderer to use (CANVAS, WEBGL, AUTO), or a custom renderer class
|
|
@@ -57,12 +34,32 @@ const defaultSettings = {
|
|
|
57
34
|
* @property {boolean} [transparent=false] - whether to allow transparent pixels in the front buffer (screen).
|
|
58
35
|
* @property {boolean} [antiAlias=false] - whether to enable or not video scaling interpolation
|
|
59
36
|
* @property {boolean} [consoleHeader=true] - whether to display melonJS version and basic device information in the console
|
|
60
|
-
* @
|
|
61
|
-
* @
|
|
62
|
-
* @
|
|
63
|
-
* @
|
|
64
|
-
* @see Application
|
|
65
|
-
* @memberof Application
|
|
37
|
+
* @property {number} [zoomX=width] - The actual width of the canvas with scaling applied
|
|
38
|
+
* @property {number} [zoomY=height] - The actual height of the canvas with scaling applied
|
|
39
|
+
* @property {Compositor} [compositor] - a custom compositor class (WebGL only)
|
|
40
|
+
* @property {string} [physic="builtin"] - the physic system to use (default: "builtin", or "none" to disable builtin physic)
|
|
66
41
|
*/
|
|
42
|
+
const ApplicationSettings = {
|
|
43
|
+
parent : undefined,
|
|
44
|
+
canvas : undefined,
|
|
45
|
+
renderer : 2, // AUTO
|
|
46
|
+
autoScale : false,
|
|
47
|
+
scale : 1.0,
|
|
48
|
+
scaleMethod : "manual",
|
|
49
|
+
scaleTarget : undefined,
|
|
50
|
+
preferWebGL1 : false,
|
|
51
|
+
depthTest: "sorting",
|
|
52
|
+
powerPreference : "default",
|
|
53
|
+
transparent : false,
|
|
54
|
+
antiAlias : false,
|
|
55
|
+
consoleHeader : true,
|
|
56
|
+
premultipliedAlpha: true,
|
|
57
|
+
blendMode : "normal",
|
|
58
|
+
physic : "builtin",
|
|
59
|
+
failIfMajorPerformanceCaveat : true,
|
|
60
|
+
subPixel : false,
|
|
61
|
+
verbose : false,
|
|
62
|
+
legacy : false
|
|
63
|
+
};
|
|
67
64
|
|
|
68
|
-
export {
|
|
65
|
+
export { ApplicationSettings };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -283,14 +283,15 @@ function rate(sound_name, ...args) {
|
|
|
283
283
|
* @memberof audio
|
|
284
284
|
* @param {string} sound_name - audio clip name - case sensitive
|
|
285
285
|
* @param {number} [pan] - the panning value - A value of -1.0 is all the way left and 1.0 is all the way right.
|
|
286
|
+
* @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
|
|
286
287
|
* @return {number} the current panning value
|
|
287
288
|
* @example
|
|
288
289
|
* me.audio.stereo("cling", -1);
|
|
289
290
|
*/
|
|
290
|
-
function stereo(sound_name, pan) {
|
|
291
|
+
function stereo(sound_name, pan, id) {
|
|
291
292
|
let sound = audioTracks[sound_name];
|
|
292
293
|
if (sound && typeof sound !== "undefined") {
|
|
293
|
-
return sound.stereo(pan);
|
|
294
|
+
return sound.stereo(pan, id);
|
|
294
295
|
} else {
|
|
295
296
|
throw new Error("audio clip " + sound_name + " does not exist");
|
|
296
297
|
}
|
|
@@ -303,12 +304,13 @@ function stereo(sound_name, pan) {
|
|
|
303
304
|
* @param {Number} x - the x-position of the audio source.
|
|
304
305
|
* @param {Number} y - the y-position of the audio source.
|
|
305
306
|
* @param {Number} z - the z-position of the audio source.
|
|
307
|
+
* @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
|
|
306
308
|
* @return {Array} the current 3D spatial position: [x, y, z]
|
|
307
309
|
*/
|
|
308
|
-
function position(sound_name, x, y, z) {
|
|
310
|
+
function position(sound_name, x, y, z, id) {
|
|
309
311
|
let sound = audioTracks[sound_name];
|
|
310
312
|
if (sound && typeof sound !== "undefined") {
|
|
311
|
-
return sound.pos(x, y, z);
|
|
313
|
+
return sound.pos(x, y, z, id);
|
|
312
314
|
} else {
|
|
313
315
|
throw new Error("audio clip " + sound_name + " does not exist");
|
|
314
316
|
}
|
|
@@ -322,12 +324,13 @@ function position(sound_name, x, y, z) {
|
|
|
322
324
|
* @param {Number} x - the x-orientation of the audio source.
|
|
323
325
|
* @param {Number} y - the y-orientation of the audio source.
|
|
324
326
|
* @param {Number} z - the z-orientation of the audio source.
|
|
327
|
+
* @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
|
|
325
328
|
* @return {Array} the current 3D spatial orientation: [x, y, z]
|
|
326
329
|
*/
|
|
327
|
-
function orientation(sound_name, x, y, z) {
|
|
330
|
+
function orientation(sound_name, x, y, z, id) {
|
|
328
331
|
let sound = audioTracks[sound_name];
|
|
329
332
|
if (sound && typeof sound !== "undefined") {
|
|
330
|
-
return sound.orientation(x, y, z);
|
|
333
|
+
return sound.orientation(x, y, z, id);
|
|
331
334
|
} else {
|
|
332
335
|
throw new Error("audio clip " + sound_name + " does not exist");
|
|
333
336
|
}
|
|
@@ -347,6 +350,7 @@ function orientation(sound_name, x, y, z) {
|
|
|
347
350
|
* @param {string} [settings.refDistance=1] - A reference distance for reducing volume as source moves further from the listener. This is simply a variable of the distance model and has a different effect depending on which model is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.
|
|
348
351
|
* @param {string} [settings.rolloffFactor=1] - How quickly the volume reduces as source moves from listener. This is simply a variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]` with `inverse` and `exponential`.
|
|
349
352
|
* @param {string} [settings.panningModel="HRTF"] - Determines which spatialization algorithm is used to position audio. Can be `HRTF` or `equalpower`.
|
|
353
|
+
* @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
|
|
350
354
|
* @return {Object} current panner attributes.
|
|
351
355
|
* @example
|
|
352
356
|
* me.audio.panner("cling", {
|
|
@@ -356,10 +360,10 @@ function orientation(sound_name, x, y, z) {
|
|
|
356
360
|
* distanceModel: 'exponential'
|
|
357
361
|
* });
|
|
358
362
|
*/
|
|
359
|
-
function panner(sound_name, attributes) {
|
|
363
|
+
function panner(sound_name, attributes, id) {
|
|
360
364
|
let sound = audioTracks[sound_name];
|
|
361
365
|
if (sound && typeof sound !== "undefined") {
|
|
362
|
-
return sound.pannerAttr(attributes);
|
|
366
|
+
return sound.pannerAttr(attributes, id);
|
|
363
367
|
} else {
|
|
364
368
|
throw new Error("audio clip " + sound_name + " does not exist");
|
|
365
369
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -71,12 +71,12 @@ class Path2D {
|
|
|
71
71
|
break;
|
|
72
72
|
case "H":
|
|
73
73
|
// H take 1 coordinate
|
|
74
|
-
lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
74
|
+
lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
75
75
|
this.lineTo(lastPoint.x + coordinates[0], lastPoint.y);
|
|
76
76
|
break;
|
|
77
77
|
case "V":
|
|
78
78
|
// V take 1 coordinate
|
|
79
|
-
lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
79
|
+
lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
80
80
|
this.lineTo(lastPoint.x, lastPoint.y + coordinates[0]);
|
|
81
81
|
break;
|
|
82
82
|
case "M":
|
|
@@ -128,7 +128,7 @@ class Path2D {
|
|
|
128
128
|
let points = this.points;
|
|
129
129
|
if (points.length > 0) {
|
|
130
130
|
let firstPoint = points[0];
|
|
131
|
-
if (!firstPoint.equals(points[points.length-1])) {
|
|
131
|
+
if (!firstPoint.equals(points[points.length - 1])) {
|
|
132
132
|
this.lineTo(firstPoint.x, firstPoint.y);
|
|
133
133
|
}
|
|
134
134
|
this.isDirty = true;
|
|
@@ -153,14 +153,14 @@ class Path2D {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
// calculate all vertices
|
|
156
|
-
for (let i = 0; i < indicesLength; i++
|
|
156
|
+
for (let i = 0; i < indicesLength; i++) {
|
|
157
157
|
let point = points[indices[i]];
|
|
158
158
|
vertices[i].set(point.x, point.y);
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
// recycle overhead from a previous triangulation
|
|
162
162
|
while (vertices.length > indicesLength) {
|
|
163
|
-
pool.push(vertices[vertices.length-1]);
|
|
163
|
+
pool.push(vertices[vertices.length - 1]);
|
|
164
164
|
vertices.length -= 1;
|
|
165
165
|
}
|
|
166
166
|
this.isDirty = false;
|
|
@@ -187,7 +187,7 @@ class Path2D {
|
|
|
187
187
|
lineTo(x, y) {
|
|
188
188
|
let points = this.points;
|
|
189
189
|
let startPoint = this.startPoint;
|
|
190
|
-
let lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
190
|
+
let lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
191
191
|
|
|
192
192
|
if (!startPoint.equals(lastPoint)) {
|
|
193
193
|
points.push(pool.pull("Point", startPoint.x, startPoint.y));
|
|
@@ -216,7 +216,7 @@ class Path2D {
|
|
|
216
216
|
// based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
|
|
217
217
|
//bring angles all in [0, 2*PI] range
|
|
218
218
|
if (startAngle === endAngle) return;
|
|
219
|
-
const fullCircle = anticlockwise ? Math.abs(startAngle-endAngle) >= (TAU) : Math.abs(endAngle-startAngle) >= (TAU);
|
|
219
|
+
const fullCircle = anticlockwise ? Math.abs(startAngle - endAngle) >= (TAU) : Math.abs(endAngle - startAngle) >= (TAU);
|
|
220
220
|
|
|
221
221
|
startAngle = startAngle % (TAU);
|
|
222
222
|
endAngle = endAngle % (TAU);
|
|
@@ -225,7 +225,7 @@ class Path2D {
|
|
|
225
225
|
if (endAngle < 0) endAngle += TAU;
|
|
226
226
|
|
|
227
227
|
if (startAngle >= endAngle) {
|
|
228
|
-
endAngle+= TAU;
|
|
228
|
+
endAngle += TAU;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
let diff = endAngle - startAngle;
|
|
@@ -266,7 +266,7 @@ class Path2D {
|
|
|
266
266
|
arcTo(x1, y1, x2, y2, radius) {
|
|
267
267
|
let points = this.points;
|
|
268
268
|
let startPoint = this.startPoint;
|
|
269
|
-
let lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
269
|
+
let lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
270
270
|
|
|
271
271
|
// based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
|
|
272
272
|
let x0 = lastPoint.x, y0 = lastPoint.y;
|
|
@@ -281,8 +281,8 @@ class Path2D {
|
|
|
281
281
|
let angle = Math.atan2(a1, a0) - Math.atan2(b1, b0);
|
|
282
282
|
|
|
283
283
|
//work out tangent points using tan(θ) = opposite / adjacent; angle/2 because hypotenuse is the bisection of a,b
|
|
284
|
-
let tan_angle_div2 = Math.tan(angle/2);
|
|
285
|
-
let adj_l = (radius/tan_angle_div2);
|
|
284
|
+
let tan_angle_div2 = Math.tan(angle / 2);
|
|
285
|
+
let adj_l = (radius / tan_angle_div2);
|
|
286
286
|
|
|
287
287
|
let tangent1_pointx = x1 + a0 * adj_l, tangent1_pointy = y1 + a1 * adj_l;
|
|
288
288
|
let tangent2_pointx = x1 + b0 * adj_l, tangent2_pointy = y1 + b1 * adj_l;
|
|
@@ -317,7 +317,7 @@ class Path2D {
|
|
|
317
317
|
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise = false) {
|
|
318
318
|
// based on from https://github.com/karellodewijk/canvas-webgl/blob/master/canvas-webgl.js
|
|
319
319
|
if (startAngle === endAngle) return;
|
|
320
|
-
let fullCircle = anticlockwise ? Math.abs(startAngle-endAngle) >= (TAU) : Math.abs(endAngle-startAngle) >= (TAU);
|
|
320
|
+
let fullCircle = anticlockwise ? Math.abs(startAngle - endAngle) >= (TAU) : Math.abs(endAngle - startAngle) >= (TAU);
|
|
321
321
|
|
|
322
322
|
//bring angles all in [0, 2*PI] range
|
|
323
323
|
startAngle = startAngle % (TAU);
|
|
@@ -325,7 +325,7 @@ class Path2D {
|
|
|
325
325
|
if (startAngle < 0) startAngle += TAU;
|
|
326
326
|
if (endAngle < 0) endAngle += TAU;
|
|
327
327
|
|
|
328
|
-
if (startAngle>=endAngle) {
|
|
328
|
+
if (startAngle >= endAngle) {
|
|
329
329
|
endAngle += TAU;
|
|
330
330
|
}
|
|
331
331
|
|
|
@@ -355,7 +355,7 @@ class Path2D {
|
|
|
355
355
|
const _y1 = radiusY * Math.sin(angle);
|
|
356
356
|
const _x2 = x + _x1 * cos_rotation - _y1 * sin_rotation;
|
|
357
357
|
const _y2 = y + _x1 * sin_rotation + _y1 * cos_rotation;
|
|
358
|
-
this.lineTo(
|
|
358
|
+
this.lineTo(_x2, _y2);
|
|
359
359
|
angle += angleStep;
|
|
360
360
|
}
|
|
361
361
|
// close the ellipse
|
|
@@ -373,7 +373,7 @@ class Path2D {
|
|
|
373
373
|
quadraticCurveTo(cpX, cpY, x, y) {
|
|
374
374
|
const points = this.points;
|
|
375
375
|
const startPoint = this.startPoint;
|
|
376
|
-
const lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
376
|
+
const lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
377
377
|
const endPoint = pool.pull("Point").set(x, y);
|
|
378
378
|
const controlPoint = pool.pull("Point").set(cpX, cpY);
|
|
379
379
|
const resolution = this.arcResolution;
|
|
@@ -401,7 +401,7 @@ class Path2D {
|
|
|
401
401
|
bezierCurveTo(cp1X, cp1Y, cp2X, cp2Y, x, y) {
|
|
402
402
|
const points = this.points;
|
|
403
403
|
const startPoint = this.startPoint;
|
|
404
|
-
const lastPoint = points.length === 0 ? startPoint : points[points.length-1];
|
|
404
|
+
const lastPoint = points.length === 0 ? startPoint : points[points.length - 1];
|
|
405
405
|
const endPoint = pool.pull("Point").set(x, y);
|
|
406
406
|
const controlPoint1 = pool.pull("Point").set(cp1X, cp1Y);
|
|
407
407
|
const controlPoint2 = pool.pull("Point").set(cp2X, cp2Y);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -112,7 +112,7 @@ import { initKeyboardEvent } from './input/keyboard.js';
|
|
|
112
112
|
* @name version
|
|
113
113
|
* @type {string}
|
|
114
114
|
*/
|
|
115
|
-
const version = "17.
|
|
115
|
+
const version = "17.3.0";
|
|
116
116
|
|
|
117
117
|
/**
|
|
118
118
|
* a flag indicating that melonJS is fully initialized
|
|
@@ -153,7 +153,7 @@ function boot() {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
// output melonJS version in the console
|
|
156
|
-
console.log("melonJS 2 (v" + version + ") | http://melonjs.org"
|
|
156
|
+
console.log("melonJS 2 (v" + version + ") | http://melonjs.org");
|
|
157
157
|
|
|
158
158
|
// register all built-ins objects into the object pool
|
|
159
159
|
pool.register("me.Entity", Entity);
|
|
@@ -220,7 +220,7 @@ function boot() {
|
|
|
220
220
|
emit(BOOT);
|
|
221
221
|
|
|
222
222
|
// enable/disable the cache
|
|
223
|
-
setNocache(
|
|
223
|
+
setNocache(getUriFragment().nocache || false);
|
|
224
224
|
|
|
225
225
|
// automatically enable keyboard events
|
|
226
226
|
initKeyboardEvent();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
2
|
+
* melonJS Game Engine - v17.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -12,6 +12,8 @@ import { DropTarget } from '../renderable/dragndrop.js';
|
|
|
12
12
|
import UISpriteElement from '../renderable/ui/uispriteelement.js';
|
|
13
13
|
import { warning } from './console.js';
|
|
14
14
|
import CanvasRenderTarget from '../video/rendertarget/canvasrendertarget.js';
|
|
15
|
+
import CanvasRenderer from '../video/canvas/canvas_renderer.js';
|
|
16
|
+
import WebGLRenderer from '../video/webgl/webgl_renderer.js';
|
|
15
17
|
|
|
16
18
|
/*
|
|
17
19
|
* placeholder for all deprecated classes and corresponding alias for backward compatibility
|
|
@@ -139,7 +141,6 @@ Renderer.prototype.getWidth = function() {
|
|
|
139
141
|
* return the height of the system Canvas
|
|
140
142
|
* @public
|
|
141
143
|
* @name getHeight
|
|
142
|
-
* @class
|
|
143
144
|
* @memberof Renderer#
|
|
144
145
|
* @deprecated since 15.12.0
|
|
145
146
|
* @see height
|
|
@@ -170,4 +171,30 @@ class CanvasTexture extends CanvasRenderTarget {
|
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
|
|
174
|
+
/**
|
|
175
|
+
* return the height of the system Canvas
|
|
176
|
+
* @public
|
|
177
|
+
* @name setLineWidth
|
|
178
|
+
* @memberof CanvasRenderer#
|
|
179
|
+
* @deprecated since 17.3.0
|
|
180
|
+
* @see lineWidth
|
|
181
|
+
*/
|
|
182
|
+
CanvasRenderer.prototype.setLineWidth = function(width) {
|
|
183
|
+
warning("setLineWidth", "lineWidth", "17.3.0");
|
|
184
|
+
this.lineWidth = width;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* return the height of the system Canvas
|
|
189
|
+
* @public
|
|
190
|
+
* @name setLineWidth
|
|
191
|
+
* @memberof WebGLRenderer#
|
|
192
|
+
* @deprecated since 17.3.0
|
|
193
|
+
* @see lineWidth
|
|
194
|
+
*/
|
|
195
|
+
WebGLRenderer.prototype.setLineWidth = function(width) {
|
|
196
|
+
warning("setLineWidth", "lineWidth", "17.3.0");
|
|
197
|
+
this.lineWidth = width;
|
|
198
|
+
};
|
|
199
|
+
|
|
173
200
|
export { CanvasTexture, DraggableEntity, DroptargetEntity, GUI_Object };
|