melonjs 16.1.3 → 17.0.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 +2 -2
- 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 +1 -1
- package/dist/melonjs.mjs/application/header.js +1 -1
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +5 -5
- 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 +1 -1
- 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 +3 -3
- 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 +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/loader/loader.js +127 -5
- package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/binary.js +4 -3
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +7 -7
- package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/image.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/json.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/script.js +7 -3
- package/dist/melonjs.mjs/loader/parsers/tmx.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/video.js +7 -7
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +2 -31
- package/dist/melonjs.mjs/math/matrix2.js +1 -1
- package/dist/melonjs.mjs/math/matrix3.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
- package/dist/melonjs.mjs/math/vector2.js +1 -1
- package/dist/melonjs.mjs/math/vector3.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
- 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/parse-options.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +8 -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 +1 -1
- package/dist/melonjs.mjs/system/device.js +3 -109
- 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 +1 -1
- package/dist/melonjs.mjs/system/pooling.js +1 -1
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/video/renderer.js +1 -1
- package/dist/melonjs.mjs/video/texture/atlas.js +83 -160
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +78 -0
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +77 -0
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +64 -0
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/melonjs.module.js +486 -456
- package/dist/types/audio/audio.d.ts +2 -1
- package/dist/types/loader/loader.d.ts +85 -1
- package/dist/types/loader/parsers/binary.d.ts +2 -1
- package/dist/types/loader/parsers/fetchdata.d.ts +3 -1
- package/dist/types/loader/parsers/image.d.ts +2 -1
- package/dist/types/loader/parsers/json.d.ts +3 -2
- package/dist/types/loader/parsers/script.d.ts +3 -2
- package/dist/types/loader/parsers/tmx.d.ts +3 -2
- package/dist/types/loader/parsers/video.d.ts +3 -2
- package/dist/types/math/math.d.ts +1 -30
- package/dist/types/system/device.d.ts +1 -107
- package/dist/types/video/texture/atlas.d.ts +9 -13
- package/dist/types/video/texture/parser/aseprite.d.ts +8 -0
- package/dist/types/video/texture/parser/spritesheet.d.ts +8 -0
- package/dist/types/video/texture/parser/texturepacker.d.ts +8 -0
- package/package.json +14 -13
- package/src/audio/audio.js +4 -4
- package/src/loader/loader.js +119 -5
- package/src/loader/parsers/binary.js +3 -2
- package/src/loader/parsers/fetchdata.js +6 -6
- package/src/loader/parsers/image.js +4 -3
- package/src/loader/parsers/json.js +4 -3
- package/src/loader/parsers/script.js +4 -5
- package/src/loader/parsers/tmx.js +4 -3
- package/src/loader/parsers/video.js +6 -6
- package/src/math/math.js +1 -30
- package/src/renderable/sprite.js +7 -0
- package/src/system/device.js +2 -108
- package/src/video/texture/atlas.js +81 -158
- package/src/video/texture/parser/aseprite.js +69 -0
- package/src/video/texture/parser/spritesheet.js +68 -0
- package/src/video/texture/parser/texturepacker.js +55 -0
- package/dist/melonjs.mjs/loader/settings.js +0 -92
- package/dist/types/loader/settings.d.ts +0 -57
- package/src/loader/settings.js +0 -86
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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
|
-
import { nocache } from '../settings.js';
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Fetches data from the specified URL.
|
|
12
10
|
* @param {string} url - The URL to fetch the data from.
|
|
13
11
|
* @param {string} responseType - The type of response expected ('json', 'text', 'blob', 'arrayBuffer').
|
|
12
|
+
* @param {Object} [settings] - custom settings to apply to the request (@link https://developer.mozilla.org/en-US/docs/Web/API/fetch#options)
|
|
14
13
|
* @returns {Promise} A promise that resolves with the fetched data or rejects with an error.
|
|
14
|
+
* @ignore
|
|
15
15
|
* @example
|
|
16
16
|
* fetchData('https://api.example.com/data', 'json')
|
|
17
17
|
* .then(data => {
|
|
@@ -21,15 +21,15 @@ import { nocache } from '../settings.js';
|
|
|
21
21
|
* // Handle the error
|
|
22
22
|
* });
|
|
23
23
|
*/
|
|
24
|
-
function fetchData(url, responseType) {
|
|
24
|
+
function fetchData(url, responseType, settings = {}) {
|
|
25
25
|
return new Promise((resolve, reject) => {
|
|
26
26
|
fetch(url, {
|
|
27
27
|
method: "GET",
|
|
28
28
|
// internally nocache is a string with a generated random number
|
|
29
|
-
cache: nocache === "" ? "no-cache" : "reload",
|
|
30
|
-
credentials: "omit",
|
|
29
|
+
cache: settings.nocache === "" ? "no-cache" : "reload",
|
|
30
|
+
credentials: settings.withCredentials === true ? "include" : "omit",
|
|
31
31
|
// see setting.crossorigin, "anonymous" is used for cross-origin requests
|
|
32
|
-
mode: "no-cors"
|
|
32
|
+
mode: settings.crossOrigin === "anonymous" ? "cors" : "no-cors"
|
|
33
33
|
})
|
|
34
34
|
.then(response => {
|
|
35
35
|
if (!response.ok) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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,6 +14,7 @@ import { getExtension } from '../../utils/file.js';
|
|
|
14
14
|
* @param {loader.Asset} img
|
|
15
15
|
* @param {Function} [onload] - function to be called when the resource is loaded
|
|
16
16
|
* @param {Function} [onerror] - function to be called in case of error
|
|
17
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
17
18
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
18
19
|
* @ignore
|
|
19
20
|
* @example
|
|
@@ -24,7 +25,7 @@ import { getExtension } from '../../utils/file.js';
|
|
|
24
25
|
* { name : 'image4', src : 'images/image4.png'}
|
|
25
26
|
* ]);
|
|
26
27
|
*/
|
|
27
|
-
function preloadImage(img, onload, onerror) {
|
|
28
|
+
function preloadImage(img, onload, onerror, settings) {
|
|
28
29
|
if (typeof imgList[img.name] !== "undefined") {
|
|
29
30
|
// already loaded
|
|
30
31
|
return 0;
|
|
@@ -33,7 +34,7 @@ function preloadImage(img, onload, onerror) {
|
|
|
33
34
|
// handle SVG file loading
|
|
34
35
|
if (getExtension(img.src) === "svg") {
|
|
35
36
|
// handle SVG file
|
|
36
|
-
fetchData(img.src, "text")
|
|
37
|
+
fetchData(img.src, "text", settings)
|
|
37
38
|
.then(svgText => {
|
|
38
39
|
const svgImage = new Image();
|
|
39
40
|
svgImage.onload = function() {
|
|
@@ -57,7 +58,7 @@ function preloadImage(img, onload, onerror) {
|
|
|
57
58
|
});
|
|
58
59
|
} else {
|
|
59
60
|
// handle all other image files
|
|
60
|
-
fetchData(img.src, "blob")
|
|
61
|
+
fetchData(img.src, "blob", settings)
|
|
61
62
|
.then(blob => {
|
|
62
63
|
globalThis.createImageBitmap(blob)
|
|
63
64
|
.then((bitmap) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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
|
|
@@ -11,18 +11,19 @@ import { fetchData } from './fetchdata.js';
|
|
|
11
11
|
/**
|
|
12
12
|
* parse/preload a JSON files
|
|
13
13
|
* @param {loader.Asset} data - asset data
|
|
14
|
-
* @param {Function} [onload] - function to be called when the
|
|
14
|
+
* @param {Function} [onload] - function to be called when the resource is loaded
|
|
15
15
|
* @param {Function} [onerror] - function to be called in case of error
|
|
16
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
16
17
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
17
18
|
* @ignore
|
|
18
19
|
*/
|
|
19
|
-
function preloadJSON(data, onload, onerror) {
|
|
20
|
+
function preloadJSON(data, onload, onerror, settings) {
|
|
20
21
|
if (typeof jsonList[data.name] !== "undefined") {
|
|
21
22
|
// already loaded
|
|
22
23
|
return 0;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
fetchData(data.src, "json")
|
|
26
|
+
fetchData(data.src, "json", settings)
|
|
26
27
|
.then(response => {
|
|
27
28
|
jsonList[data.name] = response;
|
|
28
29
|
if (typeof onload === "function") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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
|
|
@@ -8,16 +8,20 @@
|
|
|
8
8
|
/**
|
|
9
9
|
* parse/preload a Javascript files
|
|
10
10
|
* @param {loader.Asset} data - asset data
|
|
11
|
-
* @param {Function} [onload] - function to be called when the
|
|
11
|
+
* @param {Function} [onload] - function to be called when the resource is loaded
|
|
12
12
|
* @param {Function} [onerror] - function to be called in case of error
|
|
13
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
13
14
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
14
15
|
* @ignore
|
|
15
16
|
*/
|
|
16
|
-
function preloadJavascript(data, onload, onerror) {
|
|
17
|
+
function preloadJavascript(data, onload, onerror, settings) {
|
|
17
18
|
let script = globalThis.document.createElement("script");
|
|
18
19
|
|
|
19
20
|
script.src = data.src;
|
|
20
21
|
script.type = "text/javascript";
|
|
22
|
+
if (typeof (crossOrigin) === "string") {
|
|
23
|
+
script.crossOrigin = settings.crossOrigin;
|
|
24
|
+
}
|
|
21
25
|
script.defer = true;
|
|
22
26
|
|
|
23
27
|
if (typeof onload === "function") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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
|
|
@@ -15,12 +15,13 @@ import { fetchData } from './fetchdata.js';
|
|
|
15
15
|
* parse/preload a TMX file
|
|
16
16
|
* @param {loader.Asset} data - asset data
|
|
17
17
|
* @param {Function} [onload] - function to be called when the asset is loaded
|
|
18
|
+
* @param {Function} [onload] - function to be called when the resource is loaded
|
|
18
19
|
* @param {Function} [onerror] - function to be called in case of error
|
|
19
|
-
* @param {
|
|
20
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
20
21
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
21
22
|
* @ignore
|
|
22
23
|
*/
|
|
23
|
-
function preloadTMX(tmxData, onload, onerror) {
|
|
24
|
+
function preloadTMX(tmxData, onload, onerror, settings) {
|
|
24
25
|
if (typeof tmxList[tmxData.name] !== "undefined") {
|
|
25
26
|
// already loaded
|
|
26
27
|
return 0;
|
|
@@ -48,7 +49,7 @@ function preloadTMX(tmxData, onload, onerror) {
|
|
|
48
49
|
return;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
fetchData(tmxData.src, "text")
|
|
52
|
+
fetchData(tmxData.src, "text", settings)
|
|
52
53
|
.then(response => {
|
|
53
54
|
if (typeof response !== "string") {
|
|
54
55
|
throw new Error("Invalid response type");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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
|
|
@@ -9,25 +9,25 @@ import { videoList } from '../cache.js';
|
|
|
9
9
|
import { fetchData } from './fetchdata.js';
|
|
10
10
|
import { hasVideoFormat } from '../../system/device.js';
|
|
11
11
|
import { getExtension } from '../../utils/file.js';
|
|
12
|
-
import { crossOrigin } from '../settings.js';
|
|
13
12
|
import { isDataUrl } from '../../utils/string.js';
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* parse/preload a Video file
|
|
17
16
|
* @param {loader.Asset} data - asset data
|
|
18
|
-
* @param {Function} [onload] - function to be called when the
|
|
17
|
+
* @param {Function} [onload] - function to be called when the resource is loaded
|
|
19
18
|
* @param {Function} [onerror] - function to be called in case of error
|
|
19
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
20
20
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
21
21
|
* @ignore
|
|
22
22
|
*/
|
|
23
|
-
function preloadVideo(data, onload, onerror) {
|
|
23
|
+
function preloadVideo(data, onload, onerror, settings) {
|
|
24
24
|
|
|
25
25
|
if (typeof videoList[data.name] !== "undefined") {
|
|
26
26
|
// Video already preloaded
|
|
27
27
|
return 0;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
let videoElement = videoList[data.name] = document.createElement("video");
|
|
30
|
+
let videoElement = videoList[data.name] = globalThis.document.createElement("video");
|
|
31
31
|
|
|
32
32
|
if (isDataUrl(data.src)) {
|
|
33
33
|
const mimeType = data.src.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0];
|
|
@@ -41,7 +41,7 @@ function preloadVideo(data, onload, onerror) {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (isDataUrl(data.src)) {
|
|
44
|
-
fetchData(data.src, "blob")
|
|
44
|
+
fetchData(data.src, "blob", settings)
|
|
45
45
|
.then(blob => {
|
|
46
46
|
videoElement.src = globalThis.URL.createObjectURL(blob);
|
|
47
47
|
})
|
|
@@ -59,7 +59,7 @@ function preloadVideo(data, onload, onerror) {
|
|
|
59
59
|
videoElement.setAttribute("playsinline", "true");
|
|
60
60
|
videoElement.setAttribute("disablePictureInPicture", "true");
|
|
61
61
|
videoElement.setAttribute("controls", "false");
|
|
62
|
-
videoElement.setAttribute("crossorigin", crossOrigin);
|
|
62
|
+
videoElement.setAttribute("crossorigin", settings.crossOrigin);
|
|
63
63
|
|
|
64
64
|
if (data.autoplay === true) {
|
|
65
65
|
videoElement.setAttribute("autoplay", "true");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.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,54 +12,42 @@
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* constant to convert from degrees to radians
|
|
15
|
-
* @public
|
|
16
15
|
* @type {number}
|
|
17
|
-
* @name DEG_TO_RAD
|
|
18
16
|
* @memberof Math
|
|
19
17
|
*/
|
|
20
18
|
const DEG_TO_RAD = Math.PI / 180.0;
|
|
21
19
|
|
|
22
20
|
/**
|
|
23
21
|
* constant to convert from radians to degrees
|
|
24
|
-
* @public
|
|
25
22
|
* @type {number}
|
|
26
|
-
* @name RAD_TO_DEG
|
|
27
23
|
* @memberof Math
|
|
28
24
|
*/
|
|
29
25
|
const RAD_TO_DEG = 180.0 / Math.PI;
|
|
30
26
|
|
|
31
27
|
/**
|
|
32
28
|
* constant equals to 2 times pi
|
|
33
|
-
* @public
|
|
34
29
|
* @type {number}
|
|
35
|
-
* @name TAU
|
|
36
30
|
* @memberof Math
|
|
37
31
|
*/
|
|
38
32
|
const TAU = Math.PI * 2;
|
|
39
33
|
|
|
40
34
|
/**
|
|
41
35
|
* constant equals to half pi
|
|
42
|
-
* @public
|
|
43
36
|
* @type {number}
|
|
44
|
-
* @name ETA
|
|
45
37
|
* @memberof Math
|
|
46
38
|
*/
|
|
47
39
|
const ETA = Math.PI * 0.5;
|
|
48
40
|
|
|
49
41
|
/**
|
|
50
42
|
* the difference between 1 and the smallest floating point number greater than 1
|
|
51
|
-
* @public
|
|
52
43
|
* @type {number}
|
|
53
|
-
* @name EPSILON
|
|
54
44
|
* @memberof Math
|
|
55
45
|
*/
|
|
56
46
|
const EPSILON = 0.000001;
|
|
57
47
|
|
|
58
48
|
/**
|
|
59
49
|
* returns true if the given value is a power of two
|
|
60
|
-
* @public
|
|
61
50
|
* @memberof Math
|
|
62
|
-
* @name isPowerOfTwo
|
|
63
51
|
* @param {number} val
|
|
64
52
|
* @returns {boolean}
|
|
65
53
|
*/
|
|
@@ -69,9 +57,7 @@ function isPowerOfTwo(val) {
|
|
|
69
57
|
|
|
70
58
|
/**
|
|
71
59
|
* returns the next power of two for the given value
|
|
72
|
-
* @public
|
|
73
60
|
* @memberof Math
|
|
74
|
-
* @name nextPowerOfTwo
|
|
75
61
|
* @param {number} val
|
|
76
62
|
* @returns {boolean}
|
|
77
63
|
*/
|
|
@@ -88,9 +74,7 @@ function nextPowerOfTwo(val) {
|
|
|
88
74
|
|
|
89
75
|
/**
|
|
90
76
|
* Converts an angle in degrees to an angle in radians
|
|
91
|
-
* @public
|
|
92
77
|
* @memberof Math
|
|
93
|
-
* @name degToRad
|
|
94
78
|
* @param {number} angle - angle in degrees
|
|
95
79
|
* @returns {number} corresponding angle in radians
|
|
96
80
|
* @example
|
|
@@ -103,9 +87,7 @@ function degToRad(angle) {
|
|
|
103
87
|
|
|
104
88
|
/**
|
|
105
89
|
* Converts an angle in radians to an angle in degrees.
|
|
106
|
-
* @public
|
|
107
90
|
* @memberof Math
|
|
108
|
-
* @name radToDeg
|
|
109
91
|
* @param {number} radians - angle in radians
|
|
110
92
|
* @returns {number} corresponding angle in degrees
|
|
111
93
|
* @example
|
|
@@ -118,9 +100,7 @@ function radToDeg(radians) {
|
|
|
118
100
|
|
|
119
101
|
/**
|
|
120
102
|
* clamp the given value
|
|
121
|
-
* @public
|
|
122
103
|
* @memberof Math
|
|
123
|
-
* @name clamp
|
|
124
104
|
* @param {number} val - the value to clamp
|
|
125
105
|
* @param {number} low - lower limit
|
|
126
106
|
* @param {number} high - higher limit
|
|
@@ -132,9 +112,7 @@ function clamp(val, low, high) {
|
|
|
132
112
|
|
|
133
113
|
/**
|
|
134
114
|
* return a random integer between min (included) and max (excluded)
|
|
135
|
-
* @public
|
|
136
115
|
* @memberof Math
|
|
137
|
-
* @name random
|
|
138
116
|
* @param {number} min - minimum value.
|
|
139
117
|
* @param {number} max - maximum value.
|
|
140
118
|
* @returns {number} random value
|
|
@@ -148,9 +126,7 @@ function random(min, max) {
|
|
|
148
126
|
|
|
149
127
|
/**
|
|
150
128
|
* return a random float between min, max (exclusive)
|
|
151
|
-
* @public
|
|
152
129
|
* @memberof Math
|
|
153
|
-
* @name randomFloat
|
|
154
130
|
* @param {number} min - minimum value.
|
|
155
131
|
* @param {number} max - maximum value.
|
|
156
132
|
* @returns {number} random value
|
|
@@ -164,9 +140,7 @@ function randomFloat(min, max) {
|
|
|
164
140
|
|
|
165
141
|
/**
|
|
166
142
|
* return a weighted random between min, max (exclusive)
|
|
167
|
-
* @public
|
|
168
143
|
* @memberof Math
|
|
169
|
-
* @name weightedRandom
|
|
170
144
|
* @param {number} min - minimum value.
|
|
171
145
|
* @param {number} max - maximum value.
|
|
172
146
|
* @returns {number} random value
|
|
@@ -180,9 +154,7 @@ function weightedRandom(min, max) {
|
|
|
180
154
|
|
|
181
155
|
/**
|
|
182
156
|
* round a value to the specified number of digit
|
|
183
|
-
* @public
|
|
184
157
|
* @memberof Math
|
|
185
|
-
* @name round
|
|
186
158
|
* @param {number} num - value to be rounded.
|
|
187
159
|
* @param {number} [dec=0] - number of decimal digit to be rounded to.
|
|
188
160
|
* @returns {number} rounded value
|
|
@@ -198,9 +170,7 @@ function round(num, dec = 0) {
|
|
|
198
170
|
|
|
199
171
|
/**
|
|
200
172
|
* check if the given value is close to the expected one
|
|
201
|
-
* @public
|
|
202
173
|
* @memberof Math
|
|
203
|
-
* @name toBeCloseTo
|
|
204
174
|
* @param {number} expected - value to be compared with.
|
|
205
175
|
* @param {number} actual - actual value to compare
|
|
206
176
|
* @param {number} [precision=2] - float precision for the comparison
|
|
@@ -218,6 +188,7 @@ function toBeCloseTo(expected, actual, precision = 2) {
|
|
|
218
188
|
|
|
219
189
|
/**
|
|
220
190
|
* Calculates the power of a number.
|
|
191
|
+
* @memberof Math
|
|
221
192
|
* @param {number} n - The number to be raised to the power of 2.
|
|
222
193
|
* @returns {number} The result of raising the number to the power of 2.
|
|
223
194
|
*/
|