melonjs 15.14.0 → 15.15.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/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 +1 -1
- package/dist/melonjs.mjs/application/header.js +1 -1
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +1 -1
- package/dist/melonjs.mjs/camera/camera2d.js +1 -1
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
- package/dist/melonjs.mjs/geometries/line.js +1 -1
- package/dist/melonjs.mjs/geometries/path2d.js +1 -1
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +1 -1
- package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/index.js +2 -2
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +1 -1
- package/dist/melonjs.mjs/input/pointerevent.js +1 -1
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +1 -1
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +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/parsers/binary.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/tmx.js +1 -1
- package/dist/melonjs.mjs/loader/settings.js +1 -1
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +1 -1
- package/dist/melonjs.mjs/math/matrix3.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
- package/dist/melonjs.mjs/math/vector2.js +1 -1
- package/dist/melonjs.mjs/math/vector3.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +1 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +1 -1
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +1 -1
- package/dist/melonjs.mjs/physics/detector.js +1 -1
- package/dist/melonjs.mjs/physics/quadtree.js +1 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +1 -1
- package/dist/melonjs.mjs/physics/world.js +1 -1
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +1 -1
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +12 -11
- 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 +19 -1
- package/dist/melonjs.mjs/renderable/sprite.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
- package/dist/melonjs.mjs/renderable/text/text.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +1 -1
- package/dist/melonjs.mjs/state/state.js +1 -1
- package/dist/melonjs.mjs/system/device.js +1 -1
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +1 -1
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +1 -1
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
- package/dist/melonjs.mjs/video/renderer.js +1 -1
- package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +1 -1
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
- package/dist/melonjs.module.js +36 -16
- package/dist/types/renderable/imagelayer.d.ts +1 -1
- package/dist/types/renderable/renderable.d.ts +6 -0
- package/package.json +13 -13
- package/src/renderable/imagelayer.js +10 -9
- package/src/renderable/renderable.js +18 -0
package/dist/melonjs.module.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.15.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
|
|
@@ -61,8 +61,9 @@ var global$e =
|
|
|
61
61
|
// eslint-disable-next-line no-restricted-globals -- safe
|
|
62
62
|
check(typeof self == 'object' && self) ||
|
|
63
63
|
check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
|
|
64
|
+
check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
|
|
64
65
|
// eslint-disable-next-line no-new-func -- fallback
|
|
65
|
-
(function () { return this; })() ||
|
|
66
|
+
(function () { return this; })() || Function('return this')();
|
|
66
67
|
|
|
67
68
|
var global$f = /*@__PURE__*/getDefaultExportFromCjs(global$e);
|
|
68
69
|
|
|
@@ -473,10 +474,10 @@ var store$2 = sharedStore;
|
|
|
473
474
|
(shared$5.exports = function (key, value) {
|
|
474
475
|
return store$2[key] || (store$2[key] = value !== undefined ? value : {});
|
|
475
476
|
})('versions', []).push({
|
|
476
|
-
version: '3.33.
|
|
477
|
+
version: '3.33.3',
|
|
477
478
|
mode: IS_PURE ? 'pure' : 'global',
|
|
478
479
|
copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
|
|
479
|
-
license: 'https://github.com/zloirock/core-js/blob/v3.33.
|
|
480
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',
|
|
480
481
|
source: 'https://github.com/zloirock/core-js'
|
|
481
482
|
});
|
|
482
483
|
|
|
@@ -17622,6 +17623,9 @@ class Renderable extends Rect {
|
|
|
17622
17623
|
// viewport flag
|
|
17623
17624
|
this._inViewport = false;
|
|
17624
17625
|
|
|
17626
|
+
// cache value for the parentApp
|
|
17627
|
+
this._parentApp = undefined;
|
|
17628
|
+
|
|
17625
17629
|
// renderable cache tint value used by the getter/setter
|
|
17626
17630
|
this._tint = pool.pull("Color", 255, 255, 255, 1.0);
|
|
17627
17631
|
|
|
@@ -17629,6 +17633,20 @@ class Renderable extends Rect {
|
|
|
17629
17633
|
this.setOpacity(1.0);
|
|
17630
17634
|
}
|
|
17631
17635
|
|
|
17636
|
+
/**
|
|
17637
|
+
* returns the parent application (or game) to which this renderable is attached to
|
|
17638
|
+
* @return {Application} the parent application or undefined if not attached to any container/app
|
|
17639
|
+
*/
|
|
17640
|
+
get parentApp() {
|
|
17641
|
+
if (typeof this._parentApp === "undefined") {
|
|
17642
|
+
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getRootAncestor === "function") {
|
|
17643
|
+
// the `app` property is only defined in the world "root" container
|
|
17644
|
+
this._parentApp = this.ancestor.getRootAncestor().app;
|
|
17645
|
+
}
|
|
17646
|
+
}
|
|
17647
|
+
return this._parentApp;
|
|
17648
|
+
}
|
|
17649
|
+
|
|
17632
17650
|
/**
|
|
17633
17651
|
* Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
|
|
17634
17652
|
* @see Renderable#floating
|
|
@@ -18154,6 +18172,7 @@ class Renderable extends Rect {
|
|
|
18154
18172
|
}
|
|
18155
18173
|
|
|
18156
18174
|
this.ancestor = undefined;
|
|
18175
|
+
this._parentApp = undefined;
|
|
18157
18176
|
|
|
18158
18177
|
// destroy the physic body if defined and is a builtin body object
|
|
18159
18178
|
if ((typeof this.body !== "undefined") && (typeof this.body.destroy === "function")) {
|
|
@@ -33066,14 +33085,12 @@ class ImageLayer extends Sprite {
|
|
|
33066
33085
|
on(VIEWPORT_ONCHANGE, this.updateLayer, this);
|
|
33067
33086
|
on(VIEWPORT_ONRESIZE, this.resize, this);
|
|
33068
33087
|
// force a first refresh when the level is loaded
|
|
33069
|
-
|
|
33070
|
-
this.updateLayer(game.viewport.pos);
|
|
33071
|
-
});
|
|
33088
|
+
on(LEVEL_LOADED, this.updateLayer, this);
|
|
33072
33089
|
// in case the level is not added to the root container,
|
|
33073
33090
|
// the onActivateEvent call happens after the LEVEL_LOADED event
|
|
33074
33091
|
// so we need to force a first update
|
|
33075
33092
|
if (this.ancestor.root !== true) {
|
|
33076
|
-
this.updateLayer(
|
|
33093
|
+
this.updateLayer();
|
|
33077
33094
|
}
|
|
33078
33095
|
}
|
|
33079
33096
|
|
|
@@ -33101,10 +33118,12 @@ class ImageLayer extends Sprite {
|
|
|
33101
33118
|
* updateLayer function
|
|
33102
33119
|
* @ignore
|
|
33103
33120
|
*/
|
|
33104
|
-
updateLayer(
|
|
33121
|
+
updateLayer() {
|
|
33105
33122
|
const rx = this.ratio.x,
|
|
33106
33123
|
ry = this.ratio.y;
|
|
33107
33124
|
|
|
33125
|
+
const viewport = game.viewport;
|
|
33126
|
+
|
|
33108
33127
|
if (rx === 0 && ry === 0) {
|
|
33109
33128
|
// static image
|
|
33110
33129
|
return;
|
|
@@ -33112,8 +33131,8 @@ class ImageLayer extends Sprite {
|
|
|
33112
33131
|
|
|
33113
33132
|
const width = this.width,
|
|
33114
33133
|
height = this.height,
|
|
33115
|
-
bw =
|
|
33116
|
-
bh =
|
|
33134
|
+
bw = viewport.bounds.width,
|
|
33135
|
+
bh = viewport.bounds.height,
|
|
33117
33136
|
ax = this.anchorPoint.x,
|
|
33118
33137
|
ay = this.anchorPoint.y,
|
|
33119
33138
|
|
|
@@ -33123,8 +33142,8 @@ class ImageLayer extends Sprite {
|
|
|
33123
33142
|
* See https://github.com/melonjs/melonJS/issues/741#issuecomment-138431532
|
|
33124
33143
|
* for a thorough description of how this works.
|
|
33125
33144
|
*/
|
|
33126
|
-
x = ax * (rx - 1) * (bw -
|
|
33127
|
-
y = ay * (ry - 1) * (bh -
|
|
33145
|
+
x = ax * (rx - 1) * (bw - viewport.width) + this.offset.x - rx * viewport.pos.x,
|
|
33146
|
+
y = ay * (ry - 1) * (bh - viewport.height) + this.offset.y - ry * viewport.pos.y;
|
|
33128
33147
|
|
|
33129
33148
|
|
|
33130
33149
|
// Repeat horizontally; start drawing from left boundary
|
|
@@ -33205,6 +33224,7 @@ class ImageLayer extends Sprite {
|
|
|
33205
33224
|
// cancel all event subscriptions
|
|
33206
33225
|
off(VIEWPORT_ONCHANGE, this.updateLayer);
|
|
33207
33226
|
off(VIEWPORT_ONRESIZE, this.resize);
|
|
33227
|
+
off(LEVEL_LOADED, this.updateLayer);
|
|
33208
33228
|
}
|
|
33209
33229
|
|
|
33210
33230
|
/**
|
|
@@ -38436,9 +38456,9 @@ class BasePlugin {
|
|
|
38436
38456
|
* define the minimum required version of melonJS<br>
|
|
38437
38457
|
* this can be overridden by the plugin
|
|
38438
38458
|
* @type {string}
|
|
38439
|
-
* @default "15.
|
|
38459
|
+
* @default "15.15.0"
|
|
38440
38460
|
*/
|
|
38441
|
-
this.version = "15.
|
|
38461
|
+
this.version = "15.15.0";
|
|
38442
38462
|
|
|
38443
38463
|
/**
|
|
38444
38464
|
* a reference to the app/game that registered this plugin
|
|
@@ -38720,7 +38740,7 @@ Renderer.prototype.getHeight = function() {
|
|
|
38720
38740
|
* @name version
|
|
38721
38741
|
* @type {string}
|
|
38722
38742
|
*/
|
|
38723
|
-
const version = "15.
|
|
38743
|
+
const version = "15.15.0";
|
|
38724
38744
|
|
|
38725
38745
|
/**
|
|
38726
38746
|
* a flag indicating that melonJS is fully initialized
|
|
@@ -67,7 +67,7 @@ export default class ImageLayer extends Sprite {
|
|
|
67
67
|
* updateLayer function
|
|
68
68
|
* @ignore
|
|
69
69
|
*/
|
|
70
|
-
updateLayer(
|
|
70
|
+
updateLayer(): void;
|
|
71
71
|
/**
|
|
72
72
|
* override the default predraw function
|
|
73
73
|
* as repeat and anchor are managed directly in the draw method
|
|
@@ -199,7 +199,13 @@ export default class Renderable extends Rect {
|
|
|
199
199
|
y: boolean;
|
|
200
200
|
};
|
|
201
201
|
_inViewport: boolean;
|
|
202
|
+
_parentApp: any;
|
|
202
203
|
_tint: object;
|
|
204
|
+
/**
|
|
205
|
+
* returns the parent application (or game) to which this renderable is attached to
|
|
206
|
+
* @return {Application} the parent application or undefined if not attached to any container/app
|
|
207
|
+
*/
|
|
208
|
+
get parentApp(): Application;
|
|
203
209
|
/**
|
|
204
210
|
* Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
|
|
205
211
|
* @see Renderable#floating
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melonjs",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.15.0",
|
|
4
4
|
"description": "melonJS Game Engine",
|
|
5
5
|
"homepage": "http://www.melonjs.org/",
|
|
6
6
|
"type": "module",
|
|
@@ -53,36 +53,36 @@
|
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@teppeis/multimaps": "^3.0.0",
|
|
56
|
-
"core-js": "^3.33.
|
|
56
|
+
"core-js": "^3.33.3",
|
|
57
57
|
"earcut": "2.2.4",
|
|
58
58
|
"eventemitter3": "^5.0.1",
|
|
59
59
|
"howler": "2.2.4"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@babel/eslint-parser": "^7.
|
|
63
|
-
"@babel/plugin-syntax-import-assertions": "^7.
|
|
64
|
-
"@fastify/static": "^6.
|
|
62
|
+
"@babel/eslint-parser": "^7.23.3",
|
|
63
|
+
"@babel/plugin-syntax-import-assertions": "^7.23.3",
|
|
64
|
+
"@fastify/static": "^6.12.0",
|
|
65
65
|
"@melonjs/webdoc-theme": "^1.1.1",
|
|
66
66
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
67
67
|
"@rollup/plugin-image": "^3.0.3",
|
|
68
68
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
69
|
-
"@rollup/plugin-replace": "^5.0.
|
|
69
|
+
"@rollup/plugin-replace": "^5.0.5",
|
|
70
70
|
"@webdoc/cli": "^2.2.0",
|
|
71
|
-
"chromedriver": "^
|
|
71
|
+
"chromedriver": "^119.0.1",
|
|
72
72
|
"cross-env": "^7.0.3",
|
|
73
73
|
"del-cli": "^5.1.0",
|
|
74
|
-
"eslint": "^8.
|
|
75
|
-
"eslint-plugin-jsdoc": "^46.
|
|
74
|
+
"eslint": "^8.54.0",
|
|
75
|
+
"eslint-plugin-jsdoc": "^46.9.0",
|
|
76
76
|
"expect": "^29.7.0",
|
|
77
77
|
"expect-mocha-image-snapshot": "^3.0.15",
|
|
78
|
-
"fastify": "^4.24.
|
|
78
|
+
"fastify": "^4.24.3",
|
|
79
79
|
"mocha": "^10.2.0",
|
|
80
80
|
"npm-self-link": "^1.1.7",
|
|
81
|
-
"puppeteer": "^21.
|
|
82
|
-
"rollup": "^4.
|
|
81
|
+
"puppeteer": "^21.5.2",
|
|
82
|
+
"rollup": "^4.5.0",
|
|
83
83
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
84
84
|
"rollup-plugin-string": "^3.0.0",
|
|
85
|
-
"terser": "^5.
|
|
85
|
+
"terser": "^5.24.0",
|
|
86
86
|
"typescript": "^5.2.2"
|
|
87
87
|
},
|
|
88
88
|
"scripts": {
|
|
@@ -124,14 +124,12 @@ export default class ImageLayer extends Sprite {
|
|
|
124
124
|
event.on(event.VIEWPORT_ONCHANGE, this.updateLayer, this);
|
|
125
125
|
event.on(event.VIEWPORT_ONRESIZE, this.resize, this);
|
|
126
126
|
// force a first refresh when the level is loaded
|
|
127
|
-
event.
|
|
128
|
-
this.updateLayer(game.viewport.pos);
|
|
129
|
-
});
|
|
127
|
+
event.on(event.LEVEL_LOADED, this.updateLayer, this);
|
|
130
128
|
// in case the level is not added to the root container,
|
|
131
129
|
// the onActivateEvent call happens after the LEVEL_LOADED event
|
|
132
130
|
// so we need to force a first update
|
|
133
131
|
if (this.ancestor.root !== true) {
|
|
134
|
-
this.updateLayer(
|
|
132
|
+
this.updateLayer();
|
|
135
133
|
}
|
|
136
134
|
}
|
|
137
135
|
|
|
@@ -159,10 +157,12 @@ export default class ImageLayer extends Sprite {
|
|
|
159
157
|
* updateLayer function
|
|
160
158
|
* @ignore
|
|
161
159
|
*/
|
|
162
|
-
updateLayer(
|
|
160
|
+
updateLayer() {
|
|
163
161
|
const rx = this.ratio.x,
|
|
164
162
|
ry = this.ratio.y;
|
|
165
163
|
|
|
164
|
+
const viewport = game.viewport;
|
|
165
|
+
|
|
166
166
|
if (rx === 0 && ry === 0) {
|
|
167
167
|
// static image
|
|
168
168
|
return;
|
|
@@ -170,8 +170,8 @@ export default class ImageLayer extends Sprite {
|
|
|
170
170
|
|
|
171
171
|
const width = this.width,
|
|
172
172
|
height = this.height,
|
|
173
|
-
bw =
|
|
174
|
-
bh =
|
|
173
|
+
bw = viewport.bounds.width,
|
|
174
|
+
bh = viewport.bounds.height,
|
|
175
175
|
ax = this.anchorPoint.x,
|
|
176
176
|
ay = this.anchorPoint.y,
|
|
177
177
|
|
|
@@ -181,8 +181,8 @@ export default class ImageLayer extends Sprite {
|
|
|
181
181
|
* See https://github.com/melonjs/melonJS/issues/741#issuecomment-138431532
|
|
182
182
|
* for a thorough description of how this works.
|
|
183
183
|
*/
|
|
184
|
-
x = ax * (rx - 1) * (bw -
|
|
185
|
-
y = ay * (ry - 1) * (bh -
|
|
184
|
+
x = ax * (rx - 1) * (bw - viewport.width) + this.offset.x - rx * viewport.pos.x,
|
|
185
|
+
y = ay * (ry - 1) * (bh - viewport.height) + this.offset.y - ry * viewport.pos.y;
|
|
186
186
|
|
|
187
187
|
|
|
188
188
|
// Repeat horizontally; start drawing from left boundary
|
|
@@ -263,6 +263,7 @@ export default class ImageLayer extends Sprite {
|
|
|
263
263
|
// cancel all event subscriptions
|
|
264
264
|
event.off(event.VIEWPORT_ONCHANGE, this.updateLayer);
|
|
265
265
|
event.off(event.VIEWPORT_ONRESIZE, this.resize);
|
|
266
|
+
event.off(event.LEVEL_LOADED, this.updateLayer);
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
/**
|
|
@@ -258,6 +258,9 @@ export default class Renderable extends Rect {
|
|
|
258
258
|
// viewport flag
|
|
259
259
|
this._inViewport = false;
|
|
260
260
|
|
|
261
|
+
// cache value for the parentApp
|
|
262
|
+
this._parentApp = undefined;
|
|
263
|
+
|
|
261
264
|
// renderable cache tint value used by the getter/setter
|
|
262
265
|
this._tint = pool.pull("Color", 255, 255, 255, 1.0);
|
|
263
266
|
|
|
@@ -265,6 +268,20 @@ export default class Renderable extends Rect {
|
|
|
265
268
|
this.setOpacity(1.0);
|
|
266
269
|
}
|
|
267
270
|
|
|
271
|
+
/**
|
|
272
|
+
* returns the parent application (or game) to which this renderable is attached to
|
|
273
|
+
* @return {Application} the parent application or undefined if not attached to any container/app
|
|
274
|
+
*/
|
|
275
|
+
get parentApp() {
|
|
276
|
+
if (typeof this._parentApp === "undefined") {
|
|
277
|
+
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getRootAncestor === "function") {
|
|
278
|
+
// the `app` property is only defined in the world "root" container
|
|
279
|
+
this._parentApp = this.ancestor.getRootAncestor().app;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return this._parentApp;
|
|
283
|
+
}
|
|
284
|
+
|
|
268
285
|
/**
|
|
269
286
|
* Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
|
|
270
287
|
* @see Renderable#floating
|
|
@@ -790,6 +807,7 @@ export default class Renderable extends Rect {
|
|
|
790
807
|
}
|
|
791
808
|
|
|
792
809
|
this.ancestor = undefined;
|
|
810
|
+
this._parentApp = undefined;
|
|
793
811
|
|
|
794
812
|
// destroy the physic body if defined and is a builtin body object
|
|
795
813
|
if ((typeof this.body !== "undefined") && (typeof this.body.destroy === "function")) {
|