melonjs 17.4.0 → 18.0.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/types → build}/application/application.d.ts +9 -10
- package/build/application/application.d.ts.map +1 -0
- package/build/application/defaultApplicationSettings.d.ts +18 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -0
- package/{dist/types → build}/application/header.d.ts +1 -0
- package/build/application/header.d.ts.map +1 -0
- package/{dist/types → build}/application/resize.d.ts +1 -0
- package/build/application/resize.d.ts.map +1 -0
- package/build/application/scaleMethods.d.ts +44 -0
- package/build/application/scaleMethods.d.ts.map +1 -0
- package/build/application/settings.d.ts +85 -0
- package/build/application/settings.d.ts.map +1 -0
- package/{dist/types → build}/audio/audio.d.ts +35 -58
- package/build/audio/audio.d.ts.map +1 -0
- package/{dist/types → build}/camera/camera2d.d.ts +38 -76
- package/build/camera/camera2d.d.ts.map +1 -0
- package/build/const.d.ts +14 -0
- package/build/const.d.ts.map +1 -0
- package/build/geometries/earcut.d.ts +3 -0
- package/build/geometries/earcut.d.ts.map +1 -0
- package/build/geometries/ellipse.d.ts +117 -0
- package/build/geometries/ellipse.d.ts.map +1 -0
- package/build/geometries/line.d.ts +39 -0
- package/build/geometries/line.d.ts.map +1 -0
- package/build/geometries/observablePoint.d.ts +75 -0
- package/build/geometries/observablePoint.d.ts.map +1 -0
- package/{dist/types → build}/geometries/path2d.d.ts +8 -7
- package/build/geometries/path2d.d.ts.map +1 -0
- package/build/geometries/point.d.ts +44 -0
- package/build/geometries/point.d.ts.map +1 -0
- package/build/geometries/polygon.d.ts +182 -0
- package/build/geometries/polygon.d.ts.map +1 -0
- package/build/geometries/rectangle.d.ts +135 -0
- package/build/geometries/rectangle.d.ts.map +1 -0
- package/build/geometries/roundrect.d.ts +67 -0
- package/build/geometries/roundrect.d.ts.map +1 -0
- package/build/geometries/toarccanvas.d.ts +28 -0
- package/build/geometries/toarccanvas.d.ts.map +1 -0
- package/{dist/types → build}/index.d.ts +41 -45
- package/build/index.d.ts.map +1 -0
- package/build/index.js +28318 -0
- package/build/index.js.map +7 -0
- package/{dist/types → build}/input/gamepad.d.ts +3 -11
- package/build/input/gamepad.d.ts.map +1 -0
- package/{dist/types → build}/input/input.d.ts +4 -2
- package/build/input/input.d.ts.map +1 -0
- package/build/input/key.d.ts +105 -0
- package/build/input/key.d.ts.map +1 -0
- package/build/input/keyboard.d.ts +72 -0
- package/build/input/keyboard.d.ts.map +1 -0
- package/build/input/pointer.d.ts +180 -0
- package/build/input/pointer.d.ts.map +1 -0
- package/{dist/types → build}/input/pointerevent.d.ts +17 -16
- package/build/input/pointerevent.d.ts.map +1 -0
- package/{dist/types → build}/lang/console.d.ts +1 -0
- package/build/lang/console.d.ts.map +1 -0
- package/build/lang/deprecated.d.ts +24 -0
- package/build/lang/deprecated.d.ts.map +1 -0
- package/{dist/types → build}/level/level.d.ts +7 -7
- package/build/level/level.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXGroup.d.ts +2 -2
- package/build/level/tiled/TMXGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXLayer.d.ts +4 -4
- package/build/level/tiled/TMXLayer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXObject.d.ts +3 -3
- package/build/level/tiled/TMXObject.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTile.d.ts +4 -5
- package/build/level/tiled/TMXTile.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileMap.d.ts +4 -4
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileset.d.ts +2 -2
- package/build/level/tiled/TMXTileset.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTilesetGroup.d.ts +1 -1
- package/build/level/tiled/TMXTilesetGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXUtils.d.ts +2 -1
- package/build/level/tiled/TMXUtils.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/constants.d.ts +1 -0
- package/build/level/tiled/constants.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXHexagonalRenderer.d.ts +3 -4
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -3
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXRenderer.d.ts +7 -7
- package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXStaggeredRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXStaggeredRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/autodetect.d.ts +4 -3
- package/build/level/tiled/renderer/autodetect.d.ts.map +1 -0
- package/build/loader/cache.d.ts +10 -0
- package/build/loader/cache.d.ts.map +1 -0
- package/{dist/types → build}/loader/loader.d.ts +19 -13
- package/build/loader/loader.d.ts.map +1 -0
- package/{dist/types → build}/loader/loadingscreen.d.ts +1 -0
- package/build/loader/loadingscreen.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/binary.d.ts +2 -1
- package/build/loader/parsers/binary.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/compressed_textures/compressed_image.d.ts +1 -0
- package/build/loader/parsers/compressed_textures/compressed_image.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fetchdata.d.ts +2 -1
- package/build/loader/parsers/fetchdata.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fontface.d.ts +2 -1
- package/build/loader/parsers/fontface.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/image.d.ts +2 -1
- package/build/loader/parsers/image.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/json.d.ts +2 -1
- package/build/loader/parsers/json.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/script.d.ts +2 -1
- package/build/loader/parsers/script.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/tmx.d.ts +2 -1
- package/build/loader/parsers/tmx.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/video.d.ts +2 -1
- package/build/loader/parsers/video.d.ts.map +1 -0
- package/build/math/color.d.ts +192 -0
- package/build/math/color.d.ts.map +1 -0
- package/build/math/math.d.ts +128 -0
- package/build/math/math.d.ts.map +1 -0
- package/build/math/matrix2d.d.ts +163 -0
- package/build/math/matrix2d.d.ts.map +1 -0
- package/build/math/matrix3d.d.ts +188 -0
- package/build/math/matrix3d.d.ts.map +1 -0
- package/build/math/observableVector2d.d.ts +286 -0
- package/build/math/observableVector2d.d.ts.map +1 -0
- package/build/math/observableVector2d_old.d.ts +76 -0
- package/build/math/observableVector2d_old.d.ts.map +1 -0
- package/build/math/observableVector3d.d.ts +283 -0
- package/build/math/observableVector3d.d.ts.map +1 -0
- package/build/math/observableVector3d_old.d.ts +81 -0
- package/build/math/observableVector3d_old.d.ts.map +1 -0
- package/build/math/vector2d.d.ts +253 -0
- package/build/math/vector2d.d.ts.map +1 -0
- package/build/math/vector3d.d.ts +242 -0
- package/build/math/vector3d.d.ts.map +1 -0
- package/{dist/types → build}/particles/emitter.d.ts +7 -10
- package/build/particles/emitter.d.ts.map +1 -0
- package/build/particles/particle.d.ts +47 -0
- package/build/particles/particle.d.ts.map +1 -0
- package/{dist/types → build}/particles/settings.d.ts +1 -0
- package/build/particles/settings.d.ts.map +1 -0
- package/{dist/types → build}/physics/body.d.ts +27 -27
- package/build/physics/body.d.ts.map +1 -0
- package/build/physics/bounds.d.ts +192 -0
- package/build/physics/bounds.d.ts.map +1 -0
- package/{dist/types → build}/physics/collision.d.ts +5 -5
- package/build/physics/collision.d.ts.map +1 -0
- package/{dist/types → build}/physics/detector.d.ts +8 -6
- package/build/physics/detector.d.ts.map +1 -0
- package/{dist/types → build}/physics/quadtree.d.ts +5 -19
- package/build/physics/quadtree.d.ts.map +1 -0
- package/{dist/types → build}/physics/response.d.ts +46 -5
- package/build/physics/response.d.ts.map +1 -0
- package/{dist/types → build}/physics/sat.d.ts +3 -2
- package/build/physics/sat.d.ts.map +1 -0
- package/{dist/types → build}/physics/world.d.ts +5 -4
- package/build/physics/world.d.ts.map +1 -0
- package/{dist/types → build}/plugin/plugin.d.ts +8 -19
- package/build/plugin/plugin.d.ts.map +1 -0
- package/build/polyfill/console.d.ts +2 -0
- package/build/polyfill/console.d.ts.map +1 -0
- package/build/polyfill/index.d.ts +6 -0
- package/build/polyfill/index.d.ts.map +1 -0
- package/build/polyfill/roundrect.d.ts +2 -0
- package/build/polyfill/roundrect.d.ts.map +1 -0
- package/build/pool.d.ts +39 -0
- package/build/pool.d.ts.map +1 -0
- package/{dist/types → build}/renderable/collectable.d.ts +2 -2
- package/build/renderable/collectable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/colorlayer.d.ts +6 -10
- package/build/renderable/colorlayer.d.ts.map +1 -0
- package/{dist/types → build}/renderable/container.d.ts +14 -15
- package/build/renderable/container.d.ts.map +1 -0
- package/{dist/types → build}/renderable/draggable.d.ts +5 -13
- package/build/renderable/draggable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/dragndrop.d.ts +7 -21
- package/build/renderable/dragndrop.d.ts.map +1 -0
- package/{dist/types → build}/renderable/entity/entity.d.ts +12 -13
- package/build/renderable/entity/entity.d.ts.map +1 -0
- package/{dist/types → build}/renderable/imagelayer.d.ts +17 -9
- package/build/renderable/imagelayer.d.ts.map +1 -0
- package/build/renderable/light2d.d.ts +73 -0
- package/build/renderable/light2d.d.ts.map +1 -0
- package/{dist/types → build}/renderable/nineslicesprite.d.ts +3 -4
- package/build/renderable/nineslicesprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/renderable.d.ts +57 -60
- package/build/renderable/renderable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/sprite.d.ts +28 -14
- package/build/renderable/sprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/bitmaptext.d.ts +6 -7
- package/build/renderable/text/bitmaptext.d.ts.map +1 -0
- package/build/renderable/text/bitmaptextdata.d.ts +17 -0
- package/build/renderable/text/bitmaptextdata.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/glyph.d.ts +15 -3
- package/build/renderable/text/glyph.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/text.d.ts +7 -16
- package/build/renderable/text/text.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textmetrics.d.ts +8 -9
- package/build/renderable/text/textmetrics.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textstyle.d.ts +1 -0
- package/build/renderable/text/textstyle.d.ts.map +1 -0
- package/{dist/types → build}/renderable/trigger.d.ts +18 -7
- package/build/renderable/trigger.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uibaseelement.d.ts +7 -7
- package/build/renderable/ui/uibaseelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uispriteelement.d.ts +4 -6
- package/build/renderable/ui/uispriteelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uitextbutton.d.ts +17 -4
- package/build/renderable/ui/uitextbutton.d.ts.map +1 -0
- package/{dist/types → build}/state/stage.d.ts +3 -3
- package/build/state/stage.d.ts.map +1 -0
- package/{dist/types → build}/state/state.d.ts +10 -9
- package/build/state/state.d.ts.map +1 -0
- package/{dist/types → build}/system/device.d.ts +49 -80
- package/build/system/device.d.ts.map +1 -0
- package/build/system/dom.d.ts +2 -0
- package/build/system/dom.d.ts.map +1 -0
- package/{dist/types → build}/system/event.d.ts +124 -291
- package/build/system/event.d.ts.map +1 -0
- package/build/system/eventEmitter.d.ts +19 -0
- package/build/system/eventEmitter.d.ts.map +1 -0
- package/build/system/eventEmitter.spec.d.ts +2 -0
- package/build/system/eventEmitter.spec.d.ts.map +1 -0
- package/{dist/types/system/pooling.d.ts → build/system/legacy_pool.d.ts} +22 -7
- package/build/system/legacy_pool.d.ts.map +1 -0
- package/build/system/platform.d.ts +34 -0
- package/build/system/platform.d.ts.map +1 -0
- package/build/system/pool.d.ts +26 -0
- package/build/system/pool.d.ts.map +1 -0
- package/build/system/save.d.ts +3 -0
- package/build/system/save.d.ts.map +1 -0
- package/build/system/timer.d.ts +118 -0
- package/build/system/timer.d.ts.map +1 -0
- package/build/tweens/easing.d.ts +93 -0
- package/build/tweens/easing.d.ts.map +1 -0
- package/build/tweens/interpolation.d.ts +7 -0
- package/build/tweens/interpolation.d.ts.map +1 -0
- package/build/tweens/tween.d.ts +234 -0
- package/build/tweens/tween.d.ts.map +1 -0
- package/build/utils/agent.d.ts +16 -0
- package/build/utils/agent.d.ts.map +1 -0
- package/build/utils/array-multimap.d.ts +14 -0
- package/build/utils/array-multimap.d.ts.map +1 -0
- package/build/utils/array.d.ts +30 -0
- package/build/utils/array.d.ts.map +1 -0
- package/build/utils/file.d.ts +16 -0
- package/build/utils/file.d.ts.map +1 -0
- package/build/utils/function.d.ts +24 -0
- package/build/utils/function.d.ts.map +1 -0
- package/build/utils/semver.d.ts +2 -0
- package/build/utils/semver.d.ts.map +1 -0
- package/build/utils/string.d.ts +35 -0
- package/build/utils/string.d.ts.map +1 -0
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/utils.d.ts +49 -0
- package/build/utils/utils.d.ts.map +1 -0
- package/build/version.d.ts +5 -0
- package/build/version.d.ts.map +1 -0
- package/{dist/types → build}/video/canvas/canvas_renderer.d.ts +40 -32
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/renderer.d.ts +36 -29
- package/build/video/renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/rendertarget/canvasrendertarget.d.ts +8 -26
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/atlas.d.ts +8 -8
- package/build/video/texture/atlas.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/cache.d.ts +4 -3
- package/build/video/texture/cache.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/aseprite.d.ts +1 -0
- package/build/video/texture/parser/aseprite.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/spritesheet.d.ts +1 -0
- package/build/video/texture/parser/spritesheet.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/texturepacker.d.ts +1 -0
- package/build/video/texture/parser/texturepacker.d.ts.map +1 -0
- package/build/video/utils/autodetect.d.ts +8 -0
- package/build/video/utils/autodetect.d.ts.map +1 -0
- package/{dist/types → build}/video/video.d.ts +4 -3
- package/build/video/video.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/buffer/vertex.d.ts +5 -6
- package/build/video/webgl/buffer/vertex.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/compositor.d.ts +4 -4
- package/build/video/webgl/compositors/compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/primitive_compositor.d.ts +4 -5
- package/build/video/webgl/compositors/primitive_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/quad_compositor.d.ts +4 -5
- package/build/video/webgl/compositors/quad_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/glshader.d.ts +2 -2
- package/build/video/webgl/glshader.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/attributes.d.ts +1 -0
- package/build/video/webgl/utils/attributes.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/precision.d.ts +1 -0
- package/build/video/webgl/utils/precision.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/program.d.ts +1 -0
- package/build/video/webgl/utils/program.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/string.d.ts +1 -0
- package/build/video/webgl/utils/string.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/uniforms.d.ts +1 -0
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/webgl_renderer.d.ts +37 -29
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -0
- package/package.json +83 -104
- package/LICENSE.md +0 -21
- package/README.md +0 -223
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +0 -14
- package/dist/melonjs.mjs/_virtual/earcut.js +0 -10
- package/dist/melonjs.mjs/_virtual/howler.js +0 -10
- package/dist/melonjs.mjs/_virtual/index.js +0 -10
- package/dist/melonjs.mjs/_virtual/re.js +0 -10
- package/dist/melonjs.mjs/application/application.js +0 -443
- package/dist/melonjs.mjs/application/header.js +0 -40
- package/dist/melonjs.mjs/application/resize.js +0 -128
- package/dist/melonjs.mjs/application/settings.js +0 -70
- package/dist/melonjs.mjs/audio/audio.js +0 -623
- package/dist/melonjs.mjs/camera/camera2d.js +0 -737
- package/dist/melonjs.mjs/const.js +0 -32
- package/dist/melonjs.mjs/geometries/ellipse.js +0 -253
- package/dist/melonjs.mjs/geometries/line.js +0 -113
- package/dist/melonjs.mjs/geometries/path2d.js +0 -479
- package/dist/melonjs.mjs/geometries/point.js +0 -85
- package/dist/melonjs.mjs/geometries/poly.js +0 -441
- package/dist/melonjs.mjs/geometries/rectangle.js +0 -335
- package/dist/melonjs.mjs/geometries/roundrect.js +0 -165
- package/dist/melonjs.mjs/geometries/toarccanvas.js +0 -103
- package/dist/melonjs.mjs/index.js +0 -239
- package/dist/melonjs.mjs/input/gamepad.js +0 -495
- package/dist/melonjs.mjs/input/input.js +0 -26
- package/dist/melonjs.mjs/input/keyboard.js +0 -470
- package/dist/melonjs.mjs/input/pointer.js +0 -393
- package/dist/melonjs.mjs/input/pointerevent.js +0 -807
- package/dist/melonjs.mjs/lang/console.js +0 -44
- package/dist/melonjs.mjs/lang/deprecated.js +0 -200
- package/dist/melonjs.mjs/level/level.js +0 -298
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +0 -120
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +0 -432
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +0 -295
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +0 -177
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +0 -574
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +0 -292
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +0 -74
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +0 -417
- package/dist/melonjs.mjs/level/tiled/constants.js +0 -17
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +0 -503
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +0 -215
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -155
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +0 -113
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +0 -107
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +0 -38
- package/dist/melonjs.mjs/loader/cache.js +0 -30
- package/dist/melonjs.mjs/loader/loader.js +0 -729
- package/dist/melonjs.mjs/loader/loadingscreen.js +0 -118
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +0 -10
- package/dist/melonjs.mjs/loader/parsers/binary.js +0 -42
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +0 -58
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +0 -136
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/fontface.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/image.js +0 -129
- package/dist/melonjs.mjs/loader/parsers/json.js +0 -43
- package/dist/melonjs.mjs/loader/parsers/script.js +0 -46
- package/dist/melonjs.mjs/loader/parsers/tmx.js +0 -103
- package/dist/melonjs.mjs/loader/parsers/video.js +0 -99
- package/dist/melonjs.mjs/math/color.js +0 -635
- package/dist/melonjs.mjs/math/math.js +0 -221
- package/dist/melonjs.mjs/math/matrix2.js +0 -495
- package/dist/melonjs.mjs/math/matrix3.js +0 -628
- package/dist/melonjs.mjs/math/observable_vector2.js +0 -468
- package/dist/melonjs.mjs/math/observable_vector3.js +0 -564
- package/dist/melonjs.mjs/math/vector2.js +0 -431
- package/dist/melonjs.mjs/math/vector3.js +0 -473
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +0 -45
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +0 -130
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +0 -694
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +0 -352
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +0 -12
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +0 -3246
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +0 -165
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +0 -565
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +0 -317
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +0 -68
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +0 -73
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +0 -16
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +0 -76
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +0 -30
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +0 -27
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +0 -21
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/index.js +0 -140
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +0 -44
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +0 -32
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +0 -49
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +0 -24
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +0 -234
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +0 -37
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +0 -36
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +0 -74
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +0 -98
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +0 -59
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +0 -261
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +0 -19
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +0 -22
- package/dist/melonjs.mjs/particles/emitter.js +0 -265
- package/dist/melonjs.mjs/particles/particle.js +0 -190
- package/dist/melonjs.mjs/particles/settings.js +0 -317
- package/dist/melonjs.mjs/physics/body.js +0 -717
- package/dist/melonjs.mjs/physics/bounds.js +0 -415
- package/dist/melonjs.mjs/physics/collision.js +0 -135
- package/dist/melonjs.mjs/physics/detector.js +0 -227
- package/dist/melonjs.mjs/physics/quadtree.js +0 -402
- package/dist/melonjs.mjs/physics/response.js +0 -57
- package/dist/melonjs.mjs/physics/sat.js +0 -492
- package/dist/melonjs.mjs/physics/world.js +0 -228
- package/dist/melonjs.mjs/plugin/plugin.js +0 -172
- package/dist/melonjs.mjs/renderable/collectable.js +0 -60
- package/dist/melonjs.mjs/renderable/colorlayer.js +0 -83
- package/dist/melonjs.mjs/renderable/container.js +0 -1016
- package/dist/melonjs.mjs/renderable/draggable.js +0 -121
- package/dist/melonjs.mjs/renderable/dragndrop.js +0 -119
- package/dist/melonjs.mjs/renderable/entity/entity.js +0 -263
- package/dist/melonjs.mjs/renderable/imagelayer.js +0 -293
- package/dist/melonjs.mjs/renderable/light2d.js +0 -172
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +0 -248
- package/dist/melonjs.mjs/renderable/renderable.js +0 -878
- package/dist/melonjs.mjs/renderable/sprite.js +0 -700
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +0 -421
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +0 -195
- package/dist/melonjs.mjs/renderable/text/glyph.js +0 -65
- package/dist/melonjs.mjs/renderable/text/text.js +0 -424
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +0 -176
- package/dist/melonjs.mjs/renderable/text/textstyle.js +0 -21
- package/dist/melonjs.mjs/renderable/trigger.js +0 -163
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +0 -285
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +0 -231
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +0 -146
- package/dist/melonjs.mjs/state/stage.js +0 -235
- package/dist/melonjs.mjs/state/state.js +0 -548
- package/dist/melonjs.mjs/system/device.js +0 -872
- package/dist/melonjs.mjs/system/dom.js +0 -79
- package/dist/melonjs.mjs/system/event.js +0 -606
- package/dist/melonjs.mjs/system/platform.js +0 -43
- package/dist/melonjs.mjs/system/pooling.js +0 -182
- package/dist/melonjs.mjs/system/save.js +0 -157
- package/dist/melonjs.mjs/system/timer.js +0 -274
- package/dist/melonjs.mjs/tweens/easing.js +0 -334
- package/dist/melonjs.mjs/tweens/interpolation.js +0 -112
- package/dist/melonjs.mjs/tweens/tween.js +0 -479
- package/dist/melonjs.mjs/utils/agent.js +0 -77
- package/dist/melonjs.mjs/utils/array.js +0 -63
- package/dist/melonjs.mjs/utils/file.js +0 -54
- package/dist/melonjs.mjs/utils/function.js +0 -69
- package/dist/melonjs.mjs/utils/string.js +0 -82
- package/dist/melonjs.mjs/utils/utils.js +0 -139
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +0 -914
- package/dist/melonjs.mjs/video/renderer.js +0 -402
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +0 -316
- package/dist/melonjs.mjs/video/texture/atlas.js +0 -465
- package/dist/melonjs.mjs/video/texture/cache.js +0 -186
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +0 -78
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +0 -77
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +0 -64
- package/dist/melonjs.mjs/video/utils/autodetect.js +0 -27
- package/dist/melonjs.mjs/video/video.js +0 -142
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +0 -146
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +0 -240
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +0 -82
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +0 -259
- package/dist/melonjs.mjs/video/webgl/glshader.js +0 -166
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +0 -38
- package/dist/melonjs.mjs/video/webgl/utils/program.js +0 -67
- package/dist/melonjs.mjs/video/webgl/utils/string.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +0 -92
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +0 -1246
- package/dist/melonjs.module.js +0 -43200
- package/dist/types/application/settings.d.ts +0 -106
- package/dist/types/const.d.ts +0 -21
- package/dist/types/geometries/ellipse.d.ts +0 -138
- package/dist/types/geometries/line.d.ts +0 -15
- package/dist/types/geometries/point.d.ts +0 -50
- package/dist/types/geometries/poly.d.ts +0 -186
- package/dist/types/geometries/rectangle.d.ts +0 -135
- package/dist/types/geometries/roundrect.d.ts +0 -43
- package/dist/types/geometries/toarccanvas.d.ts +0 -10
- package/dist/types/input/keyboard.d.ts +0 -205
- package/dist/types/input/pointer.d.ts +0 -261
- package/dist/types/lang/deprecated.d.ts +0 -68
- package/dist/types/loader/cache.d.ts +0 -9
- package/dist/types/loader/parsers/compressed_textures/parseDDS.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX2.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePKM.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePVR.d.ts +0 -1
- package/dist/types/math/color.d.ts +0 -179
- package/dist/types/math/math.d.ts +0 -149
- package/dist/types/math/matrix2.d.ts +0 -174
- package/dist/types/math/matrix3.d.ts +0 -186
- package/dist/types/math/observable_vector2.d.ts +0 -278
- package/dist/types/math/observable_vector3.d.ts +0 -300
- package/dist/types/math/vector2.d.ts +0 -255
- package/dist/types/math/vector3.d.ts +0 -271
- package/dist/types/particles/particle.d.ts +0 -36
- package/dist/types/physics/bounds.d.ts +0 -203
- package/dist/types/polyfill/console.d.ts +0 -1
- package/dist/types/polyfill/index.d.ts +0 -1
- package/dist/types/polyfill/roundrect.d.ts +0 -1
- package/dist/types/renderable/light2d.d.ts +0 -60
- package/dist/types/renderable/text/bitmaptextdata.d.ts +0 -35
- package/dist/types/system/dom.d.ts +0 -1
- package/dist/types/system/platform.d.ts +0 -33
- package/dist/types/system/save.d.ts +0 -25
- package/dist/types/system/timer.d.ts +0 -126
- package/dist/types/tweens/easing.d.ts +0 -46
- package/dist/types/tweens/interpolation.d.ts +0 -18
- package/dist/types/tweens/tween.d.ts +0 -195
- package/dist/types/utils/agent.d.ts +0 -21
- package/dist/types/utils/array.d.ts +0 -39
- package/dist/types/utils/file.d.ts +0 -27
- package/dist/types/utils/function.d.ts +0 -31
- package/dist/types/utils/string.d.ts +0 -50
- package/dist/types/utils/utils.d.ts +0 -54
- package/dist/types/video/utils/autodetect.d.ts +0 -5
- package/src/application/application.js +0 -435
- package/src/application/header.js +0 -31
- package/src/application/resize.js +0 -119
- package/src/application/settings.js +0 -61
- package/src/audio/audio.js +0 -622
- package/src/camera/camera2d.js +0 -731
- package/src/const.js +0 -23
- package/src/geometries/ellipse.js +0 -244
- package/src/geometries/line.js +0 -104
- package/src/geometries/path2d.js +0 -470
- package/src/geometries/point.js +0 -76
- package/src/geometries/poly.js +0 -432
- package/src/geometries/rectangle.js +0 -326
- package/src/geometries/roundrect.js +0 -156
- package/src/geometries/toarccanvas.js +0 -94
- package/src/index.js +0 -315
- package/src/input/gamepad.js +0 -487
- package/src/input/input.js +0 -17
- package/src/input/keyboard.js +0 -461
- package/src/input/pointer.js +0 -386
- package/src/input/pointerevent.js +0 -798
- package/src/lang/console.js +0 -36
- package/src/lang/deprecated.js +0 -192
- package/src/level/level.js +0 -290
- package/src/level/tiled/TMXGroup.js +0 -111
- package/src/level/tiled/TMXLayer.js +0 -424
- package/src/level/tiled/TMXObject.js +0 -286
- package/src/level/tiled/TMXTile.js +0 -168
- package/src/level/tiled/TMXTileMap.js +0 -569
- package/src/level/tiled/TMXTileset.js +0 -284
- package/src/level/tiled/TMXTilesetGroup.js +0 -66
- package/src/level/tiled/TMXUtils.js +0 -408
- package/src/level/tiled/constants.js +0 -8
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +0 -497
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +0 -208
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -149
- package/src/level/tiled/renderer/TMXRenderer.js +0 -103
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +0 -100
- package/src/level/tiled/renderer/autodetect.js +0 -29
- package/src/loader/cache.js +0 -22
- package/src/loader/loader.js +0 -728
- package/src/loader/loadingscreen.js +0 -112
- package/src/loader/melonjs_logo.png +0 -0
- package/src/loader/parsers/binary.js +0 -33
- package/src/loader/parsers/compressed_textures/compressed_image.js +0 -49
- package/src/loader/parsers/compressed_textures/parseDDS.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX2.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePKM.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePVR.js +0 -127
- package/src/loader/parsers/fetchdata.js +0 -53
- package/src/loader/parsers/fontface.js +0 -54
- package/src/loader/parsers/image.js +0 -120
- package/src/loader/parsers/json.js +0 -35
- package/src/loader/parsers/script.js +0 -37
- package/src/loader/parsers/tmx.js +0 -95
- package/src/loader/parsers/video.js +0 -90
- package/src/math/color.js +0 -627
- package/src/math/math.js +0 -212
- package/src/math/matrix2.js +0 -487
- package/src/math/matrix3.js +0 -620
- package/src/math/observable_vector2.js +0 -460
- package/src/math/observable_vector3.js +0 -556
- package/src/math/vector2.js +0 -423
- package/src/math/vector3.js +0 -465
- package/src/particles/emitter.js +0 -258
- package/src/particles/particle.js +0 -182
- package/src/particles/settings.js +0 -310
- package/src/physics/body.js +0 -709
- package/src/physics/bounds.js +0 -407
- package/src/physics/collision.js +0 -128
- package/src/physics/detector.js +0 -218
- package/src/physics/quadtree.js +0 -393
- package/src/physics/response.js +0 -48
- package/src/physics/sat.js +0 -483
- package/src/physics/world.js +0 -220
- package/src/plugin/plugin.js +0 -163
- package/src/polyfill/console.js +0 -11
- package/src/polyfill/index.js +0 -13
- package/src/polyfill/roundrect.js +0 -237
- package/src/renderable/collectable.js +0 -51
- package/src/renderable/colorlayer.js +0 -74
- package/src/renderable/container.js +0 -1008
- package/src/renderable/draggable.js +0 -114
- package/src/renderable/dragndrop.js +0 -110
- package/src/renderable/entity/entity.js +0 -254
- package/src/renderable/imagelayer.js +0 -284
- package/src/renderable/light2d.js +0 -163
- package/src/renderable/nineslicesprite.js +0 -239
- package/src/renderable/renderable.js +0 -869
- package/src/renderable/sprite.js +0 -691
- package/src/renderable/text/bitmaptext.js +0 -418
- package/src/renderable/text/bitmaptextdata.js +0 -186
- package/src/renderable/text/glyph.js +0 -57
- package/src/renderable/text/text.js +0 -415
- package/src/renderable/text/textmetrics.js +0 -167
- package/src/renderable/text/textstyle.js +0 -12
- package/src/renderable/trigger.js +0 -154
- package/src/renderable/ui/uibaseelement.js +0 -276
- package/src/renderable/ui/uispriteelement.js +0 -223
- package/src/renderable/ui/uitextbutton.js +0 -140
- package/src/state/stage.js +0 -226
- package/src/state/state.js +0 -541
- package/src/system/device.js +0 -863
- package/src/system/dom.js +0 -70
- package/src/system/event.js +0 -597
- package/src/system/platform.js +0 -34
- package/src/system/pooling.js +0 -190
- package/src/system/save.js +0 -148
- package/src/system/timer.js +0 -281
- package/src/tweens/easing.js +0 -325
- package/src/tweens/interpolation.js +0 -103
- package/src/tweens/tween.js +0 -470
- package/src/utils/agent.js +0 -68
- package/src/utils/array.js +0 -54
- package/src/utils/file.js +0 -46
- package/src/utils/function.js +0 -60
- package/src/utils/string.js +0 -73
- package/src/utils/utils.js +0 -127
- package/src/video/canvas/canvas_renderer.js +0 -905
- package/src/video/renderer.js +0 -393
- package/src/video/rendertarget/canvasrendertarget.js +0 -309
- package/src/video/texture/atlas.js +0 -456
- package/src/video/texture/cache.js +0 -178
- package/src/video/texture/parser/aseprite.js +0 -69
- package/src/video/texture/parser/spritesheet.js +0 -68
- package/src/video/texture/parser/texturepacker.js +0 -55
- package/src/video/utils/autodetect.js +0 -18
- package/src/video/video.js +0 -160
- package/src/video/webgl/buffer/vertex.js +0 -137
- package/src/video/webgl/compositors/compositor.js +0 -231
- package/src/video/webgl/compositors/primitive_compositor.js +0 -73
- package/src/video/webgl/compositors/quad_compositor.js +0 -250
- package/src/video/webgl/glshader.js +0 -158
- package/src/video/webgl/shaders/primitive.frag +0 -5
- package/src/video/webgl/shaders/primitive.vert +0 -15
- package/src/video/webgl/shaders/quad.frag +0 -7
- package/src/video/webgl/shaders/quad.vert +0 -18
- package/src/video/webgl/utils/attributes.js +0 -16
- package/src/video/webgl/utils/precision.js +0 -29
- package/src/video/webgl/utils/program.js +0 -58
- package/src/video/webgl/utils/string.js +0 -16
- package/src/video/webgl/utils/uniforms.js +0 -84
- package/src/video/webgl/webgl_renderer.js +0 -1237
|
@@ -1,869 +0,0 @@
|
|
|
1
|
-
import ObservableVector2d from "./../math/observable_vector2.js";
|
|
2
|
-
import ObservableVector3d from "./../math/observable_vector3.js";
|
|
3
|
-
import Rect from "./../geometries/rectangle.js";
|
|
4
|
-
import pool from "./../system/pooling.js";
|
|
5
|
-
import { releaseAllPointerEvents } from "./../input/input.js";
|
|
6
|
-
import { clamp } from "./../math/math.js";
|
|
7
|
-
import Body from "./../physics/body.js";
|
|
8
|
-
import Bounds from "./../physics/bounds.js";
|
|
9
|
-
import GLShader from "./../video/webgl/glshader.js";
|
|
10
|
-
import Color from "./../math/color.js";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* additional import for TypeScript
|
|
14
|
-
* @import Vector2d from "./../math/vector2.js";
|
|
15
|
-
* @import Vector3d from "./../math/vector3.js";
|
|
16
|
-
* @import Matrix2d from "./../math/matrix2.js";
|
|
17
|
-
* @import Entity from "./entity/entity.js";
|
|
18
|
-
* @import Container from "./container.js";
|
|
19
|
-
* @import Line from "./../geometries/line.js";
|
|
20
|
-
* @import Ellipse from "./../geometries/ellipse.js";
|
|
21
|
-
* @import Polygon from "./../geometries/poly.js";
|
|
22
|
-
* @import RoundRect from "./../geometries/roundrect.js";
|
|
23
|
-
* @import Application from "./../application/application.js";
|
|
24
|
-
* @import CanvasRenderer from "./../video/canvas/canvas_renderer.js";
|
|
25
|
-
* @import WebGLRenderer from "./../video/webgl/webgl_renderer.js";
|
|
26
|
-
* @import ResponseObject from "./../physics/response.js";
|
|
27
|
-
**/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @classdesc
|
|
32
|
-
* A base class for renderable objects.
|
|
33
|
-
* @augments Rect
|
|
34
|
-
*/
|
|
35
|
-
export default class Renderable extends Rect {
|
|
36
|
-
/**
|
|
37
|
-
* @param {number} x - position of the renderable object (accessible through inherited pos.x property)
|
|
38
|
-
* @param {number} y - position of the renderable object (accessible through inherited pos.y property)
|
|
39
|
-
* @param {number} width - object width
|
|
40
|
-
* @param {number} height - object height
|
|
41
|
-
*/
|
|
42
|
-
constructor(x, y, width, height) {
|
|
43
|
-
|
|
44
|
-
// parent constructor
|
|
45
|
-
super(x, y, width, height);
|
|
46
|
-
|
|
47
|
-
if (this.pos instanceof ObservableVector3d) {
|
|
48
|
-
this.pos.setMuted(x, y, 0).setCallback(this.updateBoundsPos, this);
|
|
49
|
-
} else {
|
|
50
|
-
/**
|
|
51
|
-
* Position of the Renderable relative to its parent container
|
|
52
|
-
* @public
|
|
53
|
-
* @type {ObservableVector3d}
|
|
54
|
-
*/
|
|
55
|
-
this.pos = pool.pull("ObservableVector3d", x, y, 0, { onUpdate: this.updateBoundsPos, scope: this});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (this.anchorPoint instanceof ObservableVector2d) {
|
|
59
|
-
this.anchorPoint.setMuted(0.5, 0.5).setCallback(this.onAnchorUpdate, this);
|
|
60
|
-
} else {
|
|
61
|
-
/**
|
|
62
|
-
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
63
|
-
* 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>
|
|
64
|
-
* <img src="images/anchor_point.png"/><br>
|
|
65
|
-
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
66
|
-
* <br>
|
|
67
|
-
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
68
|
-
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
69
|
-
* @type {ObservableVector2d}
|
|
70
|
-
* @default <0.5,0.5>
|
|
71
|
-
*/
|
|
72
|
-
this.anchorPoint = pool.pull("ObservableVector2d", 0.5, 0.5, { onUpdate: this.onAnchorUpdate, scope: this });
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (typeof this.currentTransform === "undefined") {
|
|
76
|
-
/**
|
|
77
|
-
* the renderable default transformation matrix
|
|
78
|
-
* @type {Matrix2d}
|
|
79
|
-
*/
|
|
80
|
-
this.currentTransform = pool.pull("Matrix2d");
|
|
81
|
-
}
|
|
82
|
-
this.currentTransform.identity();
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* the renderable physic body
|
|
86
|
-
* @type {Body}
|
|
87
|
-
* @example
|
|
88
|
-
* // define a new Player Class
|
|
89
|
-
* class PlayerEntity extends me.Sprite {
|
|
90
|
-
* // constructor
|
|
91
|
-
* constructor(x, y, settings) {
|
|
92
|
-
* // call the parent constructor
|
|
93
|
-
* super(x, y , settings);
|
|
94
|
-
*
|
|
95
|
-
* // define a basic walking animation
|
|
96
|
-
* this.addAnimation("walk", [...]);
|
|
97
|
-
* // define a standing animation (using the first frame)
|
|
98
|
-
* this.addAnimation("stand", [...]);
|
|
99
|
-
* // set the standing animation as default
|
|
100
|
-
* this.setCurrentAnimation("stand");
|
|
101
|
-
*
|
|
102
|
-
* // add a physic body
|
|
103
|
-
* this.body = new me.Body(this);
|
|
104
|
-
* // add a default collision shape
|
|
105
|
-
* this.body.addShape(new me.Rect(0, 0, this.width, this.height));
|
|
106
|
-
* // configure max speed, friction, and initial force to be applied
|
|
107
|
-
* this.body.setMaxVelocity(3, 15);
|
|
108
|
-
* this.body.setFriction(0.4, 0);
|
|
109
|
-
* this.body.force.set(3, 0);
|
|
110
|
-
* this.isKinematic = false;
|
|
111
|
-
*
|
|
112
|
-
* // set the display to follow our position on both axis
|
|
113
|
-
* me.game.viewport.follow(this.pos, me.game.viewport.AXIS.BOTH);
|
|
114
|
-
* }
|
|
115
|
-
*
|
|
116
|
-
* ...
|
|
117
|
-
*
|
|
118
|
-
* }
|
|
119
|
-
*/
|
|
120
|
-
this.body = undefined;
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* (G)ame (U)nique (Id)entifier" <br>
|
|
124
|
-
* a GUID will be allocated for any renderable object added <br>
|
|
125
|
-
* to an object container (including the `me.game.world` container)
|
|
126
|
-
* @type {string}
|
|
127
|
-
*/
|
|
128
|
-
this.GUID = undefined;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* an event handler that is called when the renderable leave or enter a camera viewport
|
|
132
|
-
* @type {Function}
|
|
133
|
-
* @default undefined
|
|
134
|
-
* @example
|
|
135
|
-
* this.onVisibilityChange = function(inViewport) {
|
|
136
|
-
* if (inViewport === true) {
|
|
137
|
-
* console.log("object has entered the in a camera viewport!");
|
|
138
|
-
* }
|
|
139
|
-
* };
|
|
140
|
-
*/
|
|
141
|
-
this.onVisibilityChange = undefined;
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Whether the renderable object will always update, even when outside of the viewport<br>
|
|
145
|
-
* @type {boolean}
|
|
146
|
-
* @default false
|
|
147
|
-
*/
|
|
148
|
-
this.alwaysUpdate = false;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Whether to update this object when the game is paused.
|
|
152
|
-
* @type {boolean}
|
|
153
|
-
* @default false
|
|
154
|
-
*/
|
|
155
|
-
this.updateWhenPaused = false;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* make the renderable object persistent over level changes<br>
|
|
159
|
-
* @type {boolean}
|
|
160
|
-
* @default false
|
|
161
|
-
*/
|
|
162
|
-
this.isPersistent = false;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* If true, this renderable will be rendered using screen coordinates,
|
|
166
|
-
* as opposed to world coordinates. Use this, for example, to define UI elements.
|
|
167
|
-
* @type {boolean}
|
|
168
|
-
* @default false
|
|
169
|
-
*/
|
|
170
|
-
this.floating = false;
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* When enabled, an object container will automatically apply
|
|
174
|
-
* any defined transformation before calling the child draw method.
|
|
175
|
-
* @type {boolean}
|
|
176
|
-
* @default true
|
|
177
|
-
* @example
|
|
178
|
-
* // enable "automatic" transformation when the object is activated
|
|
179
|
-
* onActivateEvent: function () {
|
|
180
|
-
* // reset the transformation matrix
|
|
181
|
-
* this.currentTransform.identity();
|
|
182
|
-
* // ensure the anchor point is the renderable center
|
|
183
|
-
* this.anchorPoint.set(0.5, 0.5);
|
|
184
|
-
* // enable auto transform
|
|
185
|
-
* this.autoTransform = true;
|
|
186
|
-
* ....
|
|
187
|
-
* }
|
|
188
|
-
*/
|
|
189
|
-
this.autoTransform = true;
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Define the renderable opacity<br>
|
|
193
|
-
* Set to zero if you do not wish an object to be drawn
|
|
194
|
-
* @see Renderable#setOpacity
|
|
195
|
-
* @see Renderable#getOpacity
|
|
196
|
-
* @type {number}
|
|
197
|
-
* @default 1.0
|
|
198
|
-
*/
|
|
199
|
-
this.alpha = 1.0;
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* a reference to the parent object that contains this renderable
|
|
203
|
-
* @type {Container|Entity}
|
|
204
|
-
* @default undefined
|
|
205
|
-
*/
|
|
206
|
-
this.ancestor = undefined;
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* A mask limits rendering elements to the shape and position of the given mask object.
|
|
210
|
-
* So, if the renderable is larger than the mask, only the intersecting part of the renderable will be visible.
|
|
211
|
-
* @type {Rect|RoundRect|Polygon|Line|Ellipse}
|
|
212
|
-
* @default undefined
|
|
213
|
-
* @example
|
|
214
|
-
* // apply a mask in the shape of a Star
|
|
215
|
-
* myNPCSprite.mask = new me.Polygon(myNPCSprite.width / 2, 0, [
|
|
216
|
-
* // draw a star
|
|
217
|
-
* {x: 0, y: 0},
|
|
218
|
-
* {x: 14, y: 30},
|
|
219
|
-
* {x: 47, y: 35},
|
|
220
|
-
* {x: 23, y: 57},
|
|
221
|
-
* {x: 44, y: 90},
|
|
222
|
-
* {x: 0, y: 62},
|
|
223
|
-
* {x: -44, y: 90},
|
|
224
|
-
* {x: -23, y: 57},
|
|
225
|
-
* {x: -47, y: 35},
|
|
226
|
-
* {x: -14, y: 30}
|
|
227
|
-
* ]);
|
|
228
|
-
*/
|
|
229
|
-
this.mask = undefined;
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* (Experimental) an optional shader, to be used instead of the default built-in one, when drawing this renderable (WebGL only)
|
|
233
|
-
* @type {GLShader}
|
|
234
|
-
* @default undefined
|
|
235
|
-
*/
|
|
236
|
-
this.shader = undefined;
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode)
|
|
240
|
-
* @type {string}
|
|
241
|
-
* @default "normal"
|
|
242
|
-
* @see CanvasRenderer#setBlendMode
|
|
243
|
-
* @see WebGLRenderer#setBlendMode
|
|
244
|
-
*/
|
|
245
|
-
this.blendMode = "normal";
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* The name of the renderable
|
|
249
|
-
* @type {string}
|
|
250
|
-
* @default ""
|
|
251
|
-
*/
|
|
252
|
-
this.name = "";
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* to identify the object as a renderable object
|
|
256
|
-
* @ignore
|
|
257
|
-
*/
|
|
258
|
-
this.isRenderable = true;
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* If true then physic collision and input events will not impact this renderable
|
|
262
|
-
* @type {boolean}
|
|
263
|
-
* @default true
|
|
264
|
-
*/
|
|
265
|
-
this.isKinematic = true;
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* when true the renderable will be redrawn during the next update cycle
|
|
269
|
-
* @type {boolean}
|
|
270
|
-
* @default true
|
|
271
|
-
*/
|
|
272
|
-
this.isDirty = true;
|
|
273
|
-
|
|
274
|
-
// keep track of when we flip
|
|
275
|
-
this._flip = {
|
|
276
|
-
x : false,
|
|
277
|
-
y : false
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
// viewport flag
|
|
281
|
-
this._inViewport = false;
|
|
282
|
-
|
|
283
|
-
// cache value for the parentApp
|
|
284
|
-
this._parentApp = undefined;
|
|
285
|
-
|
|
286
|
-
// renderable cache tint value used by the getter/setter
|
|
287
|
-
this._tint = pool.pull("Color", 255, 255, 255, 1.0);
|
|
288
|
-
|
|
289
|
-
// ensure it's fully opaque by default
|
|
290
|
-
this.setOpacity(1.0);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* returns the parent application (or game) to which this renderable is attached to
|
|
295
|
-
* @return {Application} the parent application or undefined if not attached to any container/app
|
|
296
|
-
*/
|
|
297
|
-
get parentApp() {
|
|
298
|
-
if (typeof this._parentApp === "undefined") {
|
|
299
|
-
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getRootAncestor === "function") {
|
|
300
|
-
// the `app` property is only defined in the world "root" container
|
|
301
|
-
this._parentApp = this.ancestor.getRootAncestor().app;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
return this._parentApp;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
|
|
309
|
-
* @see Renderable#floating
|
|
310
|
-
* @type {boolean}
|
|
311
|
-
*/
|
|
312
|
-
get isFloating() {
|
|
313
|
-
return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.isFloating === true);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect.
|
|
318
|
-
* @type {Color}
|
|
319
|
-
* @default (255, 255, 255)
|
|
320
|
-
* @example
|
|
321
|
-
* // add a red tint to this renderable
|
|
322
|
-
* this.tint.setColor(255, 128, 128);
|
|
323
|
-
* // remove the tint
|
|
324
|
-
* this.tint.setColor(255, 255, 255);
|
|
325
|
-
*/
|
|
326
|
-
get tint() {
|
|
327
|
-
return this._tint;
|
|
328
|
-
}
|
|
329
|
-
set tint(value) {
|
|
330
|
-
this._tint.copy(value);
|
|
331
|
-
this.isDirty = true;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* the depth of this renderable on the z axis
|
|
336
|
-
* @type {number}
|
|
337
|
-
*/
|
|
338
|
-
get depth() {
|
|
339
|
-
return this.pos.z;
|
|
340
|
-
}
|
|
341
|
-
set depth(value) {
|
|
342
|
-
this.pos.z = value;
|
|
343
|
-
this.isDirty = true;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Whether the renderable object is visible and within the viewport
|
|
348
|
-
* @type {boolean}
|
|
349
|
-
* @default false
|
|
350
|
-
*/
|
|
351
|
-
get inViewport() {
|
|
352
|
-
return this._inViewport;
|
|
353
|
-
}
|
|
354
|
-
set inViewport(value) {
|
|
355
|
-
if (this._inViewport !== value) {
|
|
356
|
-
this._inViewport = value;
|
|
357
|
-
if (typeof this.onVisibilityChange === "function") {
|
|
358
|
-
this.onVisibilityChange.call(this, value);
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* returns true if this renderable is flipped on the horizontal axis
|
|
365
|
-
* @public
|
|
366
|
-
* @see Renderable#flipX
|
|
367
|
-
* @type {boolean}
|
|
368
|
-
*/
|
|
369
|
-
get isFlippedX() {
|
|
370
|
-
return this._flip.x === true;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* returns true if this renderable is flipped on the vertical axis
|
|
375
|
-
* @public
|
|
376
|
-
* @see Renderable#flipY
|
|
377
|
-
* @type {boolean}
|
|
378
|
-
*/
|
|
379
|
-
get isFlippedY() {
|
|
380
|
-
return this._flip.y === true;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* returns the bounding box for this renderable
|
|
385
|
-
* @returns {Bounds} bounding box Rectangle object
|
|
386
|
-
*/
|
|
387
|
-
getBounds() {
|
|
388
|
-
if (typeof this._bounds === "undefined") {
|
|
389
|
-
super.getBounds();
|
|
390
|
-
if (this.isFinite()) {
|
|
391
|
-
this.updateBounds();
|
|
392
|
-
} else {
|
|
393
|
-
// e.g. containers or game world can have infinite size
|
|
394
|
-
this._bounds.setMinMax(this.pos.x, this.pos.y, this.width, this.height);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
}
|
|
398
|
-
return this._bounds;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* get the renderable alpha channel value<br>
|
|
403
|
-
* @returns {number} current opacity value between 0 and 1
|
|
404
|
-
*/
|
|
405
|
-
getOpacity() {
|
|
406
|
-
return this.alpha;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* set the renderable alpha channel value<br>
|
|
411
|
-
* @param {number} alpha - opacity value between 0.0 and 1.0
|
|
412
|
-
*/
|
|
413
|
-
setOpacity(alpha) {
|
|
414
|
-
if (typeof (alpha) === "number") {
|
|
415
|
-
this.alpha = clamp(alpha, 0.0, 1.0);
|
|
416
|
-
// Set to 1 if alpha is NaN
|
|
417
|
-
if (isNaN(this.alpha)) {
|
|
418
|
-
this.alpha = 1.0;
|
|
419
|
-
}
|
|
420
|
-
this.isDirty = true;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* flip the renderable on the horizontal axis (around the center of the renderable)
|
|
426
|
-
* @see Matrix2d#scaleX
|
|
427
|
-
* @param {boolean} [flip=true] - `true` to flip this renderable.
|
|
428
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
429
|
-
*/
|
|
430
|
-
flipX(flip = true) {
|
|
431
|
-
this._flip.x = !!flip;
|
|
432
|
-
this.isDirty = true;
|
|
433
|
-
return this;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/**
|
|
437
|
-
* flip the renderable on the vertical axis (around the center of the renderable)
|
|
438
|
-
* @see Matrix2d#scaleY
|
|
439
|
-
* @param {boolean} [flip=true] - `true` to flip this renderable.
|
|
440
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
441
|
-
*/
|
|
442
|
-
flipY(flip = true) {
|
|
443
|
-
this._flip.y = !!flip;
|
|
444
|
-
this.isDirty = true;
|
|
445
|
-
return this;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* multiply the renderable currentTransform with the given matrix
|
|
450
|
-
* @see Renderable#currentTransform
|
|
451
|
-
* @param {Matrix2d} m - the transformation matrix
|
|
452
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
453
|
-
*/
|
|
454
|
-
transform(m) {
|
|
455
|
-
this.currentTransform.multiply(m);
|
|
456
|
-
this.updateBounds();
|
|
457
|
-
this.isDirty = true;
|
|
458
|
-
return this;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* return the angle to the specified target
|
|
463
|
-
* @param {Renderable|Vector2d|Vector3d} target
|
|
464
|
-
* @returns {number} angle in radians
|
|
465
|
-
*/
|
|
466
|
-
angleTo(target) {
|
|
467
|
-
let a = this.getBounds();
|
|
468
|
-
let ax, ay;
|
|
469
|
-
|
|
470
|
-
if (target instanceof Renderable) {
|
|
471
|
-
let b = target.getBounds();
|
|
472
|
-
ax = b.centerX - a.centerX;
|
|
473
|
-
ay = b.centerY - a.centerY;
|
|
474
|
-
} else { // vector object
|
|
475
|
-
ax = target.x - a.centerX;
|
|
476
|
-
ay = target.y - a.centerY;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
return Math.atan2(ay, ax);
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
/**
|
|
483
|
-
* return the distance to the specified target
|
|
484
|
-
* @param {Renderable|Vector2d|Vector3d} target
|
|
485
|
-
* @returns {number} distance
|
|
486
|
-
*/
|
|
487
|
-
distanceTo(target) {
|
|
488
|
-
let a = this.getBounds();
|
|
489
|
-
let dx, dy;
|
|
490
|
-
|
|
491
|
-
if (target instanceof Renderable) {
|
|
492
|
-
let b = target.getBounds();
|
|
493
|
-
dx = a.centerX - b.centerX;
|
|
494
|
-
dy = a.centerY - b.centerY;
|
|
495
|
-
} else { // vector object
|
|
496
|
-
dx = a.centerX - target.x;
|
|
497
|
-
dy = a.centerY - target.y;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
return Math.sqrt(dx * dx + dy * dy);
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* Rotate this renderable towards the given target.
|
|
505
|
-
* @param {Renderable|Vector2d|Vector3d} target - the renderable or position to look at
|
|
506
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
507
|
-
*/
|
|
508
|
-
lookAt(target) {
|
|
509
|
-
let position;
|
|
510
|
-
|
|
511
|
-
if (target instanceof Renderable) {
|
|
512
|
-
position = target.pos;
|
|
513
|
-
} else {
|
|
514
|
-
position = target;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
let angle = this.angleTo(position);
|
|
518
|
-
|
|
519
|
-
this.rotate(angle);
|
|
520
|
-
|
|
521
|
-
return this;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* Rotate this renderable by the specified angle (in radians).
|
|
526
|
-
* @param {number} angle - The angle to rotate (in radians)
|
|
527
|
-
* @param {Vector2d|ObservableVector2d} [v] - an optional point to rotate around
|
|
528
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
529
|
-
*/
|
|
530
|
-
rotate(angle, v) {
|
|
531
|
-
if (angle !== 0) {
|
|
532
|
-
this.currentTransform.rotate(angle, v);
|
|
533
|
-
this.updateBounds();
|
|
534
|
-
this.isDirty = true;
|
|
535
|
-
}
|
|
536
|
-
return this;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
/**
|
|
540
|
-
* scale the renderable around his anchor point. Scaling actually applies changes
|
|
541
|
-
* to the currentTransform member wich is used by the renderer to scale the object
|
|
542
|
-
* when rendering. It does not scale the object itself. For example if the renderable
|
|
543
|
-
* is an image, the image.width and image.height properties are unaltered but the currentTransform
|
|
544
|
-
* member will be changed.
|
|
545
|
-
* @param {number} x - a number representing the abscissa of the scaling vector.
|
|
546
|
-
* @param {number} [y=x] - a number representing the ordinate of the scaling vector.
|
|
547
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
548
|
-
*/
|
|
549
|
-
scale(x, y = x) {
|
|
550
|
-
this.currentTransform.scale(x, y);
|
|
551
|
-
this.updateBounds();
|
|
552
|
-
this.isDirty = true;
|
|
553
|
-
return this;
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
/**
|
|
557
|
-
* scale the renderable around his anchor point
|
|
558
|
-
* @param {Vector2d} v - scaling vector
|
|
559
|
-
* @returns {Renderable} Reference to this object for method chaining
|
|
560
|
-
*/
|
|
561
|
-
scaleV(v) {
|
|
562
|
-
this.scale(v.x, v.y);
|
|
563
|
-
return this;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
/**
|
|
567
|
-
* update function (automatically called by melonJS).
|
|
568
|
-
* @param {number} dt - time since the last update in milliseconds.
|
|
569
|
-
* @returns {boolean} true if the renderable is dirty
|
|
570
|
-
*/
|
|
571
|
-
update(dt) { // eslint-disable-line no-unused-vars
|
|
572
|
-
return this.isDirty;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
/**
|
|
576
|
-
* update the bounding box for this shape.
|
|
577
|
-
* @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
|
|
578
|
-
* @returns {Bounds} this shape bounding box Rectangle object
|
|
579
|
-
*/
|
|
580
|
-
updateBounds(absolute = true) {
|
|
581
|
-
if (this.isRenderable) {
|
|
582
|
-
let bounds = this.getBounds();
|
|
583
|
-
|
|
584
|
-
bounds.clear();
|
|
585
|
-
|
|
586
|
-
if ((this.autoTransform === true) && (!this.currentTransform.isIdentity())) {
|
|
587
|
-
// temporarly translate the matrix based on the anchor point
|
|
588
|
-
this.currentTransform.translate(
|
|
589
|
-
-this.width * this.anchorPoint.x,
|
|
590
|
-
-this.height * this.anchorPoint.y
|
|
591
|
-
);
|
|
592
|
-
bounds.addFrame(
|
|
593
|
-
0,
|
|
594
|
-
0,
|
|
595
|
-
this.width,
|
|
596
|
-
this.height,
|
|
597
|
-
this.currentTransform
|
|
598
|
-
);
|
|
599
|
-
this.currentTransform.translate(
|
|
600
|
-
this.width * this.anchorPoint.x,
|
|
601
|
-
this.height * this.anchorPoint.y
|
|
602
|
-
);
|
|
603
|
-
} else {
|
|
604
|
-
bounds.addFrame(
|
|
605
|
-
0,
|
|
606
|
-
0,
|
|
607
|
-
this.width,
|
|
608
|
-
this.height
|
|
609
|
-
);
|
|
610
|
-
// translate the bounds based on the anchor point
|
|
611
|
-
bounds.translate(
|
|
612
|
-
-this.width * this.anchorPoint.x,
|
|
613
|
-
-this.height * this.anchorPoint.y
|
|
614
|
-
);
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
if (absolute === true) {
|
|
618
|
-
let absPos = this.getAbsolutePosition();
|
|
619
|
-
bounds.centerOn(absPos.x + bounds.x + bounds.width / 2, absPos.y + bounds.y + bounds.height / 2);
|
|
620
|
-
}
|
|
621
|
-
return bounds;
|
|
622
|
-
|
|
623
|
-
} else {
|
|
624
|
-
// manage the case where updateBounds is called
|
|
625
|
-
// before the object being yet properly initialized
|
|
626
|
-
return super.updateBounds(absolute);
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
* update the renderable's bounding rect (private)
|
|
632
|
-
* @ignore
|
|
633
|
-
*/
|
|
634
|
-
updateBoundsPos(newX = this.pos.x, newY = this.pos.y) {
|
|
635
|
-
this.getBounds().translate(newX - this.pos.x, newY - this.pos.y);
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
/**
|
|
639
|
-
* return the renderable absolute position in the game world
|
|
640
|
-
* @returns {Vector2d}
|
|
641
|
-
*/
|
|
642
|
-
getAbsolutePosition() {
|
|
643
|
-
if (typeof this._absPos === "undefined") {
|
|
644
|
-
this._absPos = pool.pull("Vector2d");
|
|
645
|
-
}
|
|
646
|
-
// XXX Cache me or something
|
|
647
|
-
this._absPos.set(this.pos.x, this.pos.y);
|
|
648
|
-
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getAbsolutePosition === "function" && this.floating !== true) {
|
|
649
|
-
this._absPos.add(this.ancestor.getAbsolutePosition());
|
|
650
|
-
}
|
|
651
|
-
return this._absPos;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
/**
|
|
655
|
-
* called when the anchor point value is changed
|
|
656
|
-
* @private
|
|
657
|
-
* @param {number} x - the new X value to be set for the anchor
|
|
658
|
-
* @param {number} y - the new Y value to be set for the anchor
|
|
659
|
-
*/
|
|
660
|
-
onAnchorUpdate(x, y) {
|
|
661
|
-
// since the callback is called before setting the new value
|
|
662
|
-
// manually update the anchor point (required for updateBoundsPos)
|
|
663
|
-
this.anchorPoint.setMuted(x, y);
|
|
664
|
-
// then call updateBounds
|
|
665
|
-
this.updateBounds();
|
|
666
|
-
this.isDirty = true;
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
/**
|
|
670
|
-
* Prepare the rendering context before drawing (automatically called by melonJS).
|
|
671
|
-
* This will apply any defined transforms, anchor point, tint or blend mode and translate the context accordingly to this renderable position.
|
|
672
|
-
* @see Renderable#draw
|
|
673
|
-
* @see Renderable#postDraw
|
|
674
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
|
|
675
|
-
*/
|
|
676
|
-
preDraw(renderer) {
|
|
677
|
-
let ax = this.width * this.anchorPoint.x,
|
|
678
|
-
ay = this.height * this.anchorPoint.y;
|
|
679
|
-
|
|
680
|
-
// save renderer context
|
|
681
|
-
renderer.save();
|
|
682
|
-
|
|
683
|
-
// apply the defined alpha value
|
|
684
|
-
renderer.setGlobalAlpha(renderer.globalAlpha() * this.getOpacity());
|
|
685
|
-
|
|
686
|
-
// apply flip
|
|
687
|
-
if (this._flip.x || this._flip.y) {
|
|
688
|
-
var dx = this._flip.x ? this.centerX - ax : 0,
|
|
689
|
-
dy = this._flip.y ? this.centerY - ay : 0;
|
|
690
|
-
|
|
691
|
-
renderer.translate(dx, dy);
|
|
692
|
-
renderer.scale(this._flip.x ? -1 : 1, this._flip.y ? -1 : 1);
|
|
693
|
-
renderer.translate(-dx, -dy);
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
// apply stencil mask if defined
|
|
697
|
-
if (typeof this.mask !== "undefined") {
|
|
698
|
-
renderer.translate(this.pos.x, this.pos.y);
|
|
699
|
-
renderer.setMask(this.mask);
|
|
700
|
-
renderer.translate(-this.pos.x, -this.pos.y);
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
// use this renderable shader if defined
|
|
704
|
-
if (typeof this.shader === "object" && typeof renderer.gl !== "undefined") {
|
|
705
|
-
renderer.customShader = this.shader;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
if ((this.autoTransform === true) && (!this.currentTransform.isIdentity())) {
|
|
709
|
-
// apply the renderable transformation matrix
|
|
710
|
-
renderer.translate(this.pos.x, this.pos.y);
|
|
711
|
-
renderer.transform(this.currentTransform);
|
|
712
|
-
renderer.translate(-this.pos.x, -this.pos.y);
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
// offset by the anchor point
|
|
716
|
-
renderer.translate(-ax, -ay);
|
|
717
|
-
|
|
718
|
-
// apply the current tint and opacity
|
|
719
|
-
renderer.setTint(this.tint, this.getOpacity());
|
|
720
|
-
|
|
721
|
-
// apply blending if different from "normal"
|
|
722
|
-
if (this.blendMode !== renderer.getBlendMode()) {
|
|
723
|
-
renderer.setBlendMode(this.blendMode);
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
/**
|
|
728
|
-
* Draw this renderable (automatically called by melonJS).
|
|
729
|
-
* All draw operations for renderable are made respectively
|
|
730
|
-
* to the position or transforms set or applied by the preDraw method.
|
|
731
|
-
* The main draw loop will first call preDraw() to prepare the context for drawing the renderable,
|
|
732
|
-
* then draw() to draw the renderable, and finally postDraw() to clear the context.
|
|
733
|
-
* If you override this method, be mindful about the drawing logic; for example if you draw a shape
|
|
734
|
-
* from the draw method, you should make sure that your draw it at the 0, 0 coordinates.
|
|
735
|
-
* @see Renderable#preDraw
|
|
736
|
-
* @see Renderable#postDraw
|
|
737
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
|
|
738
|
-
* @param {Camera2d} [viewport] - the viewport to (re)draw
|
|
739
|
-
*/
|
|
740
|
-
draw(renderer, viewport) { // eslint-disable-line no-unused-vars
|
|
741
|
-
// empty one !
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
/**
|
|
745
|
-
* restore the rendering context after drawing (automatically called by melonJS).
|
|
746
|
-
* @see Renderable#preDraw
|
|
747
|
-
* @see Renderable#draw
|
|
748
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
|
|
749
|
-
*/
|
|
750
|
-
postDraw(renderer) {
|
|
751
|
-
// remove the previously applied tint
|
|
752
|
-
renderer.clearTint();
|
|
753
|
-
|
|
754
|
-
// clear the mask if set
|
|
755
|
-
if (typeof this.mask !== "undefined") {
|
|
756
|
-
renderer.clearMask();
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
// revert to the default shader if defined
|
|
760
|
-
if (typeof this.shader === "object" && typeof renderer.gl !== "undefined") {
|
|
761
|
-
renderer.customShader = undefined;
|
|
762
|
-
//renderer.setCompositor("quad");
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
// restore the context
|
|
766
|
-
renderer.restore();
|
|
767
|
-
|
|
768
|
-
// reset the dirty flag
|
|
769
|
-
this.isDirty = false;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
/**
|
|
773
|
-
* onCollision callback, triggered in case of collision,
|
|
774
|
-
* when this renderable body is colliding with another one
|
|
775
|
-
* @param {ResponseObject} response - the collision response object
|
|
776
|
-
* @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
|
|
777
|
-
* @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
|
|
778
|
-
* @example
|
|
779
|
-
* // colision handler
|
|
780
|
-
* onCollision(response) {
|
|
781
|
-
* if (response.b.body.collisionType === me.collision.types.ENEMY_OBJECT) {
|
|
782
|
-
* // makes the other object solid, by substracting the overlap vector to the current position
|
|
783
|
-
* this.pos.sub(response.overlapV);
|
|
784
|
-
* this.hurt();
|
|
785
|
-
* // not solid
|
|
786
|
-
* return false;
|
|
787
|
-
* }
|
|
788
|
-
* // Make the object solid
|
|
789
|
-
* return true;
|
|
790
|
-
* },
|
|
791
|
-
*/
|
|
792
|
-
onCollision(response, other) { // eslint-disable-line no-unused-vars
|
|
793
|
-
return false;
|
|
794
|
-
}
|
|
795
|
-
|
|
796
|
-
/**
|
|
797
|
-
* Destroy function<br>
|
|
798
|
-
* @ignore
|
|
799
|
-
*/
|
|
800
|
-
destroy() {
|
|
801
|
-
// allow recycling object properties
|
|
802
|
-
pool.push(this.currentTransform);
|
|
803
|
-
this.currentTransform = undefined;
|
|
804
|
-
|
|
805
|
-
pool.push(this.anchorPoint);
|
|
806
|
-
this.anchorPoint = undefined;
|
|
807
|
-
|
|
808
|
-
pool.push(this.pos);
|
|
809
|
-
this.pos = undefined;
|
|
810
|
-
|
|
811
|
-
if (typeof this._absPos !== "undefined") {
|
|
812
|
-
pool.push(this._absPos);
|
|
813
|
-
this._absPos = undefined;
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
if (this._bounds instanceof Bounds) {
|
|
817
|
-
pool.push(this._bounds);
|
|
818
|
-
this._bounds = undefined;
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
this.onVisibilityChange = undefined;
|
|
822
|
-
|
|
823
|
-
if (typeof this.mask !== "undefined") {
|
|
824
|
-
pool.push(this.mask);
|
|
825
|
-
this.mask = undefined;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
if (this._tint instanceof Color) {
|
|
829
|
-
pool.push(this._tint);
|
|
830
|
-
this._tint = undefined;
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
// cannot import and reference a Container from a Renderable, since Container extends Renderable, creating a circular dependency
|
|
834
|
-
//if (this.ancestor instanceof Container || this.ancestor instanceof Entity) {
|
|
835
|
-
this.ancestor = undefined;
|
|
836
|
-
|
|
837
|
-
// cannot import and reference a Application from a Renderable, messsing up class order in the bundle
|
|
838
|
-
//if (this._parentApp instanceof Application) {
|
|
839
|
-
this._parentApp = undefined;
|
|
840
|
-
//}
|
|
841
|
-
|
|
842
|
-
// destroy the physic body if a builtin body object
|
|
843
|
-
if (this.body instanceof Body) {
|
|
844
|
-
this.body.destroy.apply(this.body, arguments);
|
|
845
|
-
this.body = undefined;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
// release all registered events
|
|
849
|
-
releaseAllPointerEvents(this);
|
|
850
|
-
|
|
851
|
-
// call the user defined destroy method
|
|
852
|
-
this.onDestroyEvent.apply(this, arguments);
|
|
853
|
-
|
|
854
|
-
// destroy any shader object if not done by the user through onDestroyEvent()
|
|
855
|
-
if (this.shader instanceof GLShader) {
|
|
856
|
-
this.shader.destroy();
|
|
857
|
-
this.shader = undefined;
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
/**
|
|
862
|
-
* OnDestroy Notification function<br>
|
|
863
|
-
* Called by engine before deleting the object
|
|
864
|
-
*/
|
|
865
|
-
onDestroyEvent() {
|
|
866
|
-
// to be extended !
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
}
|