melonjs 15.2.1 → 15.4.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 +1 -1
- 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 +75 -23
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +13 -11
- package/dist/melonjs.mjs/application/settings.js +37 -1
- package/dist/melonjs.mjs/audio/audio.js +4 -6
- package/dist/melonjs.mjs/camera/camera2d.js +12 -14
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +3 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
- package/dist/melonjs.mjs/geometries/line.js +18 -25
- package/dist/melonjs.mjs/geometries/path2d.js +16 -13
- package/dist/melonjs.mjs/geometries/point.js +8 -16
- package/dist/melonjs.mjs/geometries/poly.js +40 -97
- package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
- package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
- package/dist/melonjs.mjs/index.js +6 -6
- 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 +3 -3
- package/dist/melonjs.mjs/input/pointer.js +4 -4
- package/dist/melonjs.mjs/input/pointerevent.js +6 -7
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- 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 +4 -5
- package/dist/melonjs.mjs/loader/settings.js +1 -1
- package/dist/melonjs.mjs/math/color.js +5 -5
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +5 -59
- package/dist/melonjs.mjs/math/matrix3.js +82 -141
- package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
- package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
- package/dist/melonjs.mjs/math/vector2.js +7 -91
- package/dist/melonjs.mjs/math/vector3.js +6 -90
- 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 +2 -2
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +22 -20
- package/dist/melonjs.mjs/physics/bounds.js +27 -33
- package/dist/melonjs.mjs/physics/collision.js +5 -5
- package/dist/melonjs.mjs/physics/detector.js +10 -10
- package/dist/melonjs.mjs/physics/quadtree.js +5 -5
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +3 -4
- package/dist/melonjs.mjs/physics/world.js +6 -9
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
- package/dist/melonjs.mjs/renderable/container.js +25 -25
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
- package/dist/melonjs.mjs/renderable/light2d.js +3 -3
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +31 -39
- package/dist/melonjs.mjs/renderable/sprite.js +3 -3
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
- package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
- package/dist/melonjs.mjs/renderable/text/text.js +422 -0
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
- package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
- package/dist/melonjs.mjs/renderable/trigger.js +10 -10
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
- package/dist/melonjs.mjs/state/stage.js +13 -14
- package/dist/melonjs.mjs/state/state.js +4 -51
- package/dist/melonjs.mjs/system/device.js +51 -10
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +46 -2
- package/dist/melonjs.mjs/system/platform.js +18 -18
- package/dist/melonjs.mjs/system/pooling.js +10 -10
- 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 +3 -6
- 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 +2 -3
- 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 +5 -18
- package/dist/melonjs.mjs/video/renderer.js +17 -30
- package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +5 -29
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- 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 +4 -4
- 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 +62 -67
- package/dist/melonjs.module.js +1272 -1713
- package/dist/types/application/application.d.ts +32 -31
- package/dist/types/application/header.d.ts +2 -2
- package/dist/types/application/settings.d.ts +80 -16
- package/dist/types/audio/audio.d.ts +4 -6
- package/dist/types/camera/camera2d.d.ts +13 -16
- package/dist/types/entity/entity.d.ts +0 -1
- package/dist/types/geometries/ellipse.d.ts +18 -50
- package/dist/types/geometries/path2d.d.ts +1 -1
- package/dist/types/geometries/point.d.ts +5 -13
- package/dist/types/geometries/poly.d.ts +26 -75
- package/dist/types/geometries/rectangle.d.ts +12 -58
- package/dist/types/geometries/roundrect.d.ts +2 -11
- package/dist/types/index.d.ts +3 -3
- package/dist/types/input/gamepad.d.ts +31 -31
- package/dist/types/input/keyboard.d.ts +105 -105
- package/dist/types/input/pointer.d.ts +21 -21
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
- package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
- package/dist/types/math/matrix2.d.ts +9 -63
- package/dist/types/math/matrix3.d.ts +9 -68
- package/dist/types/math/observable_vector2.d.ts +2 -2
- package/dist/types/math/observable_vector3.d.ts +2 -2
- package/dist/types/math/vector2.d.ts +8 -92
- package/dist/types/math/vector3.d.ts +8 -92
- package/dist/types/particles/settings.d.ts +29 -29
- package/dist/types/physics/body.d.ts +10 -8
- package/dist/types/physics/bounds.d.ts +24 -30
- package/dist/types/physics/collision.d.ts +12 -12
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/physics/world.d.ts +4 -7
- package/dist/types/renderable/container.d.ts +19 -19
- package/dist/types/renderable/imagelayer.d.ts +6 -6
- package/dist/types/renderable/light2d.d.ts +7 -7
- package/dist/types/renderable/renderable.d.ts +10 -18
- package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
- package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/renderable/text/glyph.d.ts +28 -0
- package/dist/types/renderable/text/text.d.ts +159 -0
- package/dist/types/renderable/text/textmetrics.d.ts +47 -0
- package/dist/types/renderable/text/textstyle.d.ts +5 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
- package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
- package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
- package/dist/types/state/stage.d.ts +3 -2
- package/dist/types/state/state.d.ts +11 -11
- package/dist/types/system/device.d.ts +16 -9
- package/dist/types/system/event.d.ts +40 -0
- package/dist/types/system/platform.d.ts +17 -17
- package/dist/types/utils/function.d.ts +1 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
- package/dist/types/video/renderer.d.ts +16 -43
- package/dist/types/video/texture/canvas_texture.d.ts +14 -14
- package/dist/types/video/video.d.ts +4 -38
- package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
- package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
- package/dist/types/video/webgl/utils/precision.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
- package/package.json +15 -15
- package/src/application/application.js +73 -21
- package/src/application/header.js +1 -1
- package/src/application/resize.js +11 -9
- package/src/application/settings.js +36 -0
- package/src/audio/audio.js +3 -5
- package/src/camera/camera2d.js +11 -13
- package/src/entity/entity.js +2 -3
- package/src/geometries/ellipse.js +25 -58
- package/src/geometries/line.js +17 -24
- package/src/geometries/path2d.js +15 -12
- package/src/geometries/point.js +7 -15
- package/src/geometries/poly.js +39 -96
- package/src/geometries/rectangle.js +36 -90
- package/src/geometries/roundrect.js +25 -34
- package/src/index.js +4 -4
- package/src/input/keyboard.js +2 -2
- package/src/input/pointer.js +3 -3
- package/src/input/pointerevent.js +5 -6
- package/src/lang/deprecated.js +1 -1
- package/src/level/tiled/TMXLayer.js +15 -32
- package/src/level/tiled/TMXObject.js +2 -3
- package/src/level/tiled/TMXTile.js +3 -3
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/level/tiled/TMXTileset.js +3 -6
- package/src/level/tiled/TMXTilesetGroup.js +1 -1
- package/src/level/tiled/TMXUtils.js +36 -46
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/src/loader/parser.js +3 -4
- package/src/math/color.js +4 -4
- package/src/math/matrix2.js +4 -58
- package/src/math/matrix3.js +81 -140
- package/src/math/observable_vector2.js +6 -6
- package/src/math/observable_vector3.js +4 -4
- package/src/math/vector2.js +6 -90
- package/src/math/vector3.js +5 -89
- package/src/particles/emitter.js +1 -1
- package/src/particles/particle.js +1 -1
- package/src/physics/body.js +21 -19
- package/src/physics/bounds.js +26 -32
- package/src/physics/collision.js +4 -4
- package/src/physics/detector.js +9 -9
- package/src/physics/quadtree.js +4 -4
- package/src/physics/sat.js +2 -3
- package/src/physics/world.js +5 -8
- package/src/polyfill/roundrect.js +163 -163
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/colorlayer.js +3 -3
- package/src/renderable/container.js +24 -24
- package/src/renderable/imagelayer.js +3 -3
- package/src/renderable/light2d.js +2 -2
- package/src/renderable/nineslicesprite.js +1 -1
- package/src/renderable/renderable.js +30 -38
- package/src/renderable/sprite.js +2 -2
- package/src/{text → renderable/text}/bitmaptext.js +8 -8
- package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
- package/src/{text → renderable/text}/glyph.js +1 -1
- package/src/{text → renderable/text}/text.js +16 -17
- package/src/{text → renderable/text}/textmetrics.js +2 -2
- package/src/renderable/trigger.js +9 -9
- package/src/renderable/ui/uibaseelement.js +6 -6
- package/src/renderable/ui/uispriteelement.js +6 -6
- package/src/renderable/ui/uitextbutton.js +2 -2
- package/src/state/stage.js +12 -13
- package/src/state/state.js +2 -61
- package/src/system/device.js +50 -9
- package/src/system/event.js +44 -0
- package/src/system/platform.js +18 -18
- package/src/system/pooling.js +9 -9
- package/src/tweens/tween.js +1 -1
- package/src/utils/function.js +1 -2
- package/src/video/canvas/canvas_renderer.js +4 -17
- package/src/video/renderer.js +16 -29
- package/src/video/texture/atlas.js +12 -12
- package/src/video/texture/canvas_texture.js +14 -14
- package/src/video/video.js +7 -28
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/compositors/compositor.js +12 -13
- package/src/video/webgl/compositors/primitive_compositor.js +4 -4
- package/src/video/webgl/compositors/quad_compositor.js +1 -2
- package/src/video/webgl/glshader.js +1 -1
- package/src/video/webgl/utils/precision.js +3 -3
- package/src/video/webgl/webgl_renderer.js +61 -66
- /package/src/{text → renderable/text}/textstyle.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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 { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
17
17
|
* Use this for example if you want to display a panel that contains text, images or other UI elements.
|
|
18
18
|
* @augments Container
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
class UIBaseElement extends Container {
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
* @param {number} x - The x position of the container
|
|
@@ -95,7 +95,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
95
95
|
clicked(event) {
|
|
96
96
|
// Check if left mouse button is pressed
|
|
97
97
|
if (event.button === 0 && this.isClickable) {
|
|
98
|
-
this.
|
|
98
|
+
this.isDirty = true;
|
|
99
99
|
this.released = false;
|
|
100
100
|
if (this.isHoldable) {
|
|
101
101
|
timer.clearTimeout(this.holdTimeout);
|
|
@@ -129,7 +129,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
129
129
|
*/
|
|
130
130
|
enter(event) {
|
|
131
131
|
this.hover = true;
|
|
132
|
-
this.
|
|
132
|
+
this.isDirty = true;
|
|
133
133
|
if (this.isDraggable === true) {
|
|
134
134
|
on(POINTERMOVE, this.pointerMove, this);
|
|
135
135
|
// to memorize where we grab the object
|
|
@@ -175,7 +175,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
175
175
|
*/
|
|
176
176
|
leave(event) {
|
|
177
177
|
this.hover = false;
|
|
178
|
-
this.
|
|
178
|
+
this.isDirty = true;
|
|
179
179
|
if (this.isDraggable === true) {
|
|
180
180
|
// unregister on the global pointermove event
|
|
181
181
|
off(POINTERMOVE, this.pointerMove);
|
|
@@ -201,7 +201,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
201
201
|
release(event) {
|
|
202
202
|
if (this.released === false) {
|
|
203
203
|
this.released = true;
|
|
204
|
-
this.
|
|
204
|
+
this.isDirty = true;
|
|
205
205
|
timer.clearTimeout(this.holdTimeout);
|
|
206
206
|
this.holdTimeout = -1;
|
|
207
207
|
return this.onRelease(event);
|
|
@@ -223,7 +223,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
223
223
|
hold() {
|
|
224
224
|
timer.clearTimeout(this.holdTimeout);
|
|
225
225
|
this.holdTimeout = -1;
|
|
226
|
-
this.
|
|
226
|
+
this.isDirty = true;
|
|
227
227
|
if (!this.released) {
|
|
228
228
|
this.onHold();
|
|
229
229
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -14,7 +14,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
14
14
|
* This is a basic sprite based button which you can use in your Game UI.
|
|
15
15
|
* @augments Sprite
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
class UISpriteElement extends Sprite {
|
|
18
18
|
/**
|
|
19
19
|
* @param {number} x - the x coordinate of the UISpriteElement Object
|
|
20
20
|
* @param {number} y - the y coordinate of the UISpriteElement Object
|
|
@@ -100,7 +100,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
100
100
|
clicked(event) {
|
|
101
101
|
// Check if left mouse button is pressed
|
|
102
102
|
if (event.button === 0 && this.isClickable) {
|
|
103
|
-
this.
|
|
103
|
+
this.isDirty = true;
|
|
104
104
|
this.released = false;
|
|
105
105
|
if (this.isHoldable) {
|
|
106
106
|
timer.clearTimeout(this.holdTimeout);
|
|
@@ -126,7 +126,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
126
126
|
*/
|
|
127
127
|
enter(event) {
|
|
128
128
|
this.hover = true;
|
|
129
|
-
this.
|
|
129
|
+
this.isDirty = true;
|
|
130
130
|
return this.onOver(event);
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -144,7 +144,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
144
144
|
*/
|
|
145
145
|
leave(event) {
|
|
146
146
|
this.hover = false;
|
|
147
|
-
this.
|
|
147
|
+
this.isDirty = true;
|
|
148
148
|
this.release(event);
|
|
149
149
|
return this.onOut(event);
|
|
150
150
|
}
|
|
@@ -164,7 +164,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
164
164
|
release(event) {
|
|
165
165
|
if (this.released === false) {
|
|
166
166
|
this.released = true;
|
|
167
|
-
this.
|
|
167
|
+
this.isDirty = true;
|
|
168
168
|
timer.clearTimeout(this.holdTimeout);
|
|
169
169
|
this.holdTimeout = -1;
|
|
170
170
|
return this.onRelease(event);
|
|
@@ -186,7 +186,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
186
186
|
hold() {
|
|
187
187
|
timer.clearTimeout(this.holdTimeout);
|
|
188
188
|
this.holdTimeout = -1;
|
|
189
|
-
this.
|
|
189
|
+
this.isDirty = true;
|
|
190
190
|
if (!this.released) {
|
|
191
191
|
this.onHold();
|
|
192
192
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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 BitmapText from '
|
|
8
|
+
import BitmapText from '../text/bitmaptext.js';
|
|
9
9
|
import RoundRect from '../../geometries/roundrect.js';
|
|
10
10
|
import UIBaseElement from './uibaseelement.js';
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ import UIBaseElement from './uibaseelement.js';
|
|
|
14
14
|
* This is a basic base text button which you can use in your Game UI.
|
|
15
15
|
* @augments UIBaseElement
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
class UITextButton extends UIBaseElement {
|
|
18
18
|
/**
|
|
19
19
|
* A Bitmap Text Button with an outlined background border, filled with background color.
|
|
20
20
|
* It uses a RoundRect as background and changes the background color on hovering over.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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
8
|
import { renderer } from '../video/video.js';
|
|
9
|
-
import {
|
|
9
|
+
import { emit, STAGE_RESET } from '../system/event.js';
|
|
10
10
|
import Camera2d from '../camera/camera2d.js';
|
|
11
11
|
import Color from '../math/color.js';
|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ let default_settings = {
|
|
|
25
25
|
* through the state manager must inherit from this base class.
|
|
26
26
|
* @see state
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
class Stage {
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* @param {object} [settings] - The stage` parameters
|
|
@@ -94,7 +94,6 @@ let default_settings = {
|
|
|
94
94
|
* @ignore
|
|
95
95
|
*/
|
|
96
96
|
reset() {
|
|
97
|
-
|
|
98
97
|
// add all defined cameras
|
|
99
98
|
this.settings.cameras.forEach((camera) => {
|
|
100
99
|
this.cameras.set(camera.name, camera);
|
|
@@ -112,7 +111,7 @@ let default_settings = {
|
|
|
112
111
|
}
|
|
113
112
|
|
|
114
113
|
// reset the game
|
|
115
|
-
|
|
114
|
+
emit(STAGE_RESET, this);
|
|
116
115
|
|
|
117
116
|
// call the onReset Function
|
|
118
117
|
this.onResetEvent.apply(this, arguments);
|
|
@@ -127,8 +126,7 @@ let default_settings = {
|
|
|
127
126
|
* @returns {boolean}
|
|
128
127
|
*/
|
|
129
128
|
update(dt) {
|
|
130
|
-
|
|
131
|
-
let isDirty = game.world.update(dt);
|
|
129
|
+
let isDirty = false;
|
|
132
130
|
|
|
133
131
|
// update the camera/viewport
|
|
134
132
|
// iterate through all cameras
|
|
@@ -153,13 +151,15 @@ let default_settings = {
|
|
|
153
151
|
* @name draw
|
|
154
152
|
* @memberof Stage
|
|
155
153
|
* @ignore
|
|
156
|
-
* @param {
|
|
154
|
+
* @param {Renderer} renderer - the renderer object to draw with
|
|
155
|
+
* @param {World} world - the world object to draw
|
|
157
156
|
*/
|
|
158
|
-
draw(renderer) {
|
|
157
|
+
draw(renderer, world) {
|
|
158
|
+
|
|
159
159
|
// iterate through all cameras
|
|
160
160
|
this.cameras.forEach((camera) => {
|
|
161
161
|
// render the root container
|
|
162
|
-
camera.draw(renderer,
|
|
162
|
+
camera.draw(renderer, world);
|
|
163
163
|
|
|
164
164
|
// render the ambient light
|
|
165
165
|
if (this.ambientLight.alpha !== 0) {
|
|
@@ -179,9 +179,9 @@ let default_settings = {
|
|
|
179
179
|
|
|
180
180
|
// render all lights
|
|
181
181
|
this.lights.forEach((light) => {
|
|
182
|
-
light.preDraw(renderer,
|
|
183
|
-
light.draw(renderer,
|
|
184
|
-
light.postDraw(renderer,
|
|
182
|
+
light.preDraw(renderer, world);
|
|
183
|
+
light.draw(renderer, world);
|
|
184
|
+
light.postDraw(renderer, world);
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
187
|
}
|
|
@@ -216,7 +216,6 @@ let default_settings = {
|
|
|
216
216
|
if (typeof this.settings.onResetEvent === "function") {
|
|
217
217
|
this.settings.onResetEvent.apply(this, arguments);
|
|
218
218
|
}
|
|
219
|
-
|
|
220
219
|
}
|
|
221
220
|
|
|
222
221
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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,9 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { pauseTrack, resumeTrack } from '../audio/audio.js';
|
|
9
9
|
import { defer } from '../utils/function.js';
|
|
10
|
-
import { on, VIDEO_INIT, BOOT, emit, STATE_STOP, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_CHANGE } from '../system/event.js';
|
|
10
|
+
import { on, VIDEO_INIT, BOOT, emit, STATE_STOP, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_CHANGE, TICK } from '../system/event.js';
|
|
11
11
|
import { game } from '../index.js';
|
|
12
|
-
import { focus } from '../system/device.js';
|
|
13
12
|
import Stage from './stage.js';
|
|
14
13
|
import DefaultLoadingScreen from '../loader/loadingscreen.js';
|
|
15
14
|
|
|
@@ -78,11 +77,7 @@ function _pauseRunLoop() {
|
|
|
78
77
|
* @ignore
|
|
79
78
|
*/
|
|
80
79
|
function _renderFrame(time) {
|
|
81
|
-
|
|
82
|
-
// update all game objects
|
|
83
|
-
game.update(time, stage);
|
|
84
|
-
// render all game objects
|
|
85
|
-
game.draw(stage);
|
|
80
|
+
emit(TICK, time);
|
|
86
81
|
// schedule the next frame update
|
|
87
82
|
if (_animFrameId !== -1) {
|
|
88
83
|
_animFrameId = globalThis.requestAnimationFrame(_renderFrame);
|
|
@@ -131,9 +126,6 @@ function _switchState(state) {
|
|
|
131
126
|
if (_onSwitchComplete) {
|
|
132
127
|
_onSwitchComplete();
|
|
133
128
|
}
|
|
134
|
-
|
|
135
|
-
// force repaint
|
|
136
|
-
game.repaint();
|
|
137
129
|
}
|
|
138
130
|
}
|
|
139
131
|
|
|
@@ -147,42 +139,6 @@ on(BOOT, () => {
|
|
|
147
139
|
on(VIDEO_INIT, () => {
|
|
148
140
|
state.change(state.DEFAULT, true);
|
|
149
141
|
});
|
|
150
|
-
|
|
151
|
-
if (typeof globalThis.addEventListener === "function") {
|
|
152
|
-
// set pause/stop action on losing focus
|
|
153
|
-
globalThis.addEventListener("blur", () => {
|
|
154
|
-
{
|
|
155
|
-
state.pause(true);
|
|
156
|
-
}
|
|
157
|
-
}, false);
|
|
158
|
-
// set restart/resume action on gaining focus
|
|
159
|
-
globalThis.addEventListener("focus", () => {
|
|
160
|
-
{
|
|
161
|
-
state.resume(true);
|
|
162
|
-
}
|
|
163
|
-
// force focus if autofocus is on
|
|
164
|
-
{
|
|
165
|
-
focus();
|
|
166
|
-
}
|
|
167
|
-
}, false);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (typeof globalThis.document !== "undefined") {
|
|
171
|
-
if (typeof globalThis.document.addEventListener === "function") {
|
|
172
|
-
// register on the visibilitychange event if supported
|
|
173
|
-
globalThis.document.addEventListener("visibilitychange", () => {
|
|
174
|
-
if (globalThis.document.visibilityState === "visible") {
|
|
175
|
-
{
|
|
176
|
-
state.resume(true);
|
|
177
|
-
}
|
|
178
|
-
} else {
|
|
179
|
-
{
|
|
180
|
-
state.pause(true);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}, false );
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
142
|
});
|
|
187
143
|
|
|
188
144
|
/**
|
|
@@ -267,7 +223,7 @@ let state = {
|
|
|
267
223
|
* default state ID for the default Stage
|
|
268
224
|
* (the default stage is the one running as soon as melonJS is started)
|
|
269
225
|
* @constant
|
|
270
|
-
* @name
|
|
226
|
+
* @name DEFAULT
|
|
271
227
|
* @memberof state
|
|
272
228
|
*/
|
|
273
229
|
DEFAULT : 9,
|
|
@@ -355,9 +311,6 @@ let state = {
|
|
|
355
311
|
// calculate the elpased time
|
|
356
312
|
_pauseTime = globalThis.performance.now() - _pauseTime;
|
|
357
313
|
|
|
358
|
-
// force repaint
|
|
359
|
-
game.repaint();
|
|
360
|
-
|
|
361
314
|
// publish the restart notification
|
|
362
315
|
emit(STATE_RESTART, _pauseTime);
|
|
363
316
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { getParent } from '../video/video.js';
|
|
9
9
|
import save from './save.js';
|
|
10
|
+
import { emit, BLUR, FOCUS } from './event.js';
|
|
10
11
|
import { prefixed } from '../utils/agent.js';
|
|
11
12
|
import { DOMContentLoaded } from './dom.js';
|
|
12
13
|
import * as platform$1 from './platform.js';
|
|
@@ -52,6 +53,7 @@ function hasOffscreenCanvas() {
|
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
55
|
* used by [un]watchAccelerometer()
|
|
56
|
+
* @ignore
|
|
55
57
|
*/
|
|
56
58
|
function onDeviceMotion(e) {
|
|
57
59
|
// Accelerometer information
|
|
@@ -62,6 +64,7 @@ function onDeviceMotion(e) {
|
|
|
62
64
|
|
|
63
65
|
/**
|
|
64
66
|
* used by [un]watchDeviceOrientation()
|
|
67
|
+
* @ignore
|
|
65
68
|
*/
|
|
66
69
|
function onDeviceRotate(e) {
|
|
67
70
|
gamma = e.gamma;
|
|
@@ -354,6 +357,8 @@ let alpha = 0;
|
|
|
354
357
|
* Specify whether to pause the game when losing focus
|
|
355
358
|
* @name pauseOnBlur
|
|
356
359
|
* @memberof device
|
|
360
|
+
* @deprecated since 15.4.0
|
|
361
|
+
* @see Application.pauseOnBlur
|
|
357
362
|
* @type {boolean}
|
|
358
363
|
* @public
|
|
359
364
|
* @default true
|
|
@@ -364,6 +369,8 @@ let pauseOnBlur = true;
|
|
|
364
369
|
* Specify whether to unpause the game when gaining focus
|
|
365
370
|
* @name resumeOnFocus
|
|
366
371
|
* @memberof device
|
|
372
|
+
* @deprecated since 15.4.0
|
|
373
|
+
* @see Application.resumeOnFocus
|
|
367
374
|
* @type {boolean}
|
|
368
375
|
* @public
|
|
369
376
|
* @default true
|
|
@@ -371,25 +378,27 @@ let pauseOnBlur = true;
|
|
|
371
378
|
let resumeOnFocus = true;
|
|
372
379
|
|
|
373
380
|
/**
|
|
374
|
-
* Specify whether to
|
|
375
|
-
*
|
|
381
|
+
* Specify whether to stop the game when losing focus or not.
|
|
382
|
+
* The engine restarts on focus if this is enabled.
|
|
383
|
+
* @name stopOnBlur
|
|
376
384
|
* @memberof device
|
|
385
|
+
* @deprecated since 15.4.0
|
|
386
|
+
* @see Application.stopOnBlur
|
|
377
387
|
* @type {boolean}
|
|
378
388
|
* @public
|
|
379
|
-
* @default
|
|
389
|
+
* @default false
|
|
380
390
|
*/
|
|
381
|
-
let
|
|
391
|
+
let stopOnBlur = false;
|
|
382
392
|
|
|
383
393
|
/**
|
|
384
|
-
* Specify whether to
|
|
385
|
-
*
|
|
386
|
-
* @name stopOnBlur
|
|
394
|
+
* Specify whether to automatically bring the window to the front
|
|
395
|
+
* @name autoFocus
|
|
387
396
|
* @memberof device
|
|
388
397
|
* @type {boolean}
|
|
389
398
|
* @public
|
|
390
|
-
* @default
|
|
399
|
+
* @default true
|
|
391
400
|
*/
|
|
392
|
-
let
|
|
401
|
+
let autoFocus = true;
|
|
393
402
|
|
|
394
403
|
/**
|
|
395
404
|
* specify a function to execute when the Device is fully loaded and ready
|
|
@@ -437,6 +446,38 @@ let stopOnBlur = false;
|
|
|
437
446
|
* });
|
|
438
447
|
*/
|
|
439
448
|
function onReady(fn) {
|
|
449
|
+
// register on blur/focus and visibility event handlers
|
|
450
|
+
if (typeof globalThis.addEventListener === "function") {
|
|
451
|
+
// set pause/stop action on losing focus
|
|
452
|
+
globalThis.addEventListener("blur", () => {
|
|
453
|
+
emit(BLUR);
|
|
454
|
+
}, false);
|
|
455
|
+
// set restart/resume action on gaining focus
|
|
456
|
+
globalThis.addEventListener("focus", () => {
|
|
457
|
+
emit(FOCUS);
|
|
458
|
+
// force focus if autofocus is on
|
|
459
|
+
{
|
|
460
|
+
focus();
|
|
461
|
+
}
|
|
462
|
+
}, false);
|
|
463
|
+
}
|
|
464
|
+
if (typeof globalThis.document !== "undefined") {
|
|
465
|
+
if (typeof globalThis.document.addEventListener === "function") {
|
|
466
|
+
// register on the visibilitychange event if supported
|
|
467
|
+
globalThis.document.addEventListener("visibilitychange", () => {
|
|
468
|
+
if (globalThis.document.visibilityState === "visible") {
|
|
469
|
+
emit(FOCUS);
|
|
470
|
+
// force focus if autofocus is on
|
|
471
|
+
{
|
|
472
|
+
focus();
|
|
473
|
+
}
|
|
474
|
+
} else {
|
|
475
|
+
emit(BLUR);
|
|
476
|
+
}
|
|
477
|
+
}, false );
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
// call the supplied function
|
|
440
481
|
DOMContentLoaded(fn);
|
|
441
482
|
}
|
|
442
483
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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
|
|
@@ -37,6 +37,39 @@ const DOM_READY = "dom_ready";
|
|
|
37
37
|
*/
|
|
38
38
|
const BOOT = "me.boot";
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* event generated when the system update the engine and the renderer by one step
|
|
42
|
+
* @public
|
|
43
|
+
* @constant
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @name TICK
|
|
46
|
+
* @memberof event
|
|
47
|
+
* @see event.on
|
|
48
|
+
*/
|
|
49
|
+
const TICK = "me.tick";
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* event generated when the main browser or window is losing focus
|
|
53
|
+
* @public
|
|
54
|
+
* @constant
|
|
55
|
+
* @type {string}
|
|
56
|
+
* @name BLUR
|
|
57
|
+
* @memberof event
|
|
58
|
+
* @see event.on
|
|
59
|
+
*/
|
|
60
|
+
const BLUR = "me.blur";
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* event generated when the main browser or window is gaining back focus
|
|
64
|
+
* @public
|
|
65
|
+
* @constant
|
|
66
|
+
* @type {string}
|
|
67
|
+
* @name FOCUS
|
|
68
|
+
* @memberof event
|
|
69
|
+
* @see event.on
|
|
70
|
+
*/
|
|
71
|
+
const FOCUS = "me.focus";
|
|
72
|
+
|
|
40
73
|
/**
|
|
41
74
|
* event when the game is paused <br>
|
|
42
75
|
* Data passed : none <br>
|
|
@@ -96,6 +129,17 @@ const STATE_RESTART = "me.state.onRestart";
|
|
|
96
129
|
*/
|
|
97
130
|
const STATE_CHANGE = "me.state.onChange";
|
|
98
131
|
|
|
132
|
+
/**
|
|
133
|
+
* event for when a stage is resetted
|
|
134
|
+
* @public
|
|
135
|
+
* @constant
|
|
136
|
+
* @type {string}
|
|
137
|
+
* @name STAGE_RESET
|
|
138
|
+
* @memberof event
|
|
139
|
+
* @see event.on
|
|
140
|
+
*/
|
|
141
|
+
const STAGE_RESET = "me.stage.onReset";
|
|
142
|
+
|
|
99
143
|
/**
|
|
100
144
|
* event for when the video is initialized<br>
|
|
101
145
|
* Data passed : none <br>
|
|
@@ -534,4 +578,4 @@ function off(eventName, listener) {
|
|
|
534
578
|
return eventEmitter.off(eventName, listener);
|
|
535
579
|
}
|
|
536
580
|
|
|
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 };
|
|
581
|
+
export { BLUR, BOOT, CANVAS_ONRESIZE, DOM_READY, DRAGEND, DRAGSTART, FOCUS, 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, STAGE_RESET, STATE_CHANGE, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_STOP, TICK, VIDEO_INIT, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONRESIZE, WINDOW_ONSCROLL, emit, off, on, once };
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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
8
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
26
|
|
|
27
27
|
const ua = typeof globalThis.navigator !== "undefined" ? globalThis.navigator.userAgent : "";
|
|
28
28
|
const iOS = /iPhone|iPad|iPod/i.test(ua);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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
|
|
@@ -45,15 +45,15 @@ class ObjectPool {
|
|
|
45
45
|
* me.pool.register("cherrysprite", Cherry, true);
|
|
46
46
|
*/
|
|
47
47
|
register(className, classObj, recycling = false) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
if (typeof (classObj) !== "undefined") {
|
|
49
|
+
this.objectClass[className] = {
|
|
50
|
+
"class" : classObj,
|
|
51
|
+
"pool" : (recycling ? [] : undefined)
|
|
52
|
+
};
|
|
53
|
+
} else {
|
|
54
|
+
throw new Error("Cannot register object '" + className + "', invalid class");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* Pull a new instance of the requested object (if added into the object pool)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.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
|
|
@@ -123,14 +123,11 @@ function createSpaceGlyph(glyphs) {
|
|
|
123
123
|
this.lineHeight = parseFloat(getValueFromPair(lines[1], /lineHeight\=\d+/g));
|
|
124
124
|
|
|
125
125
|
let baseLine = parseFloat(getValueFromPair(lines[1], /base\=\d+/g));
|
|
126
|
-
|
|
127
126
|
let padY = this.padTop + this.padBottom;
|
|
128
|
-
|
|
129
127
|
let glyph = null;
|
|
130
128
|
|
|
131
|
-
let i;
|
|
132
129
|
|
|
133
|
-
for (i = 4; i < lines.length; i++) {
|
|
130
|
+
for (let i = 4; i < lines.length; i++) {
|
|
134
131
|
let line = lines[i];
|
|
135
132
|
let characterValues = line.split(/=|\s+/);
|
|
136
133
|
if (!line || /^kernings/.test(line)) {
|
|
@@ -171,7 +168,7 @@ function createSpaceGlyph(glyphs) {
|
|
|
171
168
|
createSpaceGlyph(this.glyphs);
|
|
172
169
|
|
|
173
170
|
let capGlyph = null;
|
|
174
|
-
for (i = 0; i < capChars.length; i++) {
|
|
171
|
+
for (let i = 0; i < capChars.length; i++) {
|
|
175
172
|
let capChar = capChars[i];
|
|
176
173
|
capGlyph = this.glyphs[capChar.charCodeAt(0)];
|
|
177
174
|
if (capGlyph) {
|