melonjs 14.0.2 → 14.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +10 -0
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +10 -0
- package/dist/melonjs.mjs/_virtual/earcut.js +10 -0
- package/dist/melonjs.mjs/_virtual/howler.js +10 -0
- package/dist/melonjs.mjs/_virtual/index.js +10 -0
- package/dist/melonjs.mjs/_virtual/index2.js +10 -0
- package/dist/melonjs.mjs/_virtual/multimap.js +10 -0
- package/dist/melonjs.mjs/_virtual/setmultimap.js +10 -0
- package/dist/melonjs.mjs/application/application.js +238 -0
- package/dist/melonjs.mjs/audio/audio.js +536 -0
- package/dist/melonjs.mjs/camera/camera2d.js +731 -0
- package/dist/melonjs.mjs/entity/entity.js +247 -0
- package/dist/melonjs.mjs/game.js +29 -0
- package/dist/melonjs.mjs/geometries/ellipse.js +274 -0
- package/dist/melonjs.mjs/geometries/line.js +115 -0
- package/dist/melonjs.mjs/geometries/path2d.js +318 -0
- package/dist/melonjs.mjs/geometries/point.js +88 -0
- package/dist/melonjs.mjs/geometries/poly.js +498 -0
- package/dist/melonjs.mjs/geometries/rectangle.js +374 -0
- package/dist/melonjs.mjs/geometries/roundrect.js +167 -0
- package/dist/melonjs.mjs/index.js +248 -0
- package/dist/melonjs.mjs/input/gamepad.js +501 -0
- package/dist/melonjs.mjs/input/input.js +26 -0
- package/dist/melonjs.mjs/input/keyboard.js +470 -0
- package/dist/melonjs.mjs/input/pointer.js +393 -0
- package/dist/melonjs.mjs/input/pointerevent.js +818 -0
- package/dist/melonjs.mjs/lang/deprecated.js +157 -0
- package/dist/melonjs.mjs/level/level.js +297 -0
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +141 -0
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +446 -0
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +193 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +636 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +309 -0
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +81 -0
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +504 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +218 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +155 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +124 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +107 -0
- package/dist/melonjs.mjs/loader/loader.js +801 -0
- package/dist/melonjs.mjs/loader/loadingscreen.js +120 -0
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +11 -0
- package/dist/melonjs.mjs/math/color.js +616 -0
- package/dist/melonjs.mjs/math/math.js +218 -0
- package/dist/melonjs.mjs/math/matrix2.js +501 -0
- package/dist/melonjs.mjs/math/matrix3.js +679 -0
- package/dist/melonjs.mjs/math/observable_vector2.js +469 -0
- package/dist/melonjs.mjs/math/observable_vector3.js +559 -0
- package/dist/melonjs.mjs/math/vector2.js +526 -0
- package/dist/melonjs.mjs/math/vector3.js +567 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +73 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +21 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +324 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +69 -0
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +691 -0
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +350 -0
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3241 -0
- package/dist/melonjs.mjs/particles/emitter.js +265 -0
- package/dist/melonjs.mjs/particles/particle.js +186 -0
- package/dist/melonjs.mjs/particles/settings.js +319 -0
- package/dist/melonjs.mjs/physics/body.js +702 -0
- package/dist/melonjs.mjs/physics/bounds.js +459 -0
- package/dist/melonjs.mjs/physics/collision.js +132 -0
- package/dist/melonjs.mjs/physics/detector.js +194 -0
- package/dist/melonjs.mjs/physics/quadtree.js +394 -0
- package/dist/melonjs.mjs/physics/response.js +57 -0
- package/dist/melonjs.mjs/physics/sat.js +483 -0
- package/dist/melonjs.mjs/physics/world.js +219 -0
- package/dist/melonjs.mjs/plugin/plugin.js +141 -0
- package/dist/melonjs.mjs/renderable/collectable.js +60 -0
- package/dist/melonjs.mjs/renderable/colorlayer.js +78 -0
- package/dist/melonjs.mjs/renderable/container.js +1016 -0
- package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
- package/dist/melonjs.mjs/renderable/imagelayer.js +305 -0
- package/dist/melonjs.mjs/renderable/light2d.js +155 -0
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +246 -0
- package/dist/melonjs.mjs/renderable/renderable.js +781 -0
- package/dist/melonjs.mjs/renderable/sprite.js +653 -0
- package/dist/melonjs.mjs/renderable/trigger.js +156 -0
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +212 -0
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +225 -0
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +127 -0
- package/dist/melonjs.mjs/state/stage.js +236 -0
- package/dist/melonjs.mjs/state/state.js +596 -0
- package/dist/melonjs.mjs/system/device.js +909 -0
- package/dist/melonjs.mjs/system/dom.js +78 -0
- package/dist/melonjs.mjs/system/event.js +537 -0
- package/dist/melonjs.mjs/system/platform.js +41 -0
- package/dist/melonjs.mjs/system/pooling.js +209 -0
- package/dist/melonjs.mjs/system/save.js +157 -0
- package/dist/melonjs.mjs/system/timer.js +286 -0
- package/dist/melonjs.mjs/text/bitmaptext.js +363 -0
- package/dist/melonjs.mjs/text/bitmaptextdata.js +198 -0
- package/dist/melonjs.mjs/text/glyph.js +65 -0
- package/dist/melonjs.mjs/text/text.js +452 -0
- package/dist/melonjs.mjs/text/textmetrics.js +175 -0
- package/dist/melonjs.mjs/text/textstyle.js +23 -0
- package/dist/melonjs.mjs/tweens/easing.js +336 -0
- package/dist/melonjs.mjs/tweens/interpolation.js +112 -0
- package/dist/melonjs.mjs/tweens/tween.js +479 -0
- package/dist/melonjs.mjs/utils/agent.js +76 -0
- package/dist/melonjs.mjs/utils/array.js +63 -0
- package/dist/melonjs.mjs/utils/file.js +42 -0
- package/dist/melonjs.mjs/utils/function.js +70 -0
- package/dist/melonjs.mjs/utils/string.js +82 -0
- package/dist/melonjs.mjs/utils/utils.js +173 -0
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +806 -0
- package/dist/melonjs.mjs/video/renderer.js +410 -0
- package/dist/melonjs.mjs/video/texture/atlas.js +519 -0
- package/dist/melonjs.mjs/video/texture/cache.js +143 -0
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +144 -0
- package/dist/melonjs.mjs/video/video.js +462 -0
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +142 -0
- package/dist/melonjs.mjs/video/webgl/glshader.js +167 -0
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +10 -0
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +25 -0
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -0
- package/dist/melonjs.mjs/video/webgl/utils/program.js +67 -0
- package/dist/melonjs.mjs/video/webgl/utils/string.js +25 -0
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +92 -0
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +494 -0
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1035 -0
- package/dist/melonjs.module.d.ts +1298 -1359
- package/dist/melonjs.module.js +2072 -3520
- package/package.json +21 -16
- package/src/application/application.js +4 -5
- package/src/audio/audio.js +32 -32
- package/src/camera/camera2d.js +32 -33
- package/src/entity/entity.js +18 -19
- package/src/geometries/ellipse.js +17 -18
- package/src/geometries/line.js +6 -7
- package/src/geometries/path2d.js +33 -34
- package/src/geometries/point.js +1 -2
- package/src/geometries/poly.js +16 -18
- package/src/geometries/rectangle.js +19 -20
- package/src/geometries/roundrect.js +9 -10
- package/src/input/gamepad.js +15 -15
- package/src/input/keyboard.js +12 -12
- package/src/input/pointer.js +6 -6
- package/src/input/pointerevent.js +12 -12
- package/src/lang/deprecated.js +12 -12
- package/src/level/level.js +25 -25
- package/src/level/tiled/TMXLayer.js +23 -24
- package/src/level/tiled/TMXTile.js +6 -7
- package/src/level/tiled/TMXTileMap.js +8 -10
- package/src/level/tiled/TMXTileset.js +3 -4
- package/src/level/tiled/TMXTilesetGroup.js +1 -2
- package/src/level/tiled/TMXUtils.js +5 -5
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +20 -21
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -2
- package/src/loader/loader.js +20 -20
- package/src/math/color.js +21 -22
- package/src/math/math.js +16 -16
- package/src/math/matrix2.js +17 -18
- package/src/math/matrix3.js +26 -27
- package/src/math/observable_vector2.js +15 -16
- package/src/math/observable_vector3.js +17 -18
- package/src/math/vector2.js +10 -11
- package/src/math/vector3.js +11 -12
- package/src/particles/emitter.js +7 -8
- package/src/particles/particle.js +3 -4
- package/src/physics/body.js +29 -30
- package/src/physics/bounds.js +10 -10
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +6 -6
- package/src/physics/quadtree.js +18 -23
- package/src/physics/sat.js +31 -31
- package/src/physics/world.js +6 -7
- package/src/plugin/plugin.js +5 -5
- package/src/renderable/collectable.js +4 -6
- package/src/renderable/colorlayer.js +6 -8
- package/src/renderable/container.js +25 -27
- package/src/renderable/dragndrop.js +14 -14
- package/src/renderable/imagelayer.js +14 -15
- package/src/renderable/light2d.js +4 -5
- package/src/renderable/nineslicesprite.js +17 -18
- package/src/renderable/renderable.js +26 -28
- package/src/renderable/sprite.js +29 -30
- package/src/renderable/trigger.js +16 -17
- package/src/renderable/ui/uibaseelement.js +8 -9
- package/src/renderable/ui/uispriteelement.js +8 -8
- package/src/renderable/ui/uitextbutton.js +15 -15
- package/src/state/stage.js +8 -9
- package/src/state/state.js +17 -17
- package/src/system/device.js +11 -11
- package/src/system/event.js +10 -10
- package/src/system/pooling.js +9 -9
- package/src/system/save.js +2 -2
- package/src/system/timer.js +10 -10
- package/src/text/bitmaptext.js +19 -20
- package/src/text/bitmaptextdata.js +3 -4
- package/src/text/glyph.js +1 -2
- package/src/text/text.js +24 -25
- package/src/text/textmetrics.js +9 -10
- package/src/tweens/tween.js +20 -21
- package/src/utils/agent.js +5 -5
- package/src/utils/array.js +4 -4
- package/src/utils/file.js +2 -2
- package/src/utils/function.js +6 -6
- package/src/utils/string.js +5 -5
- package/src/utils/utils.js +4 -4
- package/src/video/canvas/canvas_renderer.js +72 -73
- package/src/video/renderer.js +27 -28
- package/src/video/texture/atlas.js +22 -22
- package/src/video/texture/canvas_texture.js +9 -9
- package/src/video/video.js +17 -17
- package/src/video/webgl/buffer/vertex.js +1 -2
- package/src/video/webgl/glshader.js +12 -12
- package/src/video/webgl/webgl_compositor.js +42 -43
- package/src/video/webgl/webgl_renderer.js +76 -77
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.1
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import { once, DOM_READY, emit } from './event.js';
|
|
9
|
+
|
|
10
|
+
// track if DOMContentLoaded was called already
|
|
11
|
+
let readyBound = false;
|
|
12
|
+
|
|
13
|
+
// is the DOM ready ?
|
|
14
|
+
let isDOMReady = false;
|
|
15
|
+
|
|
16
|
+
// check if the dom is ready
|
|
17
|
+
function _domReady() {
|
|
18
|
+
|
|
19
|
+
// Make sure that the DOM is not already loaded
|
|
20
|
+
if (!isDOMReady) {
|
|
21
|
+
// be sure document.body is there
|
|
22
|
+
if (typeof globalThis.document !== "undefined" && !globalThis.document.body) {
|
|
23
|
+
return setTimeout(_domReady, 13);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// clean up loading event
|
|
27
|
+
if (typeof globalThis.document !== "undefined" && typeof globalThis.document.removeEventListener === "function") {
|
|
28
|
+
globalThis.document.removeEventListener(
|
|
29
|
+
"DOMContentLoaded",
|
|
30
|
+
_domReady,
|
|
31
|
+
false
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (typeof globalThis.removeEventListener === "function") {
|
|
36
|
+
// remove the event on globalThis.onload (always added in `onReady`)
|
|
37
|
+
globalThis.removeEventListener("load", _domReady, false);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// execute all callbacks
|
|
41
|
+
emit(DOM_READY);
|
|
42
|
+
|
|
43
|
+
// Remember that the DOM is ready
|
|
44
|
+
isDOMReady = true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event
|
|
49
|
+
function DOMContentLoaded(fn) {
|
|
50
|
+
// If the DOM is already ready
|
|
51
|
+
if (isDOMReady) {
|
|
52
|
+
// Execute the function immediately
|
|
53
|
+
fn.call(globalThis, []);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// else add the function to the DOM_READY event
|
|
57
|
+
once(DOM_READY, fn, globalThis);
|
|
58
|
+
// bind dom load event if not done yet
|
|
59
|
+
if (!readyBound) {
|
|
60
|
+
// directly call domReady if document is already "ready"
|
|
61
|
+
if (((typeof process !== "undefined") && (process.release.name === "node")) || (typeof globalThis.document !== "undefined" && globalThis.document.readyState === "complete")) {
|
|
62
|
+
// defer the fn call to ensure our script is fully loaded
|
|
63
|
+
globalThis.setTimeout(_domReady, 0);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
if (typeof globalThis.document !== "undefined" && typeof globalThis.document.addEventListener === "function") {
|
|
67
|
+
// Use the handy event callback
|
|
68
|
+
globalThis.document.addEventListener("DOMContentLoaded", _domReady, false);
|
|
69
|
+
}
|
|
70
|
+
// A fallback to globalThis.onload, that will always work
|
|
71
|
+
globalThis.addEventListener("load", _domReady, false);
|
|
72
|
+
}
|
|
73
|
+
readyBound = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { DOMContentLoaded };
|
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.1
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import EventEmitter from '../node_modules/eventemitter3/index.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* an event system based on nodeJS EventEmitter interface
|
|
12
|
+
* @namespace event
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
// internal instance of the event emiter
|
|
16
|
+
var eventEmitter = new EventEmitter();
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* event when the DOM is Ready is booting
|
|
20
|
+
* @public
|
|
21
|
+
* @constant
|
|
22
|
+
* @type {string}
|
|
23
|
+
* @name DOM_READY
|
|
24
|
+
* @memberof event
|
|
25
|
+
* @see event.on
|
|
26
|
+
*/
|
|
27
|
+
const DOM_READY = "dom_ready";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* event when the system is booting
|
|
31
|
+
* @public
|
|
32
|
+
* @constant
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @name BOOT
|
|
35
|
+
* @memberof event
|
|
36
|
+
* @see event.on
|
|
37
|
+
*/
|
|
38
|
+
const BOOT = "me.boot";
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* event when the game is paused <br>
|
|
42
|
+
* Data passed : none <br>
|
|
43
|
+
* @public
|
|
44
|
+
* @constant
|
|
45
|
+
* @type {string}
|
|
46
|
+
* @name STATE_PAUSE
|
|
47
|
+
* @memberof event
|
|
48
|
+
* @see event.on
|
|
49
|
+
*/
|
|
50
|
+
const STATE_PAUSE = "me.state.onPause";
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* event for when the game is resumed <br>
|
|
54
|
+
* Data passed : {number} time in ms the game was paused
|
|
55
|
+
* @public
|
|
56
|
+
* @constant
|
|
57
|
+
* @type {string}
|
|
58
|
+
* @name STATE_RESUME
|
|
59
|
+
* @memberof event
|
|
60
|
+
* @see event.on
|
|
61
|
+
*/
|
|
62
|
+
const STATE_RESUME = "me.state.onResume";
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* event when the game is stopped <br>
|
|
66
|
+
* Data passed : none <br>
|
|
67
|
+
* @public
|
|
68
|
+
* @constant
|
|
69
|
+
* @type {string}
|
|
70
|
+
* @name STATE_STOP
|
|
71
|
+
* @memberof event
|
|
72
|
+
* @see event.on
|
|
73
|
+
*/
|
|
74
|
+
const STATE_STOP = "me.state.onStop";
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* event for when the game is restarted <br>
|
|
78
|
+
* Data passed : {number} time in ms the game was stopped
|
|
79
|
+
* @public
|
|
80
|
+
* @constant
|
|
81
|
+
* @type {string}
|
|
82
|
+
* @name STATE_RESTART
|
|
83
|
+
* @memberof event
|
|
84
|
+
* @see event.on
|
|
85
|
+
*/
|
|
86
|
+
const STATE_RESTART = "me.state.onRestart";
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* event for when the changing to a different stage
|
|
90
|
+
* @public
|
|
91
|
+
* @constant
|
|
92
|
+
* @type {string}
|
|
93
|
+
* @name STATE_CHANGE
|
|
94
|
+
* @memberof event
|
|
95
|
+
* @see event.on
|
|
96
|
+
*/
|
|
97
|
+
const STATE_CHANGE = "me.state.onChange";
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* event for when the video is initialized<br>
|
|
101
|
+
* Data passed : none <br>
|
|
102
|
+
* @public
|
|
103
|
+
* @constant
|
|
104
|
+
* @type {string}
|
|
105
|
+
* @name VIDEO_INIT
|
|
106
|
+
* @memberof event
|
|
107
|
+
* @see video.init
|
|
108
|
+
* @see event.on
|
|
109
|
+
*/
|
|
110
|
+
const VIDEO_INIT = "me.video.onInit";
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* event for when the game manager is initialized <br>
|
|
114
|
+
* Data passed : none <br>
|
|
115
|
+
* @public
|
|
116
|
+
* @constant
|
|
117
|
+
* @type {string}
|
|
118
|
+
* @name GAME_INIT
|
|
119
|
+
* @memberof event
|
|
120
|
+
* @see event.on
|
|
121
|
+
*/
|
|
122
|
+
const GAME_INIT = "me.game.onInit";
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* event for when the game manager is resetted <br>
|
|
126
|
+
* Data passed : none <br>
|
|
127
|
+
* @public
|
|
128
|
+
* @constant
|
|
129
|
+
* @type {string}
|
|
130
|
+
* @name GAME_RESET
|
|
131
|
+
* @memberof event
|
|
132
|
+
* @see event.on
|
|
133
|
+
*/
|
|
134
|
+
const GAME_RESET = "me.game.onReset";
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* event for when the engine is about to start a new game loop
|
|
138
|
+
* Data passed : {number} time the current time stamp
|
|
139
|
+
* @public
|
|
140
|
+
* @constant
|
|
141
|
+
* @type {string}
|
|
142
|
+
* @name GAME_BEFORE_UPDATE
|
|
143
|
+
* @memberof event
|
|
144
|
+
* @see event.on
|
|
145
|
+
*/
|
|
146
|
+
const GAME_BEFORE_UPDATE = "me.game.beforeUpdate";
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* event for the end of the update loop
|
|
150
|
+
* Data passed : {number} time the current time stamp
|
|
151
|
+
* @public
|
|
152
|
+
* @constant
|
|
153
|
+
* @type {string}
|
|
154
|
+
* @name GAME_AFTER_UPDATE
|
|
155
|
+
* @memberof event
|
|
156
|
+
* @see event.on
|
|
157
|
+
*/
|
|
158
|
+
const GAME_AFTER_UPDATE = "me.game.afterUpdate";
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Event for when the game is updated (will be impacted by frame skip, frame interpolation and pause/resume state) <br>
|
|
162
|
+
* Data passed : {number} time the current time stamp
|
|
163
|
+
* @public
|
|
164
|
+
* @constant
|
|
165
|
+
* @type {string}
|
|
166
|
+
* @name GAME_UPDATE
|
|
167
|
+
* @memberof event
|
|
168
|
+
* @see event.on
|
|
169
|
+
*/
|
|
170
|
+
const GAME_UPDATE = "me.game.onUpdate";
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Event for the end of the draw loop
|
|
174
|
+
* Data passed : {number} time the current time stamp
|
|
175
|
+
* @public
|
|
176
|
+
* @constant
|
|
177
|
+
* @type {string}
|
|
178
|
+
* @name GAME_BEFORE_DRAW
|
|
179
|
+
* @memberof event
|
|
180
|
+
* @see event.on
|
|
181
|
+
*/
|
|
182
|
+
const GAME_BEFORE_DRAW = "me.game.beforeDraw";
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Event for the start of the draw loop
|
|
186
|
+
* Data passed : {number} time the current time stamp
|
|
187
|
+
* @public
|
|
188
|
+
* @constant
|
|
189
|
+
* @type {string}
|
|
190
|
+
* @name GAME_AFTER_DRAW
|
|
191
|
+
* @memberof event
|
|
192
|
+
* @see event.on
|
|
193
|
+
*/
|
|
194
|
+
const GAME_AFTER_DRAW = "me.game.afterDraw";
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Event for when a level is loaded <br>
|
|
198
|
+
* Data passed : {string} Level Name
|
|
199
|
+
* @public
|
|
200
|
+
* @constant
|
|
201
|
+
* @type {string}
|
|
202
|
+
* @name LEVEL_LOADED
|
|
203
|
+
* @memberof event
|
|
204
|
+
* @see event.on
|
|
205
|
+
*/
|
|
206
|
+
const LEVEL_LOADED = "me.game.onLevelLoaded";
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Event for when everything has loaded <br>
|
|
210
|
+
* Data passed : none <br>
|
|
211
|
+
* @public
|
|
212
|
+
* @constant
|
|
213
|
+
* @type {string}
|
|
214
|
+
* @name LOADER_COMPLETE
|
|
215
|
+
* @memberof event
|
|
216
|
+
* @see event.on
|
|
217
|
+
*/
|
|
218
|
+
const LOADER_COMPLETE = "me.loader.onload";
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Event for displaying a load progress indicator <br>
|
|
222
|
+
* Data passed : {number} [0 .. 1], {Resource} resource object<br>
|
|
223
|
+
* @public
|
|
224
|
+
* @constant
|
|
225
|
+
* @type {string}
|
|
226
|
+
* @name LOADER_PROGRESS
|
|
227
|
+
* @memberof event
|
|
228
|
+
* @see event.on
|
|
229
|
+
*/
|
|
230
|
+
const LOADER_PROGRESS = "me.loader.onProgress";
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Event for pressing a binded key <br>
|
|
234
|
+
* Data passed : {string} user-defined action, {number} keyCode,
|
|
235
|
+
* {boolean} edge state <br>
|
|
236
|
+
* Edge-state is for detecting "locked" key bindings. When a locked key
|
|
237
|
+
* is pressed and held, the first event will have the third argument
|
|
238
|
+
* set true. Subsequent events will continue firing with the third
|
|
239
|
+
* argument set false.
|
|
240
|
+
* @public
|
|
241
|
+
* @constant
|
|
242
|
+
* @type {string}
|
|
243
|
+
* @name KEYDOWN
|
|
244
|
+
* @memberof event
|
|
245
|
+
* @see event.on
|
|
246
|
+
* @example
|
|
247
|
+
* me.input.bindKey(me.input.KEY.X, "jump", true); // Edge-triggered
|
|
248
|
+
* me.input.bindKey(me.input.KEY.Z, "shoot"); // Level-triggered
|
|
249
|
+
* me.event.on(me.event.KEYDOWN, (action, keyCode, edge) => {
|
|
250
|
+
* // Checking bound keys
|
|
251
|
+
* if (action === "jump") {
|
|
252
|
+
* if (edge) {
|
|
253
|
+
* this.doJump();
|
|
254
|
+
* }
|
|
255
|
+
*
|
|
256
|
+
* // Make character fall slower when holding the jump key
|
|
257
|
+
* this.vel.y = this.body.gravity;
|
|
258
|
+
* }
|
|
259
|
+
* });
|
|
260
|
+
*/
|
|
261
|
+
const KEYDOWN = "me.input.keydown";
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Event for releasing a binded key <br>
|
|
265
|
+
* Data passed : {string} user-defined action, {number} keyCode
|
|
266
|
+
* @public
|
|
267
|
+
* @constant
|
|
268
|
+
* @type {string}
|
|
269
|
+
* @name KEYUP
|
|
270
|
+
* @memberof event
|
|
271
|
+
* @see event.on
|
|
272
|
+
* @example
|
|
273
|
+
* me.event.on(me.event.KEYUP, (action, keyCode) => {
|
|
274
|
+
* // Checking unbound keys
|
|
275
|
+
* if (keyCode == me.input.KEY.ESC) {
|
|
276
|
+
* if (me.state.isPaused()) {
|
|
277
|
+
* me.state.resume();
|
|
278
|
+
* }
|
|
279
|
+
* else {
|
|
280
|
+
* me.state.pause();
|
|
281
|
+
* }
|
|
282
|
+
* }
|
|
283
|
+
* });
|
|
284
|
+
*/
|
|
285
|
+
const KEYUP = "me.input.keyup";
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Event for when a gamepad is connected <br>
|
|
289
|
+
* Data passed : {object} gamepad object
|
|
290
|
+
* @public
|
|
291
|
+
* @constant
|
|
292
|
+
* @type {string}
|
|
293
|
+
* @name GAMEPAD_CONNECTED
|
|
294
|
+
* @memberof event
|
|
295
|
+
* @see event.on
|
|
296
|
+
*/
|
|
297
|
+
const GAMEPAD_CONNECTED = "gamepad.connected";
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Event for when a gamepad is disconnected <br>
|
|
301
|
+
* Data passed : {object} gamepad object
|
|
302
|
+
* @public
|
|
303
|
+
* @constant
|
|
304
|
+
* @type {string}
|
|
305
|
+
* @name GAMEPAD_DISCONNECTED
|
|
306
|
+
* @memberof event
|
|
307
|
+
* @see event.on
|
|
308
|
+
*/
|
|
309
|
+
const GAMEPAD_DISCONNECTED = "gamepad.disconnected";
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Event for when gamepad button/axis state is updated <br>
|
|
313
|
+
* Data passed : {number} index <br>
|
|
314
|
+
* Data passed : {string} type : "axes" or "buttons" <br>
|
|
315
|
+
* Data passed : {number} button <br>
|
|
316
|
+
* Data passed : {number} current.value <br>
|
|
317
|
+
* Data passed : {boolean} current.pressed
|
|
318
|
+
* @public
|
|
319
|
+
* @constant
|
|
320
|
+
* @type {string}
|
|
321
|
+
* @name GAMEPAD_UPDATE
|
|
322
|
+
* @memberof event
|
|
323
|
+
* @see event.on
|
|
324
|
+
*/
|
|
325
|
+
const GAMEPAD_UPDATE = "gamepad.update";
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Event for pointermove events on the screen area <br>
|
|
329
|
+
* Data passed : {me.Pointer} a Pointer object
|
|
330
|
+
* @public
|
|
331
|
+
* @constant
|
|
332
|
+
* @type {string}
|
|
333
|
+
* @name POINTERMOVE
|
|
334
|
+
* @memberof event
|
|
335
|
+
* @see event.on
|
|
336
|
+
*/
|
|
337
|
+
const POINTERMOVE = "me.event.pointermove";
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Event for onPointerLockChange event <br>
|
|
341
|
+
* Data passed : {boolean} pointer lock status (true/false)
|
|
342
|
+
* @public
|
|
343
|
+
* @constant
|
|
344
|
+
* @type {string}
|
|
345
|
+
* @name POINTERLOCKCHANGE
|
|
346
|
+
* @memberof event
|
|
347
|
+
* @see event.on
|
|
348
|
+
*/
|
|
349
|
+
const POINTERLOCKCHANGE = "me.event.pointerlockChange";
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Event for dragstart events on a Draggable entity <br>
|
|
353
|
+
* Data passed:
|
|
354
|
+
* {object} the drag event <br>
|
|
355
|
+
* {object} the Draggable entity
|
|
356
|
+
* @public
|
|
357
|
+
* @constant
|
|
358
|
+
* @type {string}
|
|
359
|
+
* @name DRAGSTART
|
|
360
|
+
* @memberof event
|
|
361
|
+
* @see event.on
|
|
362
|
+
*/
|
|
363
|
+
const DRAGSTART = "me.game.dragstart";
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Event for dragend events on a Draggable entity <br>
|
|
367
|
+
* Data passed:
|
|
368
|
+
* {object} the drag event <br>
|
|
369
|
+
* {object} the Draggable entity
|
|
370
|
+
* @public
|
|
371
|
+
* @constant
|
|
372
|
+
* @type {string}
|
|
373
|
+
* @name DRAGEND
|
|
374
|
+
* @memberof event
|
|
375
|
+
* @see event.on
|
|
376
|
+
*/
|
|
377
|
+
const DRAGEND = "me.game.dragend";
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Event for when the (browser) window is resized <br>
|
|
381
|
+
* Data passed : {Event} Event object
|
|
382
|
+
* @public
|
|
383
|
+
* @constant
|
|
384
|
+
* @type {string}
|
|
385
|
+
* @name WINDOW_ONRESIZE
|
|
386
|
+
* @memberof event
|
|
387
|
+
* @see event.on
|
|
388
|
+
*/
|
|
389
|
+
const WINDOW_ONRESIZE = "globalThis.onresize";
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Event for when the canvas is resized <br>
|
|
393
|
+
* (this usually follows a WINDOW_ONRESIZE event).<br>
|
|
394
|
+
* Data passed : {number} canvas width <br>
|
|
395
|
+
* Data passed : {number} canvas height
|
|
396
|
+
* @public
|
|
397
|
+
* @constant
|
|
398
|
+
* @type {string}
|
|
399
|
+
* @name CANVAS_ONRESIZE
|
|
400
|
+
* @memberof event
|
|
401
|
+
* @see event.on
|
|
402
|
+
*/
|
|
403
|
+
const CANVAS_ONRESIZE = "canvas.onresize";
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Event for when the viewport is resized <br>
|
|
407
|
+
* (this usually follows a WINDOW_ONRESIZE event, when using the `flex` scaling mode is used and after the viewport was updated).<br>
|
|
408
|
+
* Data passed : {number} viewport width <br>
|
|
409
|
+
* Data passed : {number} viewport height <br>
|
|
410
|
+
* Data passed : {Camera2d} a reference to the camera viewport being resized
|
|
411
|
+
* @public
|
|
412
|
+
* @constant
|
|
413
|
+
* @type {string}
|
|
414
|
+
* @name VIEWPORT_ONRESIZE
|
|
415
|
+
* @memberof event
|
|
416
|
+
* @see event.on
|
|
417
|
+
*/
|
|
418
|
+
const VIEWPORT_ONRESIZE = "viewport.onresize";
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Event for when the device is rotated <br>
|
|
422
|
+
* Data passed : {Event} Event object <br>
|
|
423
|
+
* @public
|
|
424
|
+
* @constant
|
|
425
|
+
* @type {string}
|
|
426
|
+
* @name WINDOW_ONORIENTATION_CHANGE
|
|
427
|
+
* @memberof event
|
|
428
|
+
* @see event.on
|
|
429
|
+
*/
|
|
430
|
+
const WINDOW_ONORIENTATION_CHANGE = "globalThis.orientationchange";
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Event for when the (browser) window is scrolled <br>
|
|
434
|
+
* Data passed : {Event} Event object
|
|
435
|
+
* @public
|
|
436
|
+
* @constant
|
|
437
|
+
* @type {string}
|
|
438
|
+
* @name WINDOW_ONSCROLL
|
|
439
|
+
* @memberof event
|
|
440
|
+
* @see event.on
|
|
441
|
+
*/
|
|
442
|
+
const WINDOW_ONSCROLL = "globalThis.onscroll";
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Event for when the viewport position is updated <br>
|
|
446
|
+
* Data passed : {me.Vector2d} viewport position vector
|
|
447
|
+
* @public
|
|
448
|
+
* @constant
|
|
449
|
+
* @type {string}
|
|
450
|
+
* @name VIEWPORT_ONCHANGE
|
|
451
|
+
* @memberof event
|
|
452
|
+
* @see event.on
|
|
453
|
+
*/
|
|
454
|
+
const VIEWPORT_ONCHANGE = "viewport.onchange";
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Event for when the current context is lost <br>
|
|
458
|
+
* Data passed : {me.Renderer} the current renderer instance
|
|
459
|
+
* @public
|
|
460
|
+
* @constant
|
|
461
|
+
* @type {string}
|
|
462
|
+
* @name WEBGL_ONCONTEXT_LOST
|
|
463
|
+
* @memberof event
|
|
464
|
+
* @see event.on
|
|
465
|
+
*/
|
|
466
|
+
const ONCONTEXT_LOST = "renderer.contextlost";
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Event for when the current context is restored <br>
|
|
470
|
+
* Data passed : {me.Renderer} the current renderer instance`
|
|
471
|
+
* @public
|
|
472
|
+
* @constant
|
|
473
|
+
* @type {string}
|
|
474
|
+
* @name ONCONTEXT_RESTORED
|
|
475
|
+
* @memberof event
|
|
476
|
+
* @see event.on
|
|
477
|
+
*/
|
|
478
|
+
const ONCONTEXT_RESTORED = "renderer.contextrestored";
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* calls each of the listeners registered for a given event.
|
|
482
|
+
* @function event.emit
|
|
483
|
+
* @param {string|symbol} eventName - The event name.
|
|
484
|
+
* @param {object} [...arguments] - arguments to be passed to all listeners
|
|
485
|
+
* @returns {boolean} true if the event had listeners, false otherwise.
|
|
486
|
+
* @example
|
|
487
|
+
* me.event.emit("event-name", a, b, c);
|
|
488
|
+
*/
|
|
489
|
+
function emit(eventName, ...args) {
|
|
490
|
+
return eventEmitter.emit(eventName, ...args);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Add a listener for a given event.
|
|
495
|
+
* @function event.on
|
|
496
|
+
* @param {string|symbol} eventName - The event name.
|
|
497
|
+
* @param {Function} listener - The listener function.
|
|
498
|
+
* @param {*} [context=this] - The context to invoke the listener with.
|
|
499
|
+
* @returns {EventEmitter} `this`.
|
|
500
|
+
* @public
|
|
501
|
+
* @example
|
|
502
|
+
* me.event.on("event-name", myFunction, this);
|
|
503
|
+
*/
|
|
504
|
+
function on(eventName, listener, context) {
|
|
505
|
+
return eventEmitter.on(eventName, listener, context);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Add a one-time listener for a given event.
|
|
510
|
+
* @function event.once
|
|
511
|
+
* @param {string|symbol} eventName - The event name.
|
|
512
|
+
* @param {Function} listener - The listener function.
|
|
513
|
+
* @param {*} [context=this] - The context to invoke the listener with.
|
|
514
|
+
* @returns {EventEmitter} `this`.
|
|
515
|
+
* @public
|
|
516
|
+
* @example
|
|
517
|
+
* me.event.once("event-name", myFunction, this);
|
|
518
|
+
*/
|
|
519
|
+
function once(eventName, listener, context) {
|
|
520
|
+
return eventEmitter.once(eventName, listener, context);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* remove the given listener for a given event.
|
|
525
|
+
* @function event.off
|
|
526
|
+
* @param {string|symbol} eventName - The event name.
|
|
527
|
+
* @param {Function} listener - The listener function.
|
|
528
|
+
* @returns {EventEmitter} `this`.
|
|
529
|
+
* @public
|
|
530
|
+
* @example
|
|
531
|
+
* me.event.off("event-name", myFunction);
|
|
532
|
+
*/
|
|
533
|
+
function off(eventName, listener) {
|
|
534
|
+
return eventEmitter.off(eventName, listener);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
export { BOOT, CANVAS_ONRESIZE, DOM_READY, DRAGEND, DRAGSTART, GAMEPAD_CONNECTED, GAMEPAD_DISCONNECTED, GAMEPAD_UPDATE, GAME_AFTER_DRAW, GAME_AFTER_UPDATE, GAME_BEFORE_DRAW, GAME_BEFORE_UPDATE, GAME_INIT, GAME_RESET, GAME_UPDATE, KEYDOWN, KEYUP, LEVEL_LOADED, LOADER_COMPLETE, LOADER_PROGRESS, ONCONTEXT_LOST, ONCONTEXT_RESTORED, POINTERLOCKCHANGE, POINTERMOVE, STATE_CHANGE, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_STOP, VIDEO_INIT, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONRESIZE, WINDOW_ONSCROLL, emit, off, on, once };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.1
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The device platform type
|
|
10
|
+
* @namespace platform
|
|
11
|
+
* @memberof device
|
|
12
|
+
* @property {string} ua the user agent string for the current device
|
|
13
|
+
* @property {boolean} iOS `true` if the device is an iOS platform
|
|
14
|
+
* @property {boolean} android `true` if the device is an Android platform
|
|
15
|
+
* @property {boolean} android2 `true` if the device is an Android 2.x platform
|
|
16
|
+
* @property {boolean} linux `true` if the device is a Linux platform
|
|
17
|
+
* @property {boolean} chromeOS `true` if the device is running on ChromeOS.
|
|
18
|
+
* @property {boolean} wp `true` if the device is a Windows Phone platform
|
|
19
|
+
* @property {boolean} BlackBerry`true` if the device is a BlackBerry platform
|
|
20
|
+
* @property {boolean} Kindle`true` if the device is a Kindle platform
|
|
21
|
+
* @property {boolean} ejecta `true` if running under Ejecta
|
|
22
|
+
* @property {boolean} isWeixin `true` if running under Wechat
|
|
23
|
+
* @property {boolean} nodeJS `true` if running under node.js
|
|
24
|
+
* @property {boolean} isMobile `true` if a mobile device
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
const ua = typeof globalThis.navigator !== "undefined" ? globalThis.navigator.userAgent : "";
|
|
28
|
+
const iOS = /iPhone|iPad|iPod/i.test(ua);
|
|
29
|
+
const android = /Android/i.test(ua);
|
|
30
|
+
const android2 = /Android 2/i.test(ua);
|
|
31
|
+
const linux = /Linux/i.test(ua);
|
|
32
|
+
const chromeOS = /CrOS/.test(ua);
|
|
33
|
+
const wp = /Windows Phone/i.test(ua);
|
|
34
|
+
const BlackBerry = /BlackBerry/i.test(ua);
|
|
35
|
+
const Kindle = /Kindle|Silk.*Mobile Safari/i.test(ua);
|
|
36
|
+
const ejecta = (typeof globalThis.ejecta !== "undefined");
|
|
37
|
+
const isWeixin = /MicroMessenger/i.test(ua);
|
|
38
|
+
const nodeJS = (typeof globalThis.process !== "undefined") && (typeof globalThis.process.release !== "undefined") && (globalThis.process.release.name === "node");
|
|
39
|
+
const isMobile = /Mobi/i.test(ua) || iOS || android || wp || BlackBerry || Kindle || false;
|
|
40
|
+
|
|
41
|
+
export { BlackBerry, Kindle, android, android2, chromeOS, ejecta, iOS, isMobile, isWeixin, linux, nodeJS, ua, wp };
|