melonjs 14.3.0 → 14.5.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 +11 -55
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
- package/dist/melonjs.mjs/_virtual/howler.js +2 -2
- package/dist/melonjs.mjs/_virtual/index.js +2 -2
- package/dist/melonjs.mjs/_virtual/index2.js +2 -2
- package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
- package/dist/melonjs.mjs/application/application.js +8 -21
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +4 -2
- package/dist/melonjs.mjs/application/settings.js +2 -2
- package/dist/melonjs.mjs/audio/audio.js +5 -5
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/const.js +32 -0
- package/dist/melonjs.mjs/entity/entity.js +44 -10
- package/dist/melonjs.mjs/geometries/ellipse.js +3 -4
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +19 -43
- package/dist/melonjs.mjs/geometries/point.js +2 -7
- package/dist/melonjs.mjs/geometries/poly.js +3 -6
- package/dist/melonjs.mjs/geometries/rectangle.js +14 -10
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/index.js +11 -9
- package/dist/melonjs.mjs/input/gamepad.js +11 -17
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +2 -2
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +3 -17
- package/dist/melonjs.mjs/lang/console.js +44 -0
- package/dist/melonjs.mjs/lang/deprecated.js +4 -40
- package/dist/melonjs.mjs/level/level.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +67 -64
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +21 -83
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +6 -20
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
- package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
- package/dist/melonjs.mjs/loader/cache.js +24 -0
- package/dist/melonjs.mjs/loader/loader.js +332 -715
- package/dist/melonjs.mjs/loader/loadingscreen.js +5 -5
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
- package/dist/melonjs.mjs/loader/parser.js +281 -0
- package/dist/melonjs.mjs/loader/settings.js +91 -0
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +8 -10
- package/dist/melonjs.mjs/math/matrix3.js +19 -22
- package/dist/melonjs.mjs/math/observable_vector2.js +4 -4
- package/dist/melonjs.mjs/math/observable_vector3.js +4 -5
- package/dist/melonjs.mjs/math/vector2.js +4 -4
- package/dist/melonjs.mjs/math/vector3.js +4 -5
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
- package/dist/melonjs.mjs/particles/emitter.js +4 -4
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +2 -2
- package/dist/melonjs.mjs/physics/body.js +19 -15
- package/dist/melonjs.mjs/physics/bounds.js +19 -71
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +2 -2
- package/dist/melonjs.mjs/physics/response.js +2 -2
- package/dist/melonjs.mjs/physics/sat.js +2 -2
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +4 -4
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
- package/dist/melonjs.mjs/renderable/container.js +26 -20
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +8 -2
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +127 -106
- package/dist/melonjs.mjs/renderable/sprite.js +34 -55
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
- package/dist/melonjs.mjs/state/stage.js +2 -2
- package/dist/melonjs.mjs/state/state.js +3 -3
- package/dist/melonjs.mjs/system/device.js +2 -2
- package/dist/melonjs.mjs/system/dom.js +2 -2
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +2 -2
- package/dist/melonjs.mjs/system/pooling.js +9 -19
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptext.js +67 -9
- package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/text/glyph.js +2 -2
- package/dist/melonjs.mjs/text/text.js +2 -2
- package/dist/melonjs.mjs/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/text/textstyle.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +2 -2
- package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +2 -2
- package/dist/melonjs.mjs/utils/array.js +2 -2
- package/dist/melonjs.mjs/utils/file.js +2 -2
- package/dist/melonjs.mjs/utils/function.js +2 -2
- package/dist/melonjs.mjs/utils/string.js +3 -3
- package/dist/melonjs.mjs/utils/utils.js +3 -5
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
- package/dist/melonjs.mjs/video/renderer.js +2 -2
- package/dist/melonjs.mjs/video/texture/atlas.js +11 -10
- package/dist/melonjs.mjs/video/texture/cache.js +4 -4
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
- package/dist/melonjs.mjs/video/video.js +17 -14
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +235 -0
- package/{src/video/webgl → dist/melonjs.mjs/video/webgl/compositors}/webgl_compositor.js +28 -205
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +3 -3
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +3 -3
- package/dist/melonjs.module.js +19807 -19896
- package/dist/types/application/application.d.ts +5 -1
- package/dist/types/application/resize.d.ts +1 -0
- package/dist/types/const.d.ts +21 -0
- package/dist/types/entity/entity.d.ts +2 -2
- package/dist/types/geometries/path2d.d.ts +5 -31
- package/dist/types/geometries/point.d.ts +2 -7
- package/dist/types/geometries/poly.d.ts +0 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/lang/console.d.ts +7 -0
- package/dist/types/lang/deprecated.d.ts +0 -8
- package/dist/types/level/tiled/TMXGroup.d.ts +7 -28
- package/dist/types/level/tiled/TMXLayer.d.ts +25 -47
- package/dist/types/level/tiled/TMXObject.d.ts +20 -82
- package/dist/types/level/tiled/TMXTile.d.ts +11 -25
- package/dist/types/level/tiled/TMXTileMap.d.ts +18 -56
- package/dist/types/level/tiled/TMXTileset.d.ts +7 -21
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +3 -9
- package/dist/types/level/tiled/constants.d.ts +5 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +6 -18
- package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
- package/dist/types/loader/cache.d.ts +7 -0
- package/dist/types/loader/loader.d.ts +166 -181
- package/dist/types/loader/parser.d.ts +41 -0
- package/dist/types/loader/settings.d.ts +57 -0
- package/dist/types/particles/emitter.d.ts +4 -4
- package/dist/types/physics/bounds.d.ts +29 -84
- package/dist/types/renderable/container.d.ts +0 -11
- package/dist/types/renderable/renderable.d.ts +37 -31
- package/dist/types/renderable/sprite.d.ts +3 -3
- package/dist/types/state/state.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +2 -2
- package/dist/types/video/renderer.d.ts +1 -1
- package/dist/types/video/video.d.ts +7 -6
- package/dist/types/video/webgl/compositors/compositor.d.ts +101 -0
- package/dist/types/video/webgl/compositors/webgl_compositor.d.ts +86 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +2 -3
- package/dist/types/video/webgl/webgl_renderer.d.ts +1 -1
- package/package.json +17 -16
- package/src/application/application.js +6 -19
- package/src/application/resize.js +2 -0
- package/src/audio/audio.js +3 -3
- package/src/const.js +23 -0
- package/src/entity/entity.js +42 -8
- package/src/geometries/ellipse.js +1 -2
- package/src/geometries/path2d.js +17 -41
- package/src/geometries/point.js +0 -5
- package/src/geometries/poly.js +1 -4
- package/src/geometries/rectangle.js +12 -8
- package/src/index.js +4 -2
- package/src/input/gamepad.js +9 -15
- package/src/input/pointerevent.js +1 -15
- package/src/lang/console.js +36 -0
- package/src/lang/deprecated.js +2 -37
- package/src/level/level.js +2 -2
- package/src/level/tiled/TMXGroup.js +0 -21
- package/src/level/tiled/TMXLayer.js +65 -62
- package/src/level/tiled/TMXObject.js +0 -62
- package/src/level/tiled/TMXTile.js +8 -24
- package/src/level/tiled/TMXTileMap.js +19 -81
- package/src/level/tiled/TMXTileset.js +4 -18
- package/src/level/tiled/TMXTilesetGroup.js +1 -9
- package/src/level/tiled/TMXUtils.js +38 -15
- package/src/level/tiled/constants.js +8 -0
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
- package/src/level/tiled/renderer/TMXRenderer.js +0 -12
- package/src/level/tiled/renderer/autodetect.js +29 -0
- package/src/loader/cache.js +16 -0
- package/src/loader/loader.js +339 -709
- package/src/loader/loadingscreen.js +3 -3
- package/src/loader/parser.js +279 -0
- package/src/loader/settings.js +85 -0
- package/src/math/matrix2.js +6 -8
- package/src/math/matrix3.js +17 -20
- package/src/math/observable_vector2.js +2 -2
- package/src/math/observable_vector3.js +2 -3
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +2 -3
- package/src/particles/emitter.js +2 -2
- package/src/physics/body.js +17 -13
- package/src/physics/bounds.js +17 -69
- package/src/physics/collision.js +1 -1
- package/src/renderable/container.js +24 -18
- package/src/renderable/imagelayer.js +6 -0
- package/src/renderable/renderable.js +125 -104
- package/src/renderable/sprite.js +32 -53
- package/src/state/state.js +1 -1
- package/src/system/pooling.js +7 -17
- package/src/text/bitmaptext.js +65 -7
- package/src/utils/string.js +1 -1
- package/src/utils/utils.js +1 -3
- package/src/video/texture/atlas.js +9 -8
- package/src/video/texture/cache.js +2 -2
- package/src/video/video.js +15 -12
- package/src/video/webgl/compositors/compositor.js +227 -0
- package/src/video/webgl/compositors/webgl_compositor.js +300 -0
- package/src/video/webgl/webgl_renderer.js +1 -1
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Renderable from './renderable.js';
|
|
9
9
|
import utils from '../utils/utils.js';
|
|
@@ -136,7 +136,13 @@ let globalFloatingCounter = 0;
|
|
|
136
136
|
// subscribe on the canvas resize event
|
|
137
137
|
if (this.root === true) {
|
|
138
138
|
// Workaround for not updating container child-bounds automatically (it's expensive!)
|
|
139
|
-
on(CANVAS_ONRESIZE,
|
|
139
|
+
on(CANVAS_ONRESIZE, () => {
|
|
140
|
+
// temporarly enable the enableChildBoundsUpdate flag
|
|
141
|
+
this.enableChildBoundsUpdate === true;
|
|
142
|
+
// update bounds
|
|
143
|
+
this.updateBounds();
|
|
144
|
+
this.enableChildBoundsUpdate === false;
|
|
145
|
+
});
|
|
140
146
|
}
|
|
141
147
|
}
|
|
142
148
|
|
|
@@ -196,6 +202,10 @@ let globalFloatingCounter = 0;
|
|
|
196
202
|
|
|
197
203
|
child.ancestor = this;
|
|
198
204
|
this.getChildren().push(child);
|
|
205
|
+
if (typeof child.updateBounds === "function") {
|
|
206
|
+
// update child bounds to reflect the new ancestor
|
|
207
|
+
child.updateBounds();
|
|
208
|
+
}
|
|
199
209
|
|
|
200
210
|
// set the child z value if required
|
|
201
211
|
if (typeof(child.pos) !== "undefined") {
|
|
@@ -220,8 +230,8 @@ let globalFloatingCounter = 0;
|
|
|
220
230
|
}
|
|
221
231
|
|
|
222
232
|
// force bounds update if required
|
|
223
|
-
if (this.enableChildBoundsUpdate) {
|
|
224
|
-
this.updateBounds(
|
|
233
|
+
if (this.enableChildBoundsUpdate === true) {
|
|
234
|
+
this.updateBounds();
|
|
225
235
|
}
|
|
226
236
|
|
|
227
237
|
// if a physic body is defined, add it to the game world
|
|
@@ -269,8 +279,8 @@ let globalFloatingCounter = 0;
|
|
|
269
279
|
}
|
|
270
280
|
|
|
271
281
|
// force bounds update if required
|
|
272
|
-
if (this.enableChildBoundsUpdate) {
|
|
273
|
-
this.updateBounds(
|
|
282
|
+
if (this.enableChildBoundsUpdate === true) {
|
|
283
|
+
this.updateBounds();
|
|
274
284
|
}
|
|
275
285
|
|
|
276
286
|
// if a physic body is defined, add it to the game world
|
|
@@ -504,26 +514,25 @@ let globalFloatingCounter = 0;
|
|
|
504
514
|
/**
|
|
505
515
|
* update the bounding box for this shape.
|
|
506
516
|
* @ignore
|
|
517
|
+
* @param {boolean} absolute - update the bounds size and position in (world) absolute coordinates
|
|
507
518
|
* @returns {Bounds} this shape bounding box Rectangle object
|
|
508
519
|
*/
|
|
509
|
-
updateBounds(
|
|
520
|
+
updateBounds(absolute = true) {
|
|
521
|
+
var bounds = this.getBounds();
|
|
510
522
|
|
|
511
523
|
// call parent method
|
|
512
|
-
super.updateBounds();
|
|
524
|
+
super.updateBounds(absolute);
|
|
513
525
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
if (forceUpdateChildBounds === true || this.enableChildBoundsUpdate === true) {
|
|
526
|
+
if (this.enableChildBoundsUpdate === true) {
|
|
517
527
|
this.forEach((child) => {
|
|
518
528
|
if (child.isRenderable) {
|
|
519
529
|
var childBounds = child.getBounds();
|
|
520
530
|
if (childBounds.isFinite()) {
|
|
521
|
-
bounds.addBounds(
|
|
531
|
+
bounds.addBounds(childBounds);
|
|
522
532
|
}
|
|
523
533
|
}
|
|
524
534
|
});
|
|
525
535
|
}
|
|
526
|
-
|
|
527
536
|
return bounds;
|
|
528
537
|
}
|
|
529
538
|
|
|
@@ -551,7 +560,7 @@ let globalFloatingCounter = 0;
|
|
|
551
560
|
* update the cointainer's bounding rect (private)
|
|
552
561
|
* @ignore
|
|
553
562
|
*/
|
|
554
|
-
updateBoundsPos(newX, newY) {
|
|
563
|
+
updateBoundsPos(newX = this.pos.x, newY = this.pos.y) {
|
|
555
564
|
// call the parent method
|
|
556
565
|
super.updateBoundsPos(newX, newY);
|
|
557
566
|
|
|
@@ -559,14 +568,11 @@ let globalFloatingCounter = 0;
|
|
|
559
568
|
this.forEach((child) => {
|
|
560
569
|
if (child.isRenderable) {
|
|
561
570
|
child.updateBoundsPos(
|
|
562
|
-
// workaround on this.pos being updated after
|
|
563
|
-
// the callback being triggered
|
|
564
571
|
child.pos.x + newX - this.pos.x,
|
|
565
572
|
child.pos.y + newY - this.pos.y
|
|
566
573
|
);
|
|
567
574
|
}
|
|
568
575
|
});
|
|
569
|
-
return this.getBounds();
|
|
570
576
|
}
|
|
571
577
|
|
|
572
578
|
/**
|
|
@@ -638,8 +644,8 @@ let globalFloatingCounter = 0;
|
|
|
638
644
|
}
|
|
639
645
|
|
|
640
646
|
// force bounds update if required
|
|
641
|
-
if (this.enableChildBoundsUpdate) {
|
|
642
|
-
this.updateBounds(
|
|
647
|
+
if (this.enableChildBoundsUpdate === true) {
|
|
648
|
+
this.updateBounds();
|
|
643
649
|
}
|
|
644
650
|
|
|
645
651
|
// triggered callback if defined
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Vector2d from '../math/vector2.js';
|
|
9
9
|
import { emit, DRAGSTART, DRAGEND, on, POINTERMOVE, off } from '../system/event.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { renderer } from '../video/video.js';
|
|
9
9
|
import { on, ONCONTEXT_RESTORED, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, once, off, LEVEL_LOADED } from '../system/event.js';
|
|
@@ -241,11 +241,17 @@ import { isNumeric } from '../utils/string.js';
|
|
|
241
241
|
preDraw(renderer) {
|
|
242
242
|
// save the context
|
|
243
243
|
renderer.save();
|
|
244
|
+
|
|
244
245
|
// apply the defined alpha value
|
|
245
246
|
renderer.setGlobalAlpha(renderer.globalAlpha() * this.getOpacity());
|
|
246
247
|
|
|
247
248
|
// apply the defined tint, if any
|
|
248
249
|
renderer.setTint(this.tint);
|
|
250
|
+
|
|
251
|
+
// apply blending if different from "normal"
|
|
252
|
+
if (this.blendMode !== renderer.getBlendMode()) {
|
|
253
|
+
renderer.setBlendMode(this.blendMode);
|
|
254
|
+
}
|
|
249
255
|
}
|
|
250
256
|
|
|
251
257
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import pool from '../system/pooling.js';
|
|
9
9
|
import Renderable from './renderable.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Sprite from './sprite.js';
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.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
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import ObservableVector2d from '../math/observable_vector2.js';
|
|
9
9
|
import ObservableVector3d from '../math/observable_vector3.js';
|
|
@@ -30,18 +30,42 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
30
30
|
// parent constructor
|
|
31
31
|
super(x, y, width, height);
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
if (this.pos instanceof ObservableVector3d) {
|
|
34
|
+
this.pos.setMuted(x, y, 0).setCallback(this.updateBoundsPos, this);
|
|
35
|
+
} else {
|
|
36
|
+
/**
|
|
37
|
+
* Position of the Renderable relative to its parent container
|
|
38
|
+
* @public
|
|
39
|
+
* @type {ObservableVector3d}
|
|
40
|
+
*/
|
|
41
|
+
this.pos = pool.pull("ObservableVector3d", x, y, 0, { onUpdate: this.updateBoundsPos, scope: this});
|
|
42
|
+
}
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
if (this.anchorPoint instanceof ObservableVector2d) {
|
|
45
|
+
this.anchorPoint.setMuted(0.5, 0.5).setCallback(this.onAnchorUpdate, this);
|
|
46
|
+
} else {
|
|
47
|
+
/**
|
|
48
|
+
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
49
|
+
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
50
|
+
* <img src="images/anchor_point.png"/><br>
|
|
51
|
+
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
52
|
+
* <br>
|
|
53
|
+
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
54
|
+
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
55
|
+
* @type {ObservableVector2d}
|
|
56
|
+
* @default <0.5,0.5>
|
|
57
|
+
*/
|
|
58
|
+
this.anchorPoint = pool.pull("ObservableVector2d", 0.5, 0.5, { onUpdate: this.onAnchorUpdate, scope: this });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (typeof this.currentTransform === "undefined") {
|
|
62
|
+
/**
|
|
63
|
+
* the renderable default transformation matrix
|
|
64
|
+
* @type {Matrix2d}
|
|
65
|
+
*/
|
|
66
|
+
this.currentTransform = pool.pull("Matrix2d");
|
|
67
|
+
}
|
|
68
|
+
this.currentTransform.identity();
|
|
45
69
|
|
|
46
70
|
/**
|
|
47
71
|
* the renderable physic body
|
|
@@ -80,15 +104,6 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
80
104
|
*/
|
|
81
105
|
this.body = undefined;
|
|
82
106
|
|
|
83
|
-
if (typeof this.currentTransform === "undefined") {
|
|
84
|
-
/**
|
|
85
|
-
* the renderable default transformation matrix
|
|
86
|
-
* @type {Matrix2d}
|
|
87
|
-
*/
|
|
88
|
-
this.currentTransform = pool.pull("Matrix2d");
|
|
89
|
-
}
|
|
90
|
-
this.currentTransform.identity();
|
|
91
|
-
|
|
92
107
|
/**
|
|
93
108
|
* (G)ame (U)nique (Id)entifier" <br>
|
|
94
109
|
* a GUID will be allocated for any renderable object added <br>
|
|
@@ -139,23 +154,6 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
139
154
|
*/
|
|
140
155
|
this.floating = false;
|
|
141
156
|
|
|
142
|
-
if (this.anchorPoint instanceof ObservableVector2d) {
|
|
143
|
-
this.anchorPoint.setMuted(0.5, 0.5).setCallback(this.onAnchorUpdate, this);
|
|
144
|
-
} else {
|
|
145
|
-
/**
|
|
146
|
-
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
147
|
-
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
148
|
-
* <img src="images/anchor_point.png"/><br>
|
|
149
|
-
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
150
|
-
* <br>
|
|
151
|
-
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
152
|
-
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
153
|
-
* @type {ObservableVector2d}
|
|
154
|
-
* @default <0.5,0.5>
|
|
155
|
-
*/
|
|
156
|
-
this.anchorPoint = pool.pull("ObservableVector2d", 0.5, 0.5, { onUpdate: this.onAnchorUpdate, scope: this });
|
|
157
|
-
}
|
|
158
|
-
|
|
159
157
|
/**
|
|
160
158
|
* When enabled, an object container will automatically apply
|
|
161
159
|
* any defined transformation before calling the child draw method.
|
|
@@ -231,23 +229,25 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
231
229
|
*/
|
|
232
230
|
this.name = "";
|
|
233
231
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
232
|
+
/**
|
|
233
|
+
* to identify the object as a renderable object
|
|
234
|
+
* @ignore
|
|
235
|
+
*/
|
|
236
|
+
this.isRenderable = true;
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* If true then physic collision and input events will not impact this renderable
|
|
240
|
+
* @type {boolean}
|
|
241
|
+
* @default true
|
|
242
|
+
*/
|
|
243
|
+
this.isKinematic = true;
|
|
244
244
|
|
|
245
245
|
/**
|
|
246
246
|
* when true the renderable will be redrawn during the next update cycle
|
|
247
247
|
* @type {boolean}
|
|
248
|
-
* @default
|
|
248
|
+
* @default true
|
|
249
249
|
*/
|
|
250
|
-
this.isDirty =
|
|
250
|
+
this.isDirty = true;
|
|
251
251
|
|
|
252
252
|
// keep track of when we flip
|
|
253
253
|
this._flip = {
|
|
@@ -344,7 +344,7 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
344
344
|
if (typeof this._bounds === "undefined") {
|
|
345
345
|
super.getBounds();
|
|
346
346
|
if (this.isFinite()) {
|
|
347
|
-
this.
|
|
347
|
+
this.updateBounds();
|
|
348
348
|
} else {
|
|
349
349
|
// e.g. containers or game world can have infinite size
|
|
350
350
|
this._bounds.setMinMax(this.pos.x, this.pos.y, this.width, this.height);
|
|
@@ -384,8 +384,11 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
384
384
|
* @returns {Renderable} Reference to this object for method chaining
|
|
385
385
|
*/
|
|
386
386
|
flipX(flip = true) {
|
|
387
|
-
this.
|
|
388
|
-
|
|
387
|
+
if (this.isFlippedX !== flip) {
|
|
388
|
+
this._flip.x = !!flip;
|
|
389
|
+
this.scale(-1, 1);
|
|
390
|
+
this.isDirty = true;
|
|
391
|
+
}
|
|
389
392
|
return this;
|
|
390
393
|
}
|
|
391
394
|
|
|
@@ -396,8 +399,11 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
396
399
|
* @returns {Renderable} Reference to this object for method chaining
|
|
397
400
|
*/
|
|
398
401
|
flipY(flip = true) {
|
|
399
|
-
this.
|
|
400
|
-
|
|
402
|
+
if (this.isFlippedY !== flip) {
|
|
403
|
+
this._flip.y = !!flip;
|
|
404
|
+
this.scale(1, -1);
|
|
405
|
+
this.isDirty = true;
|
|
406
|
+
}
|
|
401
407
|
return this;
|
|
402
408
|
}
|
|
403
409
|
|
|
@@ -409,8 +415,7 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
409
415
|
*/
|
|
410
416
|
transform(m) {
|
|
411
417
|
this.currentTransform.multiply(m);
|
|
412
|
-
|
|
413
|
-
this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
418
|
+
this.updateBounds();
|
|
414
419
|
this.isDirty = true;
|
|
415
420
|
return this;
|
|
416
421
|
}
|
|
@@ -485,9 +490,9 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
485
490
|
* @returns {Renderable} Reference to this object for method chaining
|
|
486
491
|
*/
|
|
487
492
|
rotate(angle, v) {
|
|
488
|
-
if (
|
|
493
|
+
if (angle !== 0) {
|
|
489
494
|
this.currentTransform.rotate(angle, v);
|
|
490
|
-
|
|
495
|
+
this.updateBounds();
|
|
491
496
|
this.isDirty = true;
|
|
492
497
|
}
|
|
493
498
|
return this;
|
|
@@ -503,9 +508,9 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
503
508
|
* @param {number} [y=x] - a number representing the ordinate of the scaling vector.
|
|
504
509
|
* @returns {Renderable} Reference to this object for method chaining
|
|
505
510
|
*/
|
|
506
|
-
scale(x, y) {
|
|
511
|
+
scale(x, y = x) {
|
|
507
512
|
this.currentTransform.scale(x, y);
|
|
508
|
-
|
|
513
|
+
this.updateBounds();
|
|
509
514
|
this.isDirty = true;
|
|
510
515
|
return this;
|
|
511
516
|
}
|
|
@@ -531,44 +536,68 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
531
536
|
|
|
532
537
|
/**
|
|
533
538
|
* update the bounding box for this shape.
|
|
534
|
-
* @
|
|
539
|
+
* @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
|
|
535
540
|
* @returns {Bounds} this shape bounding box Rectangle object
|
|
536
541
|
*/
|
|
537
|
-
updateBounds() {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
542
|
+
updateBounds(absolute = true) {
|
|
543
|
+
if (this.isRenderable) {
|
|
544
|
+
var bounds = this.getBounds();
|
|
545
|
+
|
|
546
|
+
bounds.clear();
|
|
547
|
+
|
|
548
|
+
if ((this.autoTransform === true) && (!this.currentTransform.isIdentity())) {
|
|
549
|
+
// temporarly translate the matrix based on the anchor point
|
|
550
|
+
this.currentTransform.translate(
|
|
551
|
+
-this.width * this.anchorPoint.x,
|
|
552
|
+
-this.height * this.anchorPoint.y
|
|
553
|
+
);
|
|
554
|
+
bounds.addFrame(
|
|
555
|
+
0,
|
|
556
|
+
0,
|
|
557
|
+
this.width,
|
|
558
|
+
this.height,
|
|
559
|
+
this.currentTransform
|
|
560
|
+
);
|
|
561
|
+
this.currentTransform.translate(
|
|
562
|
+
this.width * this.anchorPoint.x,
|
|
563
|
+
this.height * this.anchorPoint.y
|
|
564
|
+
);
|
|
565
|
+
} else {
|
|
566
|
+
bounds.addFrame(
|
|
567
|
+
0,
|
|
568
|
+
0,
|
|
569
|
+
this.width,
|
|
570
|
+
this.height
|
|
571
|
+
);
|
|
572
|
+
// translate the bounds based on the anchor point
|
|
573
|
+
bounds.translate(
|
|
574
|
+
-this.width * this.anchorPoint.x,
|
|
575
|
+
-this.height * this.anchorPoint.y
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
if (absolute === true) {
|
|
580
|
+
bounds.centerOn(this.pos.x + bounds.x + bounds.width / 2, this.pos.y + bounds.y + bounds.height / 2);
|
|
581
|
+
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
|
|
582
|
+
bounds.translate(this.ancestor.getAbsolutePosition());
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
}
|
|
586
|
+
return bounds;
|
|
587
|
+
|
|
588
|
+
} else {
|
|
589
|
+
// manage the case where updateBounds is called
|
|
590
|
+
// before the object being yet properly initialized
|
|
591
|
+
return super.updateBounds(absolute);
|
|
592
|
+
}
|
|
541
593
|
}
|
|
542
594
|
|
|
543
595
|
/**
|
|
544
596
|
* update the renderable's bounding rect (private)
|
|
545
597
|
* @ignore
|
|
546
598
|
*/
|
|
547
|
-
updateBoundsPos(newX, newY) {
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
bounds.shift(newX, newY);
|
|
551
|
-
|
|
552
|
-
if (typeof this.anchorPoint !== "undefined" && bounds.isFinite()) {
|
|
553
|
-
bounds.translate(
|
|
554
|
-
-(this.anchorPoint.x * bounds.width),
|
|
555
|
-
-(this.anchorPoint.y * bounds.height)
|
|
556
|
-
);
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
/*
|
|
560
|
-
if (typeof this.body !== "undefined") {
|
|
561
|
-
var bodyBounds = this.body.getBounds();
|
|
562
|
-
bounds.translate(bodyBounds.x, bodyBounds.y);
|
|
563
|
-
}
|
|
564
|
-
*/
|
|
565
|
-
|
|
566
|
-
// XXX: This is called from the constructor, before it gets an ancestor
|
|
567
|
-
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
|
|
568
|
-
bounds.translate(this.ancestor.getAbsolutePosition());
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
this.isDirty = true;
|
|
599
|
+
updateBoundsPos(newX = this.pos.x, newY = this.pos.y) {
|
|
600
|
+
this.getBounds().translate(newX - this.pos.x, newY - this.pos.y);
|
|
572
601
|
}
|
|
573
602
|
|
|
574
603
|
/**
|
|
@@ -598,7 +627,10 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
598
627
|
// manually update the anchor point (required for updateBoundsPos)
|
|
599
628
|
this.anchorPoint.setMuted(x, y);
|
|
600
629
|
// then call updateBounds
|
|
601
|
-
this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
630
|
+
//this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
631
|
+
this.updateBounds();
|
|
632
|
+
//console.log("hello");
|
|
633
|
+
this.isDirty = true;
|
|
602
634
|
}
|
|
603
635
|
|
|
604
636
|
/**
|
|
@@ -609,9 +641,8 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
609
641
|
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
|
|
610
642
|
*/
|
|
611
643
|
preDraw(renderer) {
|
|
612
|
-
var
|
|
613
|
-
|
|
614
|
-
ay = bounds.height * this.anchorPoint.y;
|
|
644
|
+
var ax = this.width * this.anchorPoint.x,
|
|
645
|
+
ay = this.height * this.anchorPoint.y;
|
|
615
646
|
|
|
616
647
|
// save renderer context
|
|
617
648
|
renderer.save();
|
|
@@ -619,16 +650,6 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
|
|
|
619
650
|
// apply the defined alpha value
|
|
620
651
|
renderer.setGlobalAlpha(renderer.globalAlpha() * this.getOpacity());
|
|
621
652
|
|
|
622
|
-
// apply flip
|
|
623
|
-
if (this._flip.x || this._flip.y) {
|
|
624
|
-
var dx = this._flip.x ? this.centerX - ax : 0,
|
|
625
|
-
dy = this._flip.y ? this.centerY - ay : 0;
|
|
626
|
-
|
|
627
|
-
renderer.translate(dx, dy);
|
|
628
|
-
renderer.scale(this._flip.x ? -1 : 1, this._flip.y ? -1 : 1);
|
|
629
|
-
renderer.translate(-dx, -dy);
|
|
630
|
-
}
|
|
631
|
-
|
|
632
653
|
// apply stencil mask if defined
|
|
633
654
|
if (typeof this.mask !== "undefined") {
|
|
634
655
|
renderer.translate(this.pos.x, this.pos.y);
|