melonjs 15.3.0 → 15.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +53 -5
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +4 -8
- package/dist/melonjs.mjs/application/settings.js +5 -5
- 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 +26 -29
- 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 +2 -2
- 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 +26 -26
- 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 +2 -2
- package/dist/melonjs.mjs/state/state.js +1 -38
- package/dist/melonjs.mjs/system/device.js +49 -10
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +24 -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 +3 -7
- package/dist/melonjs.mjs/video/renderer.js +16 -16
- 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 +4 -4
- 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 +50 -52
- package/dist/melonjs.module.js +1137 -1576
- package/dist/types/application/application.d.ts +28 -4
- package/dist/types/application/header.d.ts +2 -2
- package/dist/types/application/settings.d.ts +23 -23
- package/dist/types/audio/audio.d.ts +3 -5
- 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/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 +9 -16
- 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/state.d.ts +11 -11
- package/dist/types/system/device.d.ts +15 -9
- package/dist/types/system/event.d.ts +20 -0
- package/dist/types/system/platform.d.ts +17 -17
- package/dist/types/utils/function.d.ts +1 -2
- package/dist/types/video/renderer.d.ts +13 -13
- package/dist/types/video/texture/canvas_texture.d.ts +14 -14
- package/dist/types/video/video.d.ts +2 -2
- 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 +47 -50
- package/package.json +15 -15
- package/src/application/application.js +51 -3
- package/src/application/header.js +1 -1
- package/src/application/resize.js +3 -7
- package/src/application/settings.js +4 -4
- 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 +25 -28
- 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 +1 -1
- 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 +25 -25
- 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 +1 -1
- package/src/state/state.js +0 -49
- package/src/system/device.js +48 -9
- package/src/system/event.js +22 -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 +2 -6
- package/src/video/renderer.js +15 -15
- package/src/video/texture/atlas.js +12 -12
- package/src/video/texture/canvas_texture.js +14 -14
- package/src/video/video.js +3 -3
- 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 +49 -51
- /package/src/{text → renderable/text}/textstyle.js +0 -0
package/src/physics/world.js
CHANGED
|
@@ -11,7 +11,7 @@ import state from "./../state/state.js";
|
|
|
11
11
|
* an object representing the physic world, and responsible for managing and updating all childs and physics
|
|
12
12
|
* @augments Container
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
export default class World extends Container {
|
|
15
15
|
/**
|
|
16
16
|
* @param {number} [x=0] - position of the container (accessible via the inherited pos.x property)
|
|
17
17
|
* @param {number} [y=0] - position of the container (accessible via the inherited pos.y property)
|
|
@@ -50,13 +50,10 @@ import state from "./../state/state.js";
|
|
|
50
50
|
this.gravity = new Vector2d(0, 0.98);
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* (amount of layer, layer size, amount of tiles per layer, etc.)<br>
|
|
58
|
-
* note : rendering method is also configurable per layer by adding this
|
|
59
|
-
* property to your layer (in Tiled).
|
|
53
|
+
* Enabled pre-rendering for all tile layers. <br>
|
|
54
|
+
* If false layers are rendered dynamically, if true layers are first fully rendered into an offscreen canvas.<br>
|
|
55
|
+
* the "best" rendering method depends of your game (amount of layer, layer size, amount of tiles per layer, etc.)<br>
|
|
56
|
+
* Note : rendering method is also configurable per layer by adding a boolean "preRender" property to your layer in Tiled ({@link https://doc.mapeditor.org/en/stable/manual/custom-properties/#adding-properties}).
|
|
60
57
|
* @type {boolean}
|
|
61
58
|
* @default false
|
|
62
59
|
*/
|
|
@@ -4,234 +4,234 @@
|
|
|
4
4
|
*/
|
|
5
5
|
(() => {
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
"use strict";
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (!([x, y, w, h].every((input) => Number.isFinite(input)))) {
|
|
13
|
-
|
|
14
|
-
return;
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
radii = parseRadiiArgument(radii);
|
|
9
|
+
/** @ignore */
|
|
10
|
+
function roundRect(x, y, w, h, radii) {
|
|
19
11
|
|
|
20
|
-
|
|
12
|
+
if (!([x, y, w, h].every((input) => Number.isFinite(input)))) {
|
|
21
13
|
|
|
22
|
-
|
|
14
|
+
return;
|
|
23
15
|
|
|
24
|
-
|
|
25
|
-
upperRight = toCornerPoint(radii[1]);
|
|
26
|
-
lowerRight = toCornerPoint(radii[2]);
|
|
27
|
-
lowerLeft = toCornerPoint(radii[3]);
|
|
16
|
+
}
|
|
28
17
|
|
|
29
|
-
|
|
18
|
+
radii = parseRadiiArgument(radii);
|
|
30
19
|
|
|
31
|
-
|
|
32
|
-
upperRight = toCornerPoint(radii[1]);
|
|
33
|
-
lowerLeft = toCornerPoint(radii[1]);
|
|
34
|
-
lowerRight = toCornerPoint(radii[2]);
|
|
20
|
+
let upperLeft, upperRight, lowerRight, lowerLeft;
|
|
35
21
|
|
|
36
|
-
|
|
22
|
+
if (radii.length === 4) {
|
|
37
23
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
24
|
+
upperLeft = toCornerPoint(radii[0]);
|
|
25
|
+
upperRight = toCornerPoint(radii[1]);
|
|
26
|
+
lowerRight = toCornerPoint(radii[2]);
|
|
27
|
+
lowerLeft = toCornerPoint(radii[3]);
|
|
42
28
|
|
|
43
|
-
|
|
29
|
+
} else if (radii.length === 3) {
|
|
44
30
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
31
|
+
upperLeft = toCornerPoint(radii[0]);
|
|
32
|
+
upperRight = toCornerPoint(radii[1]);
|
|
33
|
+
lowerLeft = toCornerPoint(radii[1]);
|
|
34
|
+
lowerRight = toCornerPoint(radii[2]);
|
|
49
35
|
|
|
50
|
-
|
|
36
|
+
} else if (radii.length === 2) {
|
|
51
37
|
|
|
52
|
-
|
|
38
|
+
upperLeft = toCornerPoint(radii[0]);
|
|
39
|
+
lowerRight = toCornerPoint(radii[0]);
|
|
40
|
+
upperRight = toCornerPoint(radii[1]);
|
|
41
|
+
lowerLeft = toCornerPoint(radii[1]);
|
|
53
42
|
|
|
54
|
-
|
|
43
|
+
} else if (radii.length === 1) {
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
45
|
+
upperLeft = toCornerPoint(radii[0]);
|
|
46
|
+
upperRight = toCornerPoint(radii[0]);
|
|
47
|
+
lowerRight = toCornerPoint(radii[0]);
|
|
48
|
+
lowerLeft = toCornerPoint(radii[0]);
|
|
59
49
|
|
|
60
|
-
|
|
50
|
+
} else {
|
|
61
51
|
|
|
62
|
-
|
|
52
|
+
throw new Error(radii.length + " is not a valid size for radii sequence.");
|
|
63
53
|
|
|
64
|
-
|
|
54
|
+
}
|
|
65
55
|
|
|
66
|
-
|
|
56
|
+
const corners = [upperLeft, upperRight, lowerRight, lowerLeft];
|
|
57
|
+
const negativeCorner = corners.find(({x, y}) => x < 0 || y < 0);
|
|
58
|
+
//const negativeValue = negativeCorner?.x < 0 ? negativeCorner.x : negativeCorner?.y
|
|
67
59
|
|
|
68
|
-
|
|
60
|
+
if (corners.some(({x, y}) => !Number.isFinite(x) || !Number.isFinite(y))) {
|
|
69
61
|
|
|
70
|
-
|
|
62
|
+
return;
|
|
71
63
|
|
|
72
|
-
|
|
64
|
+
}
|
|
73
65
|
|
|
74
|
-
|
|
66
|
+
if (negativeCorner) {
|
|
75
67
|
|
|
76
|
-
|
|
77
|
-
this.ellipse(x + w + upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI * 1.5, -Math.PI);
|
|
78
|
-
this.ellipse(x + w + lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI / 2);
|
|
79
|
-
this.ellipse(x - lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, 0);
|
|
80
|
-
this.ellipse(x - upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2);
|
|
68
|
+
throw new Error("Radius value " + negativeCorner + " is negative.");
|
|
81
69
|
|
|
82
|
-
|
|
70
|
+
}
|
|
83
71
|
|
|
84
|
-
|
|
85
|
-
this.ellipse(x + w + upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, -Math.PI, 1);
|
|
86
|
-
this.ellipse(x + w + lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI * 1.5, 1);
|
|
87
|
-
this.ellipse(x - lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, 0, 1);
|
|
88
|
-
this.ellipse(x - upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2, 1);
|
|
72
|
+
fixOverlappingCorners(corners);
|
|
89
73
|
|
|
90
|
-
|
|
74
|
+
if (w < 0 && h < 0) {
|
|
91
75
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
76
|
+
this.moveTo(x - upperLeft.x, y);
|
|
77
|
+
this.ellipse(x + w + upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI * 1.5, -Math.PI);
|
|
78
|
+
this.ellipse(x + w + lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI / 2);
|
|
79
|
+
this.ellipse(x - lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, 0);
|
|
80
|
+
this.ellipse(x - upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2);
|
|
97
81
|
|
|
98
|
-
|
|
82
|
+
} else if (w < 0) {
|
|
99
83
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
84
|
+
this.moveTo(x - upperLeft.x, y);
|
|
85
|
+
this.ellipse(x + w + upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, -Math.PI, 1);
|
|
86
|
+
this.ellipse(x + w + lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI * 1.5, 1);
|
|
87
|
+
this.ellipse(x - lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, 0, 1);
|
|
88
|
+
this.ellipse(x - upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2, 1);
|
|
105
89
|
|
|
106
|
-
|
|
90
|
+
} else if (h < 0) {
|
|
107
91
|
|
|
108
|
-
|
|
109
|
-
|
|
92
|
+
this.moveTo(x + upperLeft.x, y);
|
|
93
|
+
this.ellipse(x + w - upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, Math.PI / 2, 0, 1);
|
|
94
|
+
this.ellipse(x + w - lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, -Math.PI / 2, 1);
|
|
95
|
+
this.ellipse(x + lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, -Math.PI, 1);
|
|
96
|
+
this.ellipse(x + upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, -Math.PI, -Math.PI * 1.5, 1);
|
|
110
97
|
|
|
111
|
-
|
|
112
|
-
function toDOMPointInit(value) {
|
|
98
|
+
} else {
|
|
113
99
|
|
|
114
|
-
|
|
115
|
-
|
|
100
|
+
this.moveTo(x + upperLeft.x, y);
|
|
101
|
+
this.ellipse(x + w - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, 0);
|
|
102
|
+
this.ellipse(x + w - lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, Math.PI / 2);
|
|
103
|
+
this.ellipse(x + lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, Math.PI);
|
|
104
|
+
this.ellipse(x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, Math.PI, Math.PI * 1.5);
|
|
116
105
|
|
|
117
|
-
|
|
106
|
+
}
|
|
118
107
|
|
|
119
|
-
|
|
120
|
-
|
|
108
|
+
this.closePath();
|
|
109
|
+
this.moveTo(x, y);
|
|
121
110
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// or sequence<(unrestricted double or DOMPointInit)>) radii = 0'
|
|
125
|
-
const type = typeof value;
|
|
111
|
+
/** @ignore */
|
|
112
|
+
function toDOMPointInit(value) {
|
|
126
113
|
|
|
127
|
-
|
|
114
|
+
const {x, y, z, w} = value;
|
|
115
|
+
return {x, y, z, w};
|
|
128
116
|
|
|
129
|
-
|
|
117
|
+
}
|
|
130
118
|
|
|
131
|
-
|
|
132
|
-
|
|
119
|
+
/** @ignore */
|
|
120
|
+
function parseRadiiArgument(value) {
|
|
133
121
|
|
|
134
|
-
|
|
122
|
+
// https://webidl.spec.whatwg.org/#es-union
|
|
123
|
+
// with 'optional (unrestricted double or DOMPointInit
|
|
124
|
+
// or sequence<(unrestricted double or DOMPointInit)>) radii = 0'
|
|
125
|
+
const type = typeof value;
|
|
135
126
|
|
|
136
|
-
|
|
137
|
-
if (type === "object") {
|
|
127
|
+
if (type === "undefined" || value === null) {
|
|
138
128
|
|
|
139
|
-
|
|
129
|
+
return [0];
|
|
140
130
|
|
|
141
|
-
return [...value].map((elem) => {
|
|
142
|
-
// https://webidl.spec.whatwg.org/#es-union
|
|
143
|
-
// with '(unrestricted double or DOMPointInit)'
|
|
144
|
-
const elemType = typeof elem;
|
|
145
|
-
if (elemType === "undefined" || elem === null) {
|
|
146
|
-
return 0;
|
|
147
131
|
}
|
|
148
|
-
if (
|
|
149
|
-
return NaN;
|
|
150
|
-
}
|
|
151
|
-
if (elemType === "object") {
|
|
152
|
-
return toDOMPointInit(elem);
|
|
153
|
-
}
|
|
154
|
-
return toUnrestrictedNumber(elem);
|
|
155
|
-
});
|
|
132
|
+
if (type === "function") {
|
|
156
133
|
|
|
157
|
-
|
|
134
|
+
return [NaN];
|
|
158
135
|
|
|
159
|
-
|
|
136
|
+
}
|
|
137
|
+
if (type === "object") {
|
|
138
|
+
|
|
139
|
+
if (typeof value[Symbol.iterator] === "function") {
|
|
140
|
+
|
|
141
|
+
return [...value].map((elem) => {
|
|
142
|
+
// https://webidl.spec.whatwg.org/#es-union
|
|
143
|
+
// with '(unrestricted double or DOMPointInit)'
|
|
144
|
+
const elemType = typeof elem;
|
|
145
|
+
if (elemType === "undefined" || elem === null) {
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
if (elemType === "function") {
|
|
149
|
+
return NaN;
|
|
150
|
+
}
|
|
151
|
+
if (elemType === "object") {
|
|
152
|
+
return toDOMPointInit(elem);
|
|
153
|
+
}
|
|
154
|
+
return toUnrestrictedNumber(elem);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return [toDOMPointInit(value)];
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
}
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
return [toUnrestrictedNumber(value)];
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
}
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
/** @ignore */
|
|
168
|
+
function toUnrestrictedNumber(value) {
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
return +value;
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
}
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
/** @ignore */
|
|
175
|
+
function toCornerPoint(value) {
|
|
176
176
|
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
const asNumber = toUnrestrictedNumber(value);
|
|
178
|
+
if (Number.isFinite(asNumber)) {
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
return {
|
|
181
|
+
x: asNumber,
|
|
182
|
+
y: asNumber
|
|
183
|
+
};
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
}
|
|
186
|
+
if (Object(value) === value) {
|
|
187
187
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
return {
|
|
189
|
+
x: toUnrestrictedNumber(value.x || 0),
|
|
190
|
+
y: toUnrestrictedNumber(value.y || 0)
|
|
191
|
+
};
|
|
192
192
|
|
|
193
|
-
|
|
193
|
+
}
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
return {
|
|
196
|
+
x: NaN,
|
|
197
|
+
y: NaN
|
|
198
|
+
};
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
}
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
202
|
+
/** @ignore */
|
|
203
|
+
function fixOverlappingCorners(corners) {
|
|
204
|
+
const [upperLeft, upperRight, lowerRight, lowerLeft] = corners;
|
|
205
|
+
const factors = [
|
|
206
|
+
Math.abs(w) / (upperLeft.x + upperRight.x),
|
|
207
|
+
Math.abs(h) / (upperRight.y + lowerRight.y),
|
|
208
|
+
Math.abs(w) / (lowerRight.x + lowerLeft.x),
|
|
209
|
+
Math.abs(h) / (upperLeft.y + lowerLeft.y)
|
|
210
|
+
];
|
|
211
|
+
const minFactor = Math.min(...factors);
|
|
212
|
+
if (minFactor <= 1) {
|
|
213
|
+
corners.forEach((radii) => {
|
|
214
|
+
radii.x *= minFactor;
|
|
215
|
+
radii.y *= minFactor;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
218
219
|
}
|
|
219
|
-
}
|
|
220
220
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
if (globalThis.CanvasRenderingContext2D) {
|
|
222
|
+
if (typeof globalThis.Path2D.prototype.roundRect === "undefined") {
|
|
223
|
+
globalThis.Path2D.prototype.roundRect = roundRect;
|
|
224
|
+
}
|
|
224
225
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
226
|
+
if (globalThis.CanvasRenderingContext2D) {
|
|
227
|
+
if (typeof globalThis.CanvasRenderingContext2D.prototype.roundRect === "undefined") {
|
|
228
|
+
globalThis.CanvasRenderingContext2D.prototype.roundRect = roundRect;
|
|
229
|
+
}
|
|
229
230
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
231
|
+
if (globalThis.OffscreenCanvasRenderingContext2D) {
|
|
232
|
+
if (typeof globalThis.OffscreenCanvasRenderingContext2D.prototype.roundRect === "undefined") {
|
|
233
|
+
globalThis.OffscreenCanvasRenderingContext2D.prototype.roundRect = roundRect;
|
|
234
|
+
}
|
|
234
235
|
}
|
|
235
|
-
}
|
|
236
236
|
|
|
237
237
|
})();
|
|
@@ -8,7 +8,7 @@ import pool from "./../system/pooling.js";
|
|
|
8
8
|
* a basic collectable helper class for immovable object (e.g. a coin)
|
|
9
9
|
* @augments Sprite
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
export default class Collectable extends Sprite {
|
|
12
12
|
/**
|
|
13
13
|
* @param {number} x - the x coordinates of the collectable
|
|
14
14
|
* @param {number} y - the y coordinates of the collectable
|
|
@@ -7,7 +7,7 @@ import Renderable from "./renderable.js";
|
|
|
7
7
|
* a generic Color Layer Object. Fills the entire Canvas with the color not just the container the object belongs to.
|
|
8
8
|
* @augments Renderable
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
export default class ColorLayer extends Renderable {
|
|
11
11
|
/**
|
|
12
12
|
* @param {string} name - Layer name
|
|
13
13
|
* @param {Color|string} color - CSS color
|
|
@@ -24,9 +24,9 @@ import Renderable from "./renderable.js";
|
|
|
24
24
|
* @name color
|
|
25
25
|
* @memberof ColorLayer#
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
this.color = pool.pull("Color").parseCSS(color);
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
this.onResetEvent(name, color, z);
|
|
30
30
|
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -22,7 +22,7 @@ let globalFloatingCounter = 0;
|
|
|
22
22
|
* Container represents a collection of child objects
|
|
23
23
|
* @augments Renderable
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
export default class Container extends Renderable {
|
|
26
26
|
/**
|
|
27
27
|
* @param {number} [x=0] - position of the container (accessible via the inherited pos.x property)
|
|
28
28
|
* @param {number} [y=0] - position of the container (accessible via the inherited pos.y property)
|
|
@@ -177,7 +177,7 @@ let globalFloatingCounter = 0;
|
|
|
177
177
|
* will not be in any container. <br>
|
|
178
178
|
* if the given child implements a onActivateEvent method, that method will be called
|
|
179
179
|
* once the child is added to this container.
|
|
180
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
180
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
|
|
181
181
|
* @param {number} [z] - forces the z index of the child to the specified value
|
|
182
182
|
* @returns {Renderable} the added child
|
|
183
183
|
*/
|
|
@@ -210,7 +210,7 @@ let globalFloatingCounter = 0;
|
|
|
210
210
|
// set the child z value if required
|
|
211
211
|
if (typeof(child.pos) !== "undefined") {
|
|
212
212
|
if (typeof(z) === "number") {
|
|
213
|
-
|
|
213
|
+
child.pos.z = z;
|
|
214
214
|
} else if (this.autoDepth === true) {
|
|
215
215
|
child.pos.z = this.getChildren().length;
|
|
216
216
|
}
|
|
@@ -231,7 +231,7 @@ let globalFloatingCounter = 0;
|
|
|
231
231
|
|
|
232
232
|
// if a physic body(ies) to the game world
|
|
233
233
|
if (this.isAttachedToRoot()) {
|
|
234
|
-
|
|
234
|
+
let worldContainer = this.getRootAncestor();
|
|
235
235
|
if (child.body instanceof Body) {
|
|
236
236
|
worldContainer.addBody(child.body);
|
|
237
237
|
}
|
|
@@ -259,8 +259,8 @@ let globalFloatingCounter = 0;
|
|
|
259
259
|
/**
|
|
260
260
|
* Add a child to the container at the specified index<br>
|
|
261
261
|
* (the list won't be sorted after insertion)
|
|
262
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
263
|
-
* @param {number} index
|
|
262
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
|
|
263
|
+
* @param {number} index - The index at which to insert the child
|
|
264
264
|
* @returns {Renderable} the added child
|
|
265
265
|
*/
|
|
266
266
|
addChildAt(child, index) {
|
|
@@ -301,7 +301,7 @@ let globalFloatingCounter = 0;
|
|
|
301
301
|
|
|
302
302
|
// if a physic body(ies) to the game world
|
|
303
303
|
if (this.isAttachedToRoot()) {
|
|
304
|
-
|
|
304
|
+
let worldContainer = this.getRootAncestor();
|
|
305
305
|
if (child.body instanceof Body) {
|
|
306
306
|
worldContainer.addBody(child.body);
|
|
307
307
|
}
|
|
@@ -370,8 +370,8 @@ let globalFloatingCounter = 0;
|
|
|
370
370
|
|
|
371
371
|
/**
|
|
372
372
|
* Swaps the position (z-index) of 2 children
|
|
373
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
374
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child2
|
|
373
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
|
|
374
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child2 - Child to be added
|
|
375
375
|
*/
|
|
376
376
|
swapChildren(child, child2) {
|
|
377
377
|
let index = this.getChildIndex(child);
|
|
@@ -395,7 +395,7 @@ let globalFloatingCounter = 0;
|
|
|
395
395
|
|
|
396
396
|
/**
|
|
397
397
|
* Returns the Child at the specified index
|
|
398
|
-
* @param {number} index
|
|
398
|
+
* @param {number} index - The index of the child
|
|
399
399
|
* @returns {Renderable} the child at the specified index
|
|
400
400
|
*/
|
|
401
401
|
getChildAt(index) {
|
|
@@ -409,7 +409,7 @@ let globalFloatingCounter = 0;
|
|
|
409
409
|
|
|
410
410
|
/**
|
|
411
411
|
* Returns the index of the given Child
|
|
412
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
412
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
|
|
413
413
|
* @returns {number} index
|
|
414
414
|
*/
|
|
415
415
|
getChildIndex(child) {
|
|
@@ -418,7 +418,7 @@ let globalFloatingCounter = 0;
|
|
|
418
418
|
|
|
419
419
|
/**
|
|
420
420
|
* Returns the next child within the container or undefined if none
|
|
421
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
421
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
|
|
422
422
|
* @returns {Renderable} child
|
|
423
423
|
*/
|
|
424
424
|
getNextChild(child) {
|
|
@@ -431,7 +431,7 @@ let globalFloatingCounter = 0;
|
|
|
431
431
|
|
|
432
432
|
/**
|
|
433
433
|
* Returns true if contains the specified Child
|
|
434
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
434
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
|
|
435
435
|
* @returns {boolean}
|
|
436
436
|
*/
|
|
437
437
|
hasChild(child) {
|
|
@@ -490,7 +490,7 @@ let globalFloatingCounter = 0;
|
|
|
490
490
|
|
|
491
491
|
/**
|
|
492
492
|
* returns the list of childs with the specified class type
|
|
493
|
-
* @param {object} classType
|
|
493
|
+
* @param {object} classType - Class type
|
|
494
494
|
* @returns {Renderable[]} Array of children
|
|
495
495
|
*/
|
|
496
496
|
getChildByType(classType) {
|
|
@@ -570,7 +570,7 @@ let globalFloatingCounter = 0;
|
|
|
570
570
|
|
|
571
571
|
/**
|
|
572
572
|
* Checks if this container is root or if it's attached to the root container.
|
|
573
|
-
* @returns {boolean}
|
|
573
|
+
* @returns {boolean} true if this container is root or if it's attached to the root container
|
|
574
574
|
*/
|
|
575
575
|
isAttachedToRoot() {
|
|
576
576
|
if (this.root === true) {
|
|
@@ -589,7 +589,7 @@ let globalFloatingCounter = 0;
|
|
|
589
589
|
|
|
590
590
|
/**
|
|
591
591
|
* Returns the instance of the root container (i.e. the current application World container).
|
|
592
|
-
* @returns {Container}
|
|
592
|
+
* @returns {Container} root container
|
|
593
593
|
*/
|
|
594
594
|
getRootAncestor() {
|
|
595
595
|
if (this.root === true) {
|
|
@@ -639,7 +639,7 @@ let globalFloatingCounter = 0;
|
|
|
639
639
|
/**
|
|
640
640
|
* Invokes the removeChildNow in a defer, to ensure the child is removed safely after the update & draw stack has completed. <br>
|
|
641
641
|
* if the given child implements a onDeactivateEvent() method, that method will be called once the child is removed from this container.
|
|
642
|
-
* @param {RendRenderable|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapTexterable} child
|
|
642
|
+
* @param {RendRenderable|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapTexterable} child - Child to be removed
|
|
643
643
|
* @param {boolean} [keepalive=false] - true to prevent calling child.destroy()
|
|
644
644
|
*/
|
|
645
645
|
removeChild(child, keepalive) {
|
|
@@ -655,7 +655,7 @@ let globalFloatingCounter = 0;
|
|
|
655
655
|
* Removes (and optionally destroys) a child from the container.<br>
|
|
656
656
|
* (removal is immediate and unconditional)<br>
|
|
657
657
|
* Never use keepalive=true with objects from {@link pool}. Doing so will create a memory leak.
|
|
658
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
658
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be removed
|
|
659
659
|
* @param {boolean} [keepalive=False] - True to prevent calling child.destroy()
|
|
660
660
|
*/
|
|
661
661
|
removeChildNow(child, keepalive) {
|
|
@@ -667,7 +667,7 @@ let globalFloatingCounter = 0;
|
|
|
667
667
|
// remove the body first to avoid a condition where a body can be detached
|
|
668
668
|
// from its parent, before the body is removed from the game world
|
|
669
669
|
if (child.body instanceof Body) {
|
|
670
|
-
|
|
670
|
+
this.getRootAncestor().removeBody(child.body);
|
|
671
671
|
}
|
|
672
672
|
|
|
673
673
|
if (!keepalive) {
|
|
@@ -718,7 +718,7 @@ let globalFloatingCounter = 0;
|
|
|
718
718
|
|
|
719
719
|
/**
|
|
720
720
|
* Move the child in the group one step forward (z depth).
|
|
721
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
721
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
|
|
722
722
|
*/
|
|
723
723
|
moveUp(child) {
|
|
724
724
|
let childIndex = this.getChildIndex(child);
|
|
@@ -732,7 +732,7 @@ let globalFloatingCounter = 0;
|
|
|
732
732
|
|
|
733
733
|
/**
|
|
734
734
|
* Move the child in the group one step backward (z depth).
|
|
735
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
735
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
|
|
736
736
|
*/
|
|
737
737
|
moveDown(child) {
|
|
738
738
|
let childIndex = this.getChildIndex(child);
|
|
@@ -746,7 +746,7 @@ let globalFloatingCounter = 0;
|
|
|
746
746
|
|
|
747
747
|
/**
|
|
748
748
|
* Move the specified child to the top(z depth).
|
|
749
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
749
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
|
|
750
750
|
*/
|
|
751
751
|
moveToTop(child) {
|
|
752
752
|
let childIndex = this.getChildIndex(child);
|
|
@@ -763,7 +763,7 @@ let globalFloatingCounter = 0;
|
|
|
763
763
|
|
|
764
764
|
/**
|
|
765
765
|
* Move the specified child the bottom (z depth).
|
|
766
|
-
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
|
|
766
|
+
* @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
|
|
767
767
|
*/
|
|
768
768
|
moveToBottom(child) {
|
|
769
769
|
let childIndex = this.getChildIndex(child);
|
|
@@ -779,7 +779,7 @@ let globalFloatingCounter = 0;
|
|
|
779
779
|
}
|
|
780
780
|
|
|
781
781
|
/**
|
|
782
|
-
* Manually trigger the sort of all the childs in the container
|
|
782
|
+
* Manually trigger the sort of all the childs in the container
|
|
783
783
|
* @param {boolean} [recursive=false] - recursively sort all containers if true
|
|
784
784
|
*/
|
|
785
785
|
sort(recursive) {
|