melonjs 15.1.5 → 15.2.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/application/application.js +3 -3
- 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 +1 -1
- package/dist/melonjs.mjs/camera/camera2d.js +3 -3
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.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/index.js +12 -7
- 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 +3 -2
- package/dist/melonjs.mjs/level/level.js +5 -4
- 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 +3 -3
- 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 +6 -8
- 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 +1 -1
- 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/parser.js +1 -1
- package/dist/melonjs.mjs/loader/settings.js +1 -1
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +1 -1
- 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/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 +3 -3
- 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 +4 -4
- 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 +9 -9
- package/dist/melonjs.mjs/physics/world.js +1 -1
- package/dist/melonjs.mjs/plugin/plugin.js +106 -108
- 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 +20 -19
- package/dist/melonjs.mjs/renderable/draggable.js +121 -0
- package/dist/melonjs.mjs/renderable/dragndrop.js +3 -113
- 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 +2 -2
- package/dist/melonjs.mjs/renderable/sprite.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/text/glyph.js +1 -1
- package/dist/melonjs.mjs/text/text.js +1 -1
- package/dist/melonjs.mjs/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/text/textstyle.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 +105 -111
- 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 +1 -1
- 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/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +4 -4
- 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 +516 -500
- package/dist/types/camera/camera2d.d.ts +4 -4
- package/dist/types/index.d.ts +4 -4
- package/dist/types/physics/body.d.ts +4 -4
- package/dist/types/physics/detector.d.ts +5 -5
- package/dist/types/physics/sat.d.ts +12 -12
- package/dist/types/plugin/plugin.d.ts +60 -5
- package/dist/types/renderable/container.d.ts +25 -25
- package/dist/types/renderable/draggable.d.ts +53 -0
- package/dist/types/renderable/dragndrop.d.ts +0 -52
- package/dist/types/renderable/renderable.d.ts +2 -2
- package/dist/types/utils/utils.d.ts +56 -17
- package/package.json +8 -8
- package/src/application/application.js +2 -2
- package/src/camera/camera2d.js +2 -2
- package/src/index.js +5 -3
- package/src/lang/deprecated.js +2 -1
- package/src/level/level.js +4 -3
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/level/tiled/TMXUtils.js +4 -3
- package/src/physics/body.js +2 -2
- package/src/physics/detector.js +3 -3
- package/src/physics/sat.js +8 -8
- package/src/plugin/plugin.js +103 -105
- package/src/renderable/container.js +19 -18
- package/src/renderable/draggable.js +114 -0
- package/src/renderable/dragndrop.js +0 -109
- package/src/renderable/renderable.js +1 -1
- package/src/renderable/trigger.js +1 -1
- package/src/system/timer.js +3 -3
- package/src/utils/utils.js +102 -111
- package/src/video/video.js +3 -3
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.2.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 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
+
import { toHex } from './string.js';
|
|
9
|
+
import * as string from './string.js';
|
|
10
|
+
export { string };
|
|
8
11
|
import * as agent from './agent.js';
|
|
12
|
+
export { agent };
|
|
9
13
|
import * as array from './array.js';
|
|
14
|
+
export { array };
|
|
10
15
|
import * as file from './file.js';
|
|
11
|
-
|
|
12
|
-
import { toHex } from './string.js';
|
|
16
|
+
export { file };
|
|
13
17
|
import * as _function from './function.js';
|
|
18
|
+
export { _function as function };
|
|
14
19
|
|
|
15
20
|
/**
|
|
16
21
|
* a collection of utility functions
|
|
@@ -21,126 +26,115 @@ import * as _function from './function.js';
|
|
|
21
26
|
let GUID_base = "";
|
|
22
27
|
let GUID_index = 0;
|
|
23
28
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
let a = first.split(".");
|
|
51
|
-
let b = second.split(".");
|
|
52
|
-
let len = Math.min(a.length, b.length);
|
|
53
|
-
let result = 0;
|
|
54
|
-
|
|
55
|
-
for (let i = 0; i < len; i++) {
|
|
56
|
-
if ((result = +a[i] - +b[i])) {
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
29
|
+
/**
|
|
30
|
+
* Compare two version strings
|
|
31
|
+
* @public
|
|
32
|
+
* @memberof utils
|
|
33
|
+
* @name checkVersion
|
|
34
|
+
* @param {string} first - First version string to compare
|
|
35
|
+
* @param {string} second - second version string to compare
|
|
36
|
+
* @returns {number} comparison result <br>< 0 : first < second<br>
|
|
37
|
+
* 0 : first == second<br>
|
|
38
|
+
* > 0 : first > second
|
|
39
|
+
* @example
|
|
40
|
+
* if (me.utils.checkVersion("7.0.0") > 0) {
|
|
41
|
+
* console.error(
|
|
42
|
+
* "melonJS is too old. Expected: 7.0.0, Got: 6.3.0"
|
|
43
|
+
* );
|
|
44
|
+
* }
|
|
45
|
+
*/
|
|
46
|
+
function checkVersion(first, second) {
|
|
47
|
+
let a = first.split(".");
|
|
48
|
+
let b = second.split(".");
|
|
49
|
+
let len = Math.min(a.length, b.length);
|
|
50
|
+
let result = 0;
|
|
51
|
+
|
|
52
|
+
for (let i = 0; i < len; i++) {
|
|
53
|
+
if ((result = +a[i] - +b[i])) {
|
|
54
|
+
break;
|
|
59
55
|
}
|
|
56
|
+
}
|
|
60
57
|
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
return result ? result : a.length - b.length;
|
|
59
|
+
}
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
61
|
+
/**
|
|
62
|
+
* parse the fragment (hash) from a URL and returns them into
|
|
63
|
+
* @public
|
|
64
|
+
* @memberof utils
|
|
65
|
+
* @name getUriFragment
|
|
66
|
+
* @param {string} [url=document.location] - an optional params string or URL containing fragment (hash) params to be parsed
|
|
67
|
+
* @returns {object} an object representing the deserialized params string.
|
|
68
|
+
* @property {boolean} [hitbox=false] draw the hitbox in the debug panel (if enabled)
|
|
69
|
+
* @property {boolean} [velocity=false] draw the entities velocity in the debug panel (if enabled)
|
|
70
|
+
* @property {boolean} [quadtree=false] draw the quadtree in the debug panel (if enabled)
|
|
71
|
+
* @property {boolean} [webgl=false] force the renderer to WebGL
|
|
72
|
+
* @property {boolean} [debug=false] display the debug panel (if preloaded)
|
|
73
|
+
* @property {string} [debugToggleKey="s"] show/hide the debug panel (if preloaded)
|
|
74
|
+
* @example
|
|
75
|
+
* // http://www.example.com/index.html#debug&hitbox=true&mytag=value
|
|
76
|
+
* let UriFragment = me.utils.getUriFragment();
|
|
77
|
+
* console.log(UriFragment["mytag"]); //> "value"
|
|
78
|
+
*/
|
|
79
|
+
function getUriFragment(url) {
|
|
80
|
+
let hash = {};
|
|
84
81
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
if (typeof url === "undefined") {
|
|
83
|
+
if (typeof globalThis.document !== "undefined") {
|
|
84
|
+
let location = globalThis.document.location;
|
|
88
85
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
} else {
|
|
92
|
-
// No "document.location" exist for Wechat mini game platform.
|
|
93
|
-
return hash;
|
|
94
|
-
}
|
|
86
|
+
if (location && location.hash) {
|
|
87
|
+
url = location.hash;
|
|
95
88
|
} else {
|
|
96
|
-
// "document"
|
|
89
|
+
// No "document.location" exist for Wechat mini game platform.
|
|
97
90
|
return hash;
|
|
98
91
|
}
|
|
99
92
|
} else {
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
if (index !== -1) {
|
|
103
|
-
url = url.slice(index, url.length);
|
|
104
|
-
} else {
|
|
105
|
-
return hash;
|
|
106
|
-
}
|
|
93
|
+
// "document" undefined on node.js
|
|
94
|
+
return hash;
|
|
107
95
|
}
|
|
96
|
+
} else {
|
|
97
|
+
// never cache if a url is passed as parameter
|
|
98
|
+
let index = url.indexOf("#");
|
|
99
|
+
if (index !== -1) {
|
|
100
|
+
url = url.slice(index, url.length);
|
|
101
|
+
} else {
|
|
102
|
+
return hash;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
108
105
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return hash;
|
|
118
|
-
},
|
|
106
|
+
// parse the url
|
|
107
|
+
url.slice(1).split("&").filter((value) => value !== "").forEach((value) => {
|
|
108
|
+
let kv = value.split("=");
|
|
109
|
+
let k = kv.shift();
|
|
110
|
+
let v = kv.join("=");
|
|
111
|
+
hash[k] = v || true;
|
|
112
|
+
});
|
|
119
113
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* the idea here being to have a unique ID
|
|
123
|
-
* per level / object
|
|
124
|
-
* @ignore
|
|
125
|
-
*/
|
|
126
|
-
resetGUID : function (base, index = 0) {
|
|
127
|
-
// also ensure it's only 8bit ASCII characters
|
|
128
|
-
GUID_base = toHex(base.toString().toUpperCase());
|
|
129
|
-
GUID_index = index;
|
|
130
|
-
},
|
|
114
|
+
return hash;
|
|
115
|
+
}
|
|
131
116
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
117
|
+
/**
|
|
118
|
+
* reset the GUID Base Name
|
|
119
|
+
* the idea here being to have a unique ID
|
|
120
|
+
* per level / object
|
|
121
|
+
* @ignore
|
|
122
|
+
*/
|
|
123
|
+
function resetGUID(base, index = 0) {
|
|
124
|
+
// also ensure it's only 8bit ASCII characters
|
|
125
|
+
GUID_base = toHex(base.toString().toUpperCase());
|
|
126
|
+
GUID_index = index;
|
|
127
|
+
}
|
|
143
128
|
|
|
144
|
-
|
|
129
|
+
/**
|
|
130
|
+
* create and return a very simple GUID
|
|
131
|
+
* Game Unique ID
|
|
132
|
+
* @ignore
|
|
133
|
+
*/
|
|
134
|
+
function createGUID(index = 1) {
|
|
135
|
+
// to cover the case of undefined id for groups
|
|
136
|
+
GUID_index += index;
|
|
137
|
+
return GUID_base + "-" + (index || GUID_index);
|
|
138
|
+
}
|
|
145
139
|
|
|
146
|
-
export {
|
|
140
|
+
export { checkVersion, createGUID, getUriFragment, resetGUID };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.2.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,7 +8,7 @@
|
|
|
8
8
|
import { emit, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONSCROLL, VIDEO_INIT } from '../system/event.js';
|
|
9
9
|
import { game, initialized } from '../index.js';
|
|
10
10
|
import { offscreenCanvas, screenOrientation } from '../system/device.js';
|
|
11
|
-
import
|
|
11
|
+
import { throttle } from '../utils/function.js';
|
|
12
12
|
import { CANVAS as CANVAS$1, WEBGL as WEBGL$1, AUTO as AUTO$1 } from '../const.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -105,7 +105,7 @@ function init(width, height, options) {
|
|
|
105
105
|
//add a channel for the onresize/onorientationchange event
|
|
106
106
|
globalThis.addEventListener(
|
|
107
107
|
"resize",
|
|
108
|
-
|
|
108
|
+
throttle(
|
|
109
109
|
(e) => {
|
|
110
110
|
emit(WINDOW_ONRESIZE, e);
|
|
111
111
|
}, 100
|
|
@@ -137,7 +137,7 @@ function init(width, height, options) {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
// Automatically update relative canvas position on scroll
|
|
140
|
-
globalThis.addEventListener("scroll",
|
|
140
|
+
globalThis.addEventListener("scroll", throttle((e) => {
|
|
141
141
|
emit(WINDOW_ONSCROLL, e);
|
|
142
142
|
}, 100), false);
|
|
143
143
|
|