melonjs 14.2.0 → 14.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/arraymultimap.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/index2.js +1 -1
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/application/application.js +153 -9
- package/dist/melonjs.mjs/application/header.js +34 -0
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +28 -0
- package/dist/melonjs.mjs/audio/audio.js +1 -1
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/entity/entity.js +1 -1
- package/dist/melonjs.mjs/game.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 +41 -30
- 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 +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +2 -2
- package/dist/melonjs.mjs/lang/deprecated.js +1 -1
- package/dist/melonjs.mjs/level/level.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +2 -2
- 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 +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 +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/loader/loader.js +1 -1
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.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/src/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.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 +1 -1
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +174 -146
- 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 +10 -30
- 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 +3 -87
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
- 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 +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 +2 -2
- package/dist/melonjs.mjs/state/state.js +2 -2
- package/dist/melonjs.mjs/system/device.js +2 -22
- 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/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 +2 -2
- 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 +4 -1
- package/dist/melonjs.mjs/video/renderer.js +8 -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 +3 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +27 -0
- package/dist/melonjs.mjs/video/utils/resize.js +1 -1
- package/dist/melonjs.mjs/video/video.js +15 -147
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -3
- 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 +20 -2
- 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_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +4 -1
- package/dist/melonjs.module.js +20922 -20921
- package/dist/types/application/application.d.ts +144 -0
- package/dist/types/application/header.d.ts +5 -0
- package/dist/types/application/resize.d.ts +5 -0
- package/dist/types/application/settings.d.ts +18 -0
- package/dist/types/audio/audio.d.ts +267 -0
- package/dist/types/camera/camera2d.d.ts +289 -0
- package/dist/types/entity/entity.d.ts +98 -0
- package/{src/game.js → dist/types/game.d.ts} +3 -14
- package/dist/types/geometries/ellipse.d.ts +154 -0
- package/dist/types/geometries/line.d.ts +11 -0
- package/dist/types/geometries/path2d.d.ts +121 -0
- package/dist/types/geometries/point.d.ts +53 -0
- package/dist/types/geometries/poly.d.ts +222 -0
- package/dist/types/geometries/rectangle.d.ts +176 -0
- package/dist/types/geometries/roundrect.d.ts +52 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/input/gamepad.d.ts +95 -0
- package/dist/types/input/input.d.ts +15 -0
- package/dist/types/input/keyboard.d.ts +205 -0
- package/dist/types/input/pointer.d.ts +270 -0
- package/dist/types/input/pointerevent.d.ts +181 -0
- package/dist/types/lang/deprecated.d.ts +53 -0
- package/dist/types/level/level.d.ts +134 -0
- package/dist/types/level/tiled/TMXGroup.d.ts +82 -0
- package/dist/types/level/tiled/TMXLayer.d.ts +180 -0
- package/dist/types/level/tiled/TMXObject.d.ts +195 -0
- package/dist/types/level/tiled/TMXTile.d.ts +78 -0
- package/dist/types/level/tiled/TMXTileMap.d.ts +180 -0
- package/dist/types/level/tiled/TMXTileset.d.ts +94 -0
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +32 -0
- package/dist/types/level/tiled/TMXUtils.d.ts +47 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +87 -0
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +55 -0
- package/dist/types/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +43 -0
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +75 -0
- package/dist/types/level/tiled/renderer/TMXStaggeredRenderer.d.ts +8 -0
- package/dist/types/loader/loader.d.ts +181 -0
- package/dist/types/loader/loadingscreen.d.ts +18 -0
- package/dist/types/math/color.d.ts +170 -0
- package/dist/types/math/math.d.ts +165 -0
- package/dist/types/math/matrix2.d.ts +209 -0
- package/dist/types/math/matrix3.d.ts +236 -0
- package/dist/types/math/observable_vector2.d.ts +278 -0
- package/dist/types/math/observable_vector3.d.ts +277 -0
- package/dist/types/math/vector2.d.ts +327 -0
- package/dist/types/math/vector3.d.ts +332 -0
- package/dist/types/particles/emitter.d.ts +188 -0
- package/dist/types/particles/particle.d.ts +32 -0
- package/dist/types/particles/settings.d.ts +32 -0
- package/dist/types/physics/body.d.ts +330 -0
- package/dist/types/physics/bounds.d.ts +250 -0
- package/dist/types/physics/collision.d.ts +44 -0
- package/dist/types/physics/detector.d.ts +64 -0
- package/dist/types/physics/quadtree.d.ts +79 -0
- package/dist/types/physics/response.d.ts +37 -0
- package/dist/types/physics/sat.d.ts +48 -0
- package/dist/types/physics/world.d.ts +83 -0
- package/dist/types/plugin/plugin.d.ts +10 -0
- package/dist/types/polyfill/console.d.ts +0 -0
- package/dist/types/polyfill/index.d.ts +1 -0
- package/dist/types/polyfill/performance.d.ts +0 -0
- package/dist/types/polyfill/requestAnimationFrame.d.ts +1 -0
- package/dist/types/polyfill/roundrect.d.ts +0 -0
- package/dist/types/renderable/collectable.d.ts +19 -0
- package/dist/types/renderable/colorlayer.d.ts +28 -0
- package/dist/types/renderable/container.d.ts +302 -0
- package/dist/types/renderable/dragndrop.d.ts +118 -0
- package/dist/types/renderable/imagelayer.d.ts +106 -0
- package/dist/types/renderable/light2d.d.ts +58 -0
- package/dist/types/renderable/nineslicesprite.d.ts +59 -0
- package/dist/types/renderable/renderable.d.ts +402 -0
- package/dist/types/renderable/sprite.d.ts +268 -0
- package/dist/types/renderable/trigger.d.ts +61 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +95 -0
- package/dist/types/renderable/ui/uispriteelement.d.ts +127 -0
- package/dist/types/renderable/ui/uitextbutton.d.ts +54 -0
- package/dist/types/state/stage.d.ts +116 -0
- package/dist/types/state/state.d.ts +170 -0
- package/dist/types/system/device.d.ts +579 -0
- package/dist/types/system/dom.d.ts +1 -0
- package/dist/types/system/event.d.ts +473 -0
- package/dist/types/system/platform.d.ts +31 -0
- package/dist/types/system/pooling.d.ts +101 -0
- package/dist/types/system/save.d.ts +25 -0
- package/dist/types/system/timer.d.ts +126 -0
- package/dist/types/text/bitmaptext.d.ts +151 -0
- package/dist/types/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/text/glyph.d.ts +28 -0
- package/dist/types/text/text.d.ts +173 -0
- package/dist/types/text/textmetrics.d.ts +47 -0
- package/dist/types/text/textstyle.d.ts +5 -0
- package/dist/types/tweens/easing.d.ts +46 -0
- package/dist/types/tweens/interpolation.d.ts +18 -0
- package/dist/types/tweens/tween.d.ts +195 -0
- package/dist/types/utils/agent.d.ts +21 -0
- package/dist/types/utils/array.d.ts +39 -0
- package/dist/types/utils/file.d.ts +18 -0
- package/dist/types/utils/function.d.ts +32 -0
- package/dist/types/utils/string.d.ts +50 -0
- package/dist/types/utils/utils.d.ts +17 -0
- package/dist/types/video/canvas/canvas_renderer.d.ts +380 -0
- package/dist/types/video/renderer.d.ts +222 -0
- package/dist/types/video/texture/atlas.d.ts +201 -0
- package/dist/types/video/texture/cache.d.ts +45 -0
- package/dist/types/video/texture/canvas_texture.d.ts +78 -0
- package/dist/types/video/utils/autodetect.d.ts +7 -0
- package/dist/types/video/utils/resize.d.ts +4 -0
- package/dist/types/video/video.d.ts +92 -0
- package/dist/types/video/webgl/buffer/vertex.d.ts +56 -0
- package/dist/types/video/webgl/glshader.d.ts +93 -0
- package/dist/types/video/webgl/utils/attributes.d.ts +4 -0
- package/dist/types/video/webgl/utils/precision.d.ts +13 -0
- package/dist/types/video/webgl/utils/program.d.ts +5 -0
- package/dist/types/video/webgl/utils/string.d.ts +5 -0
- package/dist/types/video/webgl/utils/uniforms.d.ts +4 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +174 -0
- package/dist/types/video/webgl/webgl_renderer.d.ts +429 -0
- package/package.json +4 -4
- package/src/application/application.js +151 -7
- package/src/application/header.js +25 -0
- package/src/{video/utils → application}/resize.js +9 -6
- package/src/application/settings.js +19 -0
- package/src/camera/camera2d.js +1 -1
- package/src/index.js +34 -23
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +1 -1
- package/src/level/level.js +1 -1
- package/src/level/tiled/TMXLayer.js +1 -1
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/loader/loadingscreen.js +1 -1
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +172 -145
- package/src/physics/world.js +10 -30
- package/src/renderable/container.js +7 -91
- package/src/renderable/imagelayer.js +1 -1
- package/src/renderable/trigger.js +1 -1
- package/src/renderable/ui/uibaseelement.js +1 -1
- package/src/state/stage.js +1 -1
- package/src/state/state.js +1 -1
- package/src/system/device.js +0 -20
- package/src/tweens/tween.js +1 -1
- package/src/video/canvas/canvas_renderer.js +3 -0
- package/src/video/renderer.js +7 -0
- package/src/video/texture/canvas_texture.js +2 -1
- package/src/video/utils/autodetect.js +18 -0
- package/src/video/video.js +13 -145
- package/src/video/webgl/glshader.js +3 -4
- package/src/video/webgl/utils/precision.js +18 -0
- package/src/video/webgl/webgl_renderer.js +3 -0
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.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 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
8
|
+
import { autoDetectRenderer } from '../video/utils/autodetect.js';
|
|
9
|
+
import CanvasRenderer from '../video/canvas/canvas_renderer.js';
|
|
10
|
+
import { getElement, platform, enableSwipe } from '../system/device.js';
|
|
11
|
+
import { on, emit, GAME_AFTER_UPDATE, GAME_BEFORE_DRAW, GAME_AFTER_DRAW, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, GAME_INIT, GAME_RESET, GAME_BEFORE_UPDATE, GAME_UPDATE } from '../system/event.js';
|
|
12
|
+
import utils from '../utils/utils.js';
|
|
10
13
|
import timer from '../system/timer.js';
|
|
11
14
|
import state from '../state/state.js';
|
|
12
15
|
import World from '../physics/world.js';
|
|
16
|
+
import { onresize } from './resize.js';
|
|
17
|
+
import { defaultSettings } from './settings.js';
|
|
18
|
+
import { consoleHeader } from './header.js';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Select the HTML5 Canvas renderer
|
|
22
|
+
* @constant
|
|
23
|
+
*/
|
|
24
|
+
const CANVAS = 0;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Select the WebGL renderer
|
|
28
|
+
* @constant
|
|
29
|
+
*/
|
|
30
|
+
const WEBGL = 1;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
34
|
+
* @constant
|
|
35
|
+
*/
|
|
36
|
+
const AUTO = 2;
|
|
13
37
|
|
|
14
38
|
/**
|
|
15
39
|
* @classdesc
|
|
@@ -18,7 +42,22 @@ import World from '../physics/world.js';
|
|
|
18
42
|
* @see game
|
|
19
43
|
*/
|
|
20
44
|
class Application {
|
|
21
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @param {number} width - The width of the canvas viewport
|
|
47
|
+
* @param {number} height - The height of the canvas viewport
|
|
48
|
+
* @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
|
|
49
|
+
* @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
50
|
+
* @param {number|Renderer} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO), or a custom renderer class
|
|
51
|
+
* @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
|
|
52
|
+
* @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
|
|
53
|
+
* @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
|
|
54
|
+
* @param {string} [options.powerPreference="default"] - a hint to the user agent indicating what configuration of GPU is suitable for the WebGL context ("default", "high-performance", "low-power"). To be noted that Safari and Chrome (since version 80) both default to "low-power" to save battery life and improve the user experience on these dual-GPU machines.
|
|
55
|
+
* @param {boolean} [options.transparent=false] - whether to allow transparent pixels in the front buffer (screen).
|
|
56
|
+
* @param {boolean} [options.antiAlias=false] - whether to enable or not video scaling interpolation
|
|
57
|
+
* @param {boolean} [options.consoleHeader=true] - whether to display melonJS version and basic device information in the console
|
|
58
|
+
* @throws Will throw an exception if it fails to instantiate a renderer
|
|
59
|
+
*/
|
|
60
|
+
constructor(width, height, options) {
|
|
22
61
|
|
|
23
62
|
/**
|
|
24
63
|
* the parent HTML element holding the main canvas of this application
|
|
@@ -26,6 +65,12 @@ import World from '../physics/world.js';
|
|
|
26
65
|
*/
|
|
27
66
|
this.parentElement = undefined;
|
|
28
67
|
|
|
68
|
+
/**
|
|
69
|
+
* a reference to the active Canvas or WebGL active renderer renderer
|
|
70
|
+
* @type {CanvasRenderer|WebGLRenderer}
|
|
71
|
+
*/
|
|
72
|
+
this.renderer = undefined;
|
|
73
|
+
|
|
29
74
|
/**
|
|
30
75
|
* the active stage "default" camera
|
|
31
76
|
* @type {Camera2d}
|
|
@@ -71,6 +116,12 @@ import World from '../physics/world.js';
|
|
|
71
116
|
*/
|
|
72
117
|
this.isInitialized = false;
|
|
73
118
|
|
|
119
|
+
/**
|
|
120
|
+
* the given settings used when creating this application
|
|
121
|
+
* @type {Object}
|
|
122
|
+
*/
|
|
123
|
+
this.settings = undefined;
|
|
124
|
+
|
|
74
125
|
// to know when we have to refresh the display
|
|
75
126
|
this.isDirty = true;
|
|
76
127
|
|
|
@@ -92,18 +143,111 @@ import World from '../physics/world.js';
|
|
|
92
143
|
this.updateDelta = 0;
|
|
93
144
|
this.lastUpdateStart = null;
|
|
94
145
|
this.updateAverageDelta = 0;
|
|
146
|
+
|
|
147
|
+
// when using the default game application, legacy is set to true
|
|
148
|
+
// and init is called through the legacy video.init() call
|
|
149
|
+
if (options.legacy !== true) {
|
|
150
|
+
this.init(width, height, options);
|
|
151
|
+
}
|
|
95
152
|
}
|
|
96
153
|
|
|
97
154
|
/**
|
|
98
155
|
* init the game instance (create a physic world, update starting time, etc..)
|
|
99
156
|
*/
|
|
100
|
-
init() {
|
|
157
|
+
init(width, height, options) {
|
|
158
|
+
|
|
159
|
+
this.settings = Object.assign(defaultSettings, options || {});
|
|
160
|
+
|
|
161
|
+
// sanitize potential given parameters
|
|
162
|
+
this.settings.width = width;
|
|
163
|
+
this.settings.height = height;
|
|
164
|
+
this.settings.transparent = !!(this.settings.transparent);
|
|
165
|
+
this.settings.antiAlias = !!(this.settings.antiAlias);
|
|
166
|
+
this.settings.failIfMajorPerformanceCaveat = !!(this.settings.failIfMajorPerformanceCaveat);
|
|
167
|
+
this.settings.subPixel = !!(this.settings.subPixel);
|
|
168
|
+
this.settings.verbose = !!(this.settings.verbose);
|
|
169
|
+
if (this.settings.scaleMethod.search(/^(fill-(min|max)|fit|flex(-(width|height))?|stretch)$/) !== -1) {
|
|
170
|
+
this.settings.autoScale = (this.settings.scale === "auto") || true;
|
|
171
|
+
} else {
|
|
172
|
+
// default scaling method
|
|
173
|
+
this.settings.scaleMethod = "fit";
|
|
174
|
+
this.settings.autoScale = (this.settings.scale === "auto") || false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// override renderer settings if &webgl or &canvas is defined in the URL
|
|
178
|
+
var uriFragment = utils.getUriFragment();
|
|
179
|
+
if (uriFragment.webgl === true || uriFragment.webgl1 === true || uriFragment.webgl2 === true) {
|
|
180
|
+
this.settings.renderer = WEBGL;
|
|
181
|
+
if (uriFragment.webgl1 === true) {
|
|
182
|
+
this.settings.preferWebGL1 = true;
|
|
183
|
+
}
|
|
184
|
+
} else if (uriFragment.canvas === true) {
|
|
185
|
+
this.settings.renderer = CANVAS;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// normalize scale
|
|
189
|
+
this.settings.scale = (this.settings.autoScale) ? 1.0 : (+this.settings.scale || 1.0);
|
|
190
|
+
|
|
191
|
+
// default scaled size value
|
|
192
|
+
this.settings.zoomX = width * this.settings.scale;
|
|
193
|
+
this.settings.zoomY = height * this.settings.scale;
|
|
194
|
+
|
|
195
|
+
if (typeof this.settings.renderer === "number") {
|
|
196
|
+
switch (this.settings.renderer) {
|
|
197
|
+
case AUTO:
|
|
198
|
+
case WEBGL:
|
|
199
|
+
this.renderer = autoDetectRenderer(this.settings);
|
|
200
|
+
break;
|
|
201
|
+
default:
|
|
202
|
+
this.renderer = new CanvasRenderer(this.settings);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
var CustomRenderer = this.settings.renderer;
|
|
207
|
+
// a renderer class
|
|
208
|
+
this.renderer = new CustomRenderer(this.settings);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// register to the channel
|
|
212
|
+
on(WINDOW_ONRESIZE, () => { onresize(this); }, this);
|
|
213
|
+
on(WINDOW_ONORIENTATION_CHANGE, () => { onresize(this); }, this);
|
|
214
|
+
|
|
215
|
+
// add our canvas (default to document.body if settings.parent is undefined)
|
|
216
|
+
this.parentElement = getElement(this.settings.parent);
|
|
217
|
+
this.parentElement.appendChild(this.renderer.getCanvas());
|
|
218
|
+
|
|
219
|
+
// Mobile browser hacks
|
|
220
|
+
if (platform.isMobile) {
|
|
221
|
+
// Prevent the webview from moving on a swipe
|
|
222
|
+
enableSwipe(false);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// trigger an initial resize();
|
|
226
|
+
onresize(this);
|
|
227
|
+
|
|
228
|
+
// add an observer to detect when the dom tree is modified
|
|
229
|
+
if ("MutationObserver" in globalThis) {
|
|
230
|
+
// Create an observer instance linked to the callback function
|
|
231
|
+
var observer = new MutationObserver(onresize.bind(this, this));
|
|
232
|
+
|
|
233
|
+
// Start observing the target node for configured mutations
|
|
234
|
+
observer.observe(this.parentElement, {
|
|
235
|
+
attributes: false, childList: true, subtree: true
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (this.settings.consoleHeader !== false) {
|
|
240
|
+
consoleHeader(this);
|
|
241
|
+
}
|
|
242
|
+
|
|
101
243
|
// create a new physic world
|
|
102
244
|
this.world = new World();
|
|
103
245
|
// set the reference to this application instance
|
|
104
246
|
this.world.app = this;
|
|
105
247
|
this.lastUpdate = globalThis.performance.now();
|
|
248
|
+
|
|
106
249
|
this.isInitialized = true;
|
|
250
|
+
|
|
107
251
|
emit(GAME_INIT, this);
|
|
108
252
|
}
|
|
109
253
|
|
|
@@ -220,21 +364,21 @@ import World from '../physics/world.js';
|
|
|
220
364
|
* @param {Stage} stage - the current stage
|
|
221
365
|
*/
|
|
222
366
|
draw(stage) {
|
|
223
|
-
if (renderer.isContextValid === true && (this.isDirty || this.isAlwaysDirty)) {
|
|
367
|
+
if (this.renderer.isContextValid === true && (this.isDirty || this.isAlwaysDirty)) {
|
|
224
368
|
// publish notification
|
|
225
369
|
emit(GAME_BEFORE_DRAW, globalThis.performance.now());
|
|
226
370
|
|
|
227
371
|
// prepare renderer to draw a new frame
|
|
228
|
-
renderer.clear();
|
|
372
|
+
this.renderer.clear();
|
|
229
373
|
|
|
230
374
|
// render the stage
|
|
231
|
-
stage.draw(renderer);
|
|
375
|
+
stage.draw(this.renderer);
|
|
232
376
|
|
|
233
377
|
// set back to flag
|
|
234
378
|
this.isDirty = false;
|
|
235
379
|
|
|
236
380
|
// flush/render our frame
|
|
237
|
-
renderer.flush();
|
|
381
|
+
this.renderer.flush();
|
|
238
382
|
|
|
239
383
|
// publish notification
|
|
240
384
|
emit(GAME_AFTER_DRAW, globalThis.performance.now());
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
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 { devicePixelRatio, platform, getScreenOrientation, language, hasWebAudio } from '../system/device.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* display information
|
|
12
|
+
* @param {Application} game - the game application instance calling this function
|
|
13
|
+
*/
|
|
14
|
+
function consoleHeader(app) {
|
|
15
|
+
var renderType = app.renderer.type;
|
|
16
|
+
var gpu_renderer = (typeof app.renderer.GPURenderer === "string") ? " (" + app.renderer.GPURenderer + ")" : "";
|
|
17
|
+
var audioType = hasWebAudio ? "Web Audio" : "HTML5 Audio";
|
|
18
|
+
|
|
19
|
+
// output video information in the console
|
|
20
|
+
console.log(
|
|
21
|
+
renderType + " renderer" + gpu_renderer + " | " +
|
|
22
|
+
audioType + " | " +
|
|
23
|
+
"pixel ratio " + devicePixelRatio + " | " +
|
|
24
|
+
(platform.nodeJS ? "node.js" : platform.isMobile ? "mobile" : "desktop") + " | " +
|
|
25
|
+
getScreenOrientation() + " | " +
|
|
26
|
+
language
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
console.log( "resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
|
|
30
|
+
", got " + app.renderer.getWidth() + "x" + app.renderer.getHeight()
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { consoleHeader };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
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
|
+
// default settings
|
|
9
|
+
const defaultSettings = {
|
|
10
|
+
parent : undefined,
|
|
11
|
+
renderer : 2, // AUTO
|
|
12
|
+
autoScale : false,
|
|
13
|
+
scale : 1.0,
|
|
14
|
+
scaleMethod : "manual",
|
|
15
|
+
transparent : false,
|
|
16
|
+
premultipliedAlpha: true,
|
|
17
|
+
blendMode : "normal",
|
|
18
|
+
antiAlias : false,
|
|
19
|
+
failIfMajorPerformanceCaveat : true,
|
|
20
|
+
subPixel : false,
|
|
21
|
+
preferWebGL1 : false,
|
|
22
|
+
powerPreference : "default",
|
|
23
|
+
verbose : false,
|
|
24
|
+
consoleHeader : true,
|
|
25
|
+
legacy : false
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { defaultSettings };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.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
|
|
@@ -17,7 +17,7 @@ import { on, GAME_RESET, CANVAS_ONRESIZE, emit, VIEWPORT_ONRESIZE, VIEWPORT_ONCH
|
|
|
17
17
|
import pool from '../system/pooling.js';
|
|
18
18
|
import Renderable from '../renderable/renderable.js';
|
|
19
19
|
import { clamp, toBeCloseTo } from '../math/math.js';
|
|
20
|
-
import game from '../
|
|
20
|
+
import { game } from '../index.js';
|
|
21
21
|
|
|
22
22
|
// some ref shortcut
|
|
23
23
|
const MIN = Math.min, MAX = Math.max;
|
package/dist/melonjs.mjs/game.js
CHANGED
|
@@ -1,34 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.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 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
-
import * as audio from './audio/audio.js';
|
|
9
|
-
export { audio };
|
|
10
|
-
export { default as collision } from './physics/collision.js';
|
|
11
|
-
import { emit, BOOT } from './system/event.js';
|
|
12
|
-
import * as event from './system/event.js';
|
|
13
|
-
export { event };
|
|
14
|
-
import { onReady } from './system/device.js';
|
|
15
|
-
import * as device from './system/device.js';
|
|
16
|
-
export { device };
|
|
17
|
-
export { default as game } from './game.js';
|
|
18
|
-
import loader from './loader/loader.js';
|
|
19
|
-
import * as math from './math/math.js';
|
|
20
|
-
export { math as Math };
|
|
21
|
-
import utils from './utils/utils.js';
|
|
22
|
-
import * as input from './input/input.js';
|
|
23
|
-
export { input };
|
|
24
|
-
export { plugin, plugins } from './plugin/plugin.js';
|
|
25
|
-
import * as video from './video/video.js';
|
|
26
|
-
export { video };
|
|
27
|
-
export { default as save } from './system/save.js';
|
|
28
|
-
export { default as timer } from './system/timer.js';
|
|
29
|
-
import pool from './system/pooling.js';
|
|
30
|
-
export { default as state } from './state/state.js';
|
|
31
|
-
export { default as level } from './level/level.js';
|
|
32
8
|
import Color from './math/color.js';
|
|
33
9
|
import Vector2d from './math/vector2.js';
|
|
34
10
|
import Vector3d from './math/vector3.js';
|
|
@@ -54,9 +30,6 @@ export { default as CanvasRenderer } from './video/canvas/canvas_renderer.js';
|
|
|
54
30
|
import CanvasTexture from './video/texture/canvas_texture.js';
|
|
55
31
|
export { TextureAtlas } from './video/texture/atlas.js';
|
|
56
32
|
import Renderable from './renderable/renderable.js';
|
|
57
|
-
import Text from './text/text.js';
|
|
58
|
-
import BitmapText from './text/bitmaptext.js';
|
|
59
|
-
import BitmapTextData from './text/bitmaptextdata.js';
|
|
60
33
|
import ColorLayer from './renderable/colorlayer.js';
|
|
61
34
|
import ImageLayer from './renderable/imagelayer.js';
|
|
62
35
|
import Sprite from './renderable/sprite.js';
|
|
@@ -67,6 +40,9 @@ export { default as UISpriteElement } from './renderable/ui/uispriteelement.js';
|
|
|
67
40
|
import Collectable from './renderable/collectable.js';
|
|
68
41
|
import Trigger from './renderable/trigger.js';
|
|
69
42
|
import Light2d from './renderable/light2d.js';
|
|
43
|
+
import Text from './text/text.js';
|
|
44
|
+
import BitmapText from './text/bitmaptext.js';
|
|
45
|
+
import BitmapTextData from './text/bitmaptextdata.js';
|
|
70
46
|
export { Draggable, DropTarget } from './renderable/dragndrop.js';
|
|
71
47
|
export { default as TMXRenderer } from './level/tiled/renderer/TMXRenderer.js';
|
|
72
48
|
export { default as TMXOrthogonalRenderer } from './level/tiled/renderer/TMXOrthogonalRenderer.js';
|
|
@@ -87,6 +63,30 @@ export { default as ParticleEmitterSettings } from './particles/settings.js';
|
|
|
87
63
|
export { default as ParticleEmitter } from './particles/emitter.js';
|
|
88
64
|
import Particle from './particles/particle.js';
|
|
89
65
|
import Entity from './entity/entity.js';
|
|
66
|
+
import Application from './application/application.js';
|
|
67
|
+
import * as audio from './audio/audio.js';
|
|
68
|
+
export { audio };
|
|
69
|
+
export { default as collision } from './physics/collision.js';
|
|
70
|
+
import { emit, BOOT } from './system/event.js';
|
|
71
|
+
import * as event from './system/event.js';
|
|
72
|
+
export { event };
|
|
73
|
+
import { onReady } from './system/device.js';
|
|
74
|
+
import * as device from './system/device.js';
|
|
75
|
+
export { device };
|
|
76
|
+
import loader from './loader/loader.js';
|
|
77
|
+
import * as math from './math/math.js';
|
|
78
|
+
export { math as Math };
|
|
79
|
+
import utils from './utils/utils.js';
|
|
80
|
+
import * as input from './input/input.js';
|
|
81
|
+
export { input };
|
|
82
|
+
export { plugin, plugins } from './plugin/plugin.js';
|
|
83
|
+
import * as video from './video/video.js';
|
|
84
|
+
export { video };
|
|
85
|
+
export { default as save } from './system/save.js';
|
|
86
|
+
export { default as timer } from './system/timer.js';
|
|
87
|
+
import pool from './system/pooling.js';
|
|
88
|
+
export { default as state } from './state/state.js';
|
|
89
|
+
export { default as level } from './level/level.js';
|
|
90
90
|
export { DraggableEntity, DroptargetEntity, GUI_Object, warning } from './lang/deprecated.js';
|
|
91
91
|
import { initKeyboardEvent } from './input/keyboard.js';
|
|
92
92
|
|
|
@@ -100,7 +100,7 @@ import { initKeyboardEvent } from './input/keyboard.js';
|
|
|
100
100
|
* @name version
|
|
101
101
|
* @type {string}
|
|
102
102
|
*/
|
|
103
|
-
const version = "14.
|
|
103
|
+
const version = "14.3.0";
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
/**
|
|
@@ -119,6 +119,14 @@ var initialized = false;
|
|
|
119
119
|
*/
|
|
120
120
|
var skipAutoInit = false;
|
|
121
121
|
|
|
122
|
+
/*
|
|
123
|
+
* game is a default instance of a melonJS Application and represents your current game,
|
|
124
|
+
* it contains all the objects, tilemap layers, current viewport, collision map, etc...<br>
|
|
125
|
+
* @namespace game
|
|
126
|
+
* @see Application
|
|
127
|
+
*/
|
|
128
|
+
const game = new Application(0, 0, {legacy:true});
|
|
129
|
+
|
|
122
130
|
/**
|
|
123
131
|
* initialize the melonJS library.
|
|
124
132
|
* this is automatically called unless me.skipAutoInit is set to true,
|
|
@@ -133,6 +141,9 @@ function boot() {
|
|
|
133
141
|
return;
|
|
134
142
|
}
|
|
135
143
|
|
|
144
|
+
// output melonJS version in the console
|
|
145
|
+
console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
|
|
146
|
+
|
|
136
147
|
// register all built-ins objects into the object pool
|
|
137
148
|
pool.register("me.Entity", Entity);
|
|
138
149
|
pool.register("me.Collectable", Collectable);
|
|
@@ -214,4 +225,4 @@ onReady(() => {
|
|
|
214
225
|
}
|
|
215
226
|
});
|
|
216
227
|
|
|
217
|
-
export { BitmapText, BitmapTextData, Bounds, Collectable, Color, ColorLayer, Ellipse, Entity, ImageLayer, Light2d, Line, Matrix2d, Matrix3d, NineSliceSprite, ObservableVector2d, ObservableVector3d, Particle, Point, Polygon, Rect, Renderable, RoundRect, Sprite, Text, Trigger, Tween, Vector2d, Vector3d, boot, initialized, loader, pool, skipAutoInit, utils, version };
|
|
228
|
+
export { Application, BitmapText, BitmapTextData, Bounds, Collectable, Color, ColorLayer, Ellipse, Entity, ImageLayer, Light2d, Line, Matrix2d, Matrix3d, NineSliceSprite, ObservableVector2d, ObservableVector3d, Particle, Point, Polygon, Rect, Renderable, RoundRect, Sprite, Text, Trigger, Tween, Vector2d, Vector3d, boot, game, initialized, loader, pool, skipAutoInit, utils, version };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.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
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import Vector2d from '../math/vector2.js';
|
|
9
9
|
import Bounds from '../physics/bounds.js';
|
|
10
|
-
import game from '../
|
|
10
|
+
import { game } from '../index.js';
|
|
11
11
|
import { globalToLocal, locked } from './pointerevent.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.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
|
|
@@ -16,7 +16,7 @@ import pool from '../system/pooling.js';
|
|
|
16
16
|
import { getElementBounds, hasPointerLockSupport, maxTouchPoints, pointerEvent, touch, focus, touchEvent } from '../system/device.js';
|
|
17
17
|
import Pointer from './pointer.js';
|
|
18
18
|
import Rect from '../geometries/rectangle.js';
|
|
19
|
-
import game from '../
|
|
19
|
+
import { game } from '../index.js';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* A pool of `Pointer` objects to cache pointer/touch event coordinates.
|