melonjs 17.3.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 +16 -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/build/application/header.d.ts +11 -0
- package/build/application/header.d.ts.map +1 -0
- package/{dist/types → build}/application/resize.d.ts +2 -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 +37 -59
- package/build/audio/audio.d.ts.map +1 -0
- package/{dist/types → build}/camera/camera2d.d.ts +42 -75
- 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 +11 -5
- 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 -15
- 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 +3 -3
- 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 +29 -53
- 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 +16 -40
- 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 +39 -21
- 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 +6 -4
- package/build/physics/collision.d.ts.map +1 -0
- package/{dist/types → build}/physics/detector.d.ts +13 -5
- package/build/physics/detector.d.ts.map +1 -0
- package/{dist/types → build}/physics/quadtree.d.ts +7 -18
- 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 +8 -0
- package/build/physics/sat.d.ts.map +1 -0
- package/{dist/types → build}/physics/world.d.ts +9 -4
- package/build/physics/world.d.ts.map +1 -0
- package/{dist/types → build}/plugin/plugin.d.ts +11 -18
- 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/build/renderable/colorlayer.d.ts +41 -0
- package/build/renderable/colorlayer.d.ts.map +1 -0
- package/{dist/types → build}/renderable/container.d.ts +50 -19
- 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 +12 -21
- package/build/renderable/dragndrop.d.ts.map +1 -0
- package/{dist/types → build}/renderable/entity/entity.d.ts +17 -11
- package/build/renderable/entity/entity.d.ts.map +1 -0
- package/{dist/types → build}/renderable/imagelayer.d.ts +28 -8
- 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 +9 -3
- package/build/renderable/nineslicesprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/renderable.d.ts +71 -50
- package/build/renderable/renderable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/sprite.d.ts +34 -13
- package/build/renderable/sprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/bitmaptext.d.ts +7 -8
- 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 +22 -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 +58 -22
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/renderer.d.ts +38 -17
- package/build/video/renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/rendertarget/canvasrendertarget.d.ts +20 -10
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/atlas.d.ts +14 -9
- 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 +9 -2
- package/build/video/webgl/compositors/compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/primitive_compositor.d.ts +7 -3
- package/build/video/webgl/compositors/primitive_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/quad_compositor.d.ts +5 -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 +55 -43
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -0
- package/package.json +83 -105
- 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 -437
- package/dist/melonjs.mjs/application/header.js +0 -35
- package/dist/melonjs.mjs/application/resize.js +0 -123
- package/dist/melonjs.mjs/application/settings.js +0 -65
- package/dist/melonjs.mjs/audio/audio.js +0 -618
- package/dist/melonjs.mjs/camera/camera2d.js +0 -729
- package/dist/melonjs.mjs/const.js +0 -32
- package/dist/melonjs.mjs/geometries/ellipse.js +0 -245
- package/dist/melonjs.mjs/geometries/line.js +0 -108
- package/dist/melonjs.mjs/geometries/path2d.js +0 -474
- package/dist/melonjs.mjs/geometries/point.js +0 -80
- package/dist/melonjs.mjs/geometries/poly.js +0 -433
- package/dist/melonjs.mjs/geometries/rectangle.js +0 -330
- 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 -803
- 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 -728
- 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 -487
- package/dist/melonjs.mjs/math/matrix3.js +0 -621
- package/dist/melonjs.mjs/math/observable_vector2.js +0 -468
- package/dist/melonjs.mjs/math/observable_vector3.js +0 -558
- package/dist/melonjs.mjs/math/vector2.js +0 -431
- package/dist/melonjs.mjs/math/vector3.js +0 -468
- 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 -186
- package/dist/melonjs.mjs/particles/settings.js +0 -317
- package/dist/melonjs.mjs/physics/body.js +0 -706
- package/dist/melonjs.mjs/physics/bounds.js +0 -409
- package/dist/melonjs.mjs/physics/collision.js +0 -130
- package/dist/melonjs.mjs/physics/detector.js +0 -218
- package/dist/melonjs.mjs/physics/quadtree.js +0 -396
- package/dist/melonjs.mjs/physics/response.js +0 -57
- package/dist/melonjs.mjs/physics/sat.js +0 -483
- package/dist/melonjs.mjs/physics/world.js +0 -224
- package/dist/melonjs.mjs/plugin/plugin.js +0 -168
- package/dist/melonjs.mjs/renderable/collectable.js +0 -60
- package/dist/melonjs.mjs/renderable/colorlayer.js +0 -78
- package/dist/melonjs.mjs/renderable/container.js +0 -994
- package/dist/melonjs.mjs/renderable/draggable.js +0 -121
- package/dist/melonjs.mjs/renderable/dragndrop.js +0 -114
- package/dist/melonjs.mjs/renderable/entity/entity.js +0 -254
- package/dist/melonjs.mjs/renderable/imagelayer.js +0 -288
- package/dist/melonjs.mjs/renderable/light2d.js +0 -164
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +0 -242
- package/dist/melonjs.mjs/renderable/renderable.js +0 -860
- package/dist/melonjs.mjs/renderable/sprite.js +0 -694
- 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 -158
- 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 -883
- package/dist/melonjs.mjs/video/renderer.js +0 -393
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +0 -310
- package/dist/melonjs.mjs/video/texture/atlas.js +0 -460
- 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 -234
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +0 -77
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +0 -254
- 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 -1199
- package/dist/melonjs.module.js +0 -42838
- package/dist/types/application/header.d.ts +0 -5
- package/dist/types/application/settings.d.ts +0 -105
- package/dist/types/const.d.ts +0 -21
- package/dist/types/geometries/ellipse.d.ts +0 -127
- package/dist/types/geometries/line.d.ts +0 -11
- package/dist/types/geometries/point.d.ts +0 -46
- package/dist/types/geometries/poly.d.ts +0 -175
- package/dist/types/geometries/rectangle.d.ts +0 -130
- 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 -165
- package/dist/types/math/matrix3.d.ts +0 -177
- package/dist/types/math/observable_vector2.d.ts +0 -278
- package/dist/types/math/observable_vector3.d.ts +0 -277
- package/dist/types/math/vector2.d.ts +0 -255
- package/dist/types/math/vector3.d.ts +0 -266
- package/dist/types/particles/particle.d.ts +0 -32
- package/dist/types/physics/bounds.d.ts +0 -195
- 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/colorlayer.d.ts +0 -28
- package/dist/types/renderable/light2d.d.ts +0 -58
- 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 -429
- package/src/application/header.js +0 -26
- package/src/application/resize.js +0 -114
- package/src/application/settings.js +0 -56
- package/src/audio/audio.js +0 -617
- package/src/camera/camera2d.js +0 -724
- package/src/const.js +0 -23
- package/src/geometries/ellipse.js +0 -236
- package/src/geometries/line.js +0 -99
- package/src/geometries/path2d.js +0 -464
- package/src/geometries/point.js +0 -71
- package/src/geometries/poly.js +0 -424
- package/src/geometries/rectangle.js +0 -321
- 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 -794
- 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 -727
- 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 -479
- package/src/math/matrix3.js +0 -613
- package/src/math/observable_vector2.js +0 -460
- package/src/math/observable_vector3.js +0 -550
- package/src/math/vector2.js +0 -423
- package/src/math/vector3.js +0 -460
- package/src/particles/emitter.js +0 -258
- package/src/particles/particle.js +0 -178
- package/src/particles/settings.js +0 -310
- package/src/physics/body.js +0 -698
- package/src/physics/bounds.js +0 -401
- package/src/physics/collision.js +0 -123
- package/src/physics/detector.js +0 -209
- package/src/physics/quadtree.js +0 -387
- package/src/physics/response.js +0 -48
- package/src/physics/sat.js +0 -473
- package/src/physics/world.js +0 -216
- package/src/plugin/plugin.js +0 -159
- 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 -70
- package/src/renderable/container.js +0 -985
- package/src/renderable/draggable.js +0 -114
- package/src/renderable/dragndrop.js +0 -106
- package/src/renderable/entity/entity.js +0 -246
- package/src/renderable/imagelayer.js +0 -280
- package/src/renderable/light2d.js +0 -155
- package/src/renderable/nineslicesprite.js +0 -233
- package/src/renderable/renderable.js +0 -852
- package/src/renderable/sprite.js +0 -685
- 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 -149
- 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 -874
- package/src/video/renderer.js +0 -384
- package/src/video/rendertarget/canvasrendertarget.js +0 -303
- package/src/video/texture/atlas.js +0 -451
- 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 -225
- package/src/video/webgl/compositors/primitive_compositor.js +0 -68
- package/src/video/webgl/compositors/quad_compositor.js +0 -245
- 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 -1190
|
@@ -1,729 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* melonJS Game Engine - v17.3.0
|
|
3
|
-
* http://www.melonjs.org
|
|
4
|
-
* melonjs is licensed under the MIT License.
|
|
5
|
-
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 - 2024 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
-
*/
|
|
8
|
-
import Vector2d from '../math/vector2.js';
|
|
9
|
-
import Vector3d from '../math/vector3.js';
|
|
10
|
-
import ObservableVector2d from '../math/observable_vector2.js';
|
|
11
|
-
import ObservableVector3d from '../math/observable_vector3.js';
|
|
12
|
-
import Matrix2d from '../math/matrix2.js';
|
|
13
|
-
import Matrix3d from '../math/matrix3.js';
|
|
14
|
-
import Rect from '../geometries/rectangle.js';
|
|
15
|
-
import { renderer } from '../video/video.js';
|
|
16
|
-
import { on, GAME_RESET, CANVAS_ONRESIZE, emit, VIEWPORT_ONRESIZE, VIEWPORT_ONCHANGE } from '../system/event.js';
|
|
17
|
-
import pool from '../system/pooling.js';
|
|
18
|
-
import Renderable from '../renderable/renderable.js';
|
|
19
|
-
import { clamp, toBeCloseTo } from '../math/math.js';
|
|
20
|
-
import { game } from '../index.js';
|
|
21
|
-
|
|
22
|
-
// some ref shortcut
|
|
23
|
-
const MIN = Math.min, MAX = Math.max;
|
|
24
|
-
|
|
25
|
-
let targetV = new Vector2d();
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @classdesc
|
|
29
|
-
* a 2D orthographic camera
|
|
30
|
-
* @augments Renderable
|
|
31
|
-
*/
|
|
32
|
-
class Camera2d extends Renderable {
|
|
33
|
-
/**
|
|
34
|
-
* @param {number} minX - start x offset
|
|
35
|
-
* @param {number} minY - start y offset
|
|
36
|
-
* @param {number} maxX - end x offset
|
|
37
|
-
* @param {number} maxY - end y offset
|
|
38
|
-
*/
|
|
39
|
-
constructor(minX, minY, maxX, maxY) {
|
|
40
|
-
super(minX, minY, maxX - minX, maxY - minY);
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Axis definition
|
|
44
|
-
* @enum {number}
|
|
45
|
-
* @property {number} NONE no axis
|
|
46
|
-
* @property {number} HORIZONTAL horizontal axis only
|
|
47
|
-
* @property {number} VERTICAL vertical axis only
|
|
48
|
-
* @property {number} BOTH both axis
|
|
49
|
-
* @readonly
|
|
50
|
-
* @name AXIS
|
|
51
|
-
* @memberof Camera2d
|
|
52
|
-
*/
|
|
53
|
-
this.AXIS = {
|
|
54
|
-
NONE : 0,
|
|
55
|
-
HORIZONTAL : 1,
|
|
56
|
-
VERTICAL : 2,
|
|
57
|
-
BOTH : 3
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Camera bounds
|
|
62
|
-
* @public
|
|
63
|
-
* @type {Bounds}
|
|
64
|
-
* @name bounds
|
|
65
|
-
* @memberof Camera2d
|
|
66
|
-
*/
|
|
67
|
-
this.bounds = pool.pull("Bounds");
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* enable or disable damping
|
|
71
|
-
* @private
|
|
72
|
-
* @default true
|
|
73
|
-
*/
|
|
74
|
-
this.smoothFollow = true;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Camera damping for smooth transition [0 .. 1].
|
|
78
|
-
* 1 being the maximum value and will snap the camera to the target position
|
|
79
|
-
* @public
|
|
80
|
-
* @type {number}
|
|
81
|
-
* @name damping
|
|
82
|
-
* @default 1.0
|
|
83
|
-
* @memberof Camera2d
|
|
84
|
-
*/
|
|
85
|
-
this.damping = 1.0;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* the closest point relative to the camera
|
|
89
|
-
* @public
|
|
90
|
-
* @type {number}
|
|
91
|
-
* @name near
|
|
92
|
-
* @default -1000
|
|
93
|
-
* @memberof Camera2d
|
|
94
|
-
*/
|
|
95
|
-
this.near = -1000;
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* the furthest point relative to the camera.
|
|
99
|
-
* @public
|
|
100
|
-
* @type {number}
|
|
101
|
-
* @name far
|
|
102
|
-
* @default 1000
|
|
103
|
-
* @memberof Camera2d
|
|
104
|
-
*/
|
|
105
|
-
this.far = 1000;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* the default camera projection matrix
|
|
109
|
-
* (2d cameras use an orthographic projection by default).
|
|
110
|
-
* @public
|
|
111
|
-
* @type {Matrix3d}
|
|
112
|
-
* @name projectionMatrix
|
|
113
|
-
* @memberof Camera2d
|
|
114
|
-
*/
|
|
115
|
-
this.projectionMatrix = new Matrix3d();
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* the invert camera transform used to unproject points
|
|
119
|
-
* @ignore
|
|
120
|
-
* @type {Matrix2d}
|
|
121
|
-
* @name invCurrentTransform
|
|
122
|
-
* @memberof Camera2d
|
|
123
|
-
*/
|
|
124
|
-
this.invCurrentTransform = new Matrix2d();
|
|
125
|
-
|
|
126
|
-
// offset for shake effect
|
|
127
|
-
this.offset = new Vector2d();
|
|
128
|
-
|
|
129
|
-
// target to follow
|
|
130
|
-
this.target = null;
|
|
131
|
-
|
|
132
|
-
// default value follow
|
|
133
|
-
this.follow_axis = this.AXIS.NONE;
|
|
134
|
-
|
|
135
|
-
// shake variables
|
|
136
|
-
this._shake = {
|
|
137
|
-
intensity : 0,
|
|
138
|
-
duration : 0,
|
|
139
|
-
axis : this.AXIS.BOTH,
|
|
140
|
-
onComplete : null
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// flash variables
|
|
144
|
-
this._fadeOut = {
|
|
145
|
-
color : null,
|
|
146
|
-
tween : null
|
|
147
|
-
};
|
|
148
|
-
// fade variables
|
|
149
|
-
this._fadeIn = {
|
|
150
|
-
color : null,
|
|
151
|
-
tween : null
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
// default camera name
|
|
155
|
-
this.name = "default";
|
|
156
|
-
|
|
157
|
-
// set a default deadzone
|
|
158
|
-
this.setDeadzone(this.width / 6, this.height / 6);
|
|
159
|
-
|
|
160
|
-
// for backward "compatiblity" (in terms of behavior)
|
|
161
|
-
this.anchorPoint.set(0, 0);
|
|
162
|
-
|
|
163
|
-
// enable event detection on the camera
|
|
164
|
-
this.isKinematic = false;
|
|
165
|
-
|
|
166
|
-
this.bounds.setMinMax(minX, minY, maxX, maxY);
|
|
167
|
-
|
|
168
|
-
// update the projection matrix
|
|
169
|
-
this._updateProjectionMatrix();
|
|
170
|
-
|
|
171
|
-
// subscribe to the game reset event
|
|
172
|
-
on(GAME_RESET, this.reset, this);
|
|
173
|
-
// subscribe to the canvas resize event
|
|
174
|
-
on(CANVAS_ONRESIZE, this.resize, this);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// -- some private function ---
|
|
178
|
-
|
|
179
|
-
/** @ignore */
|
|
180
|
-
// update the projection matrix based on the projection frame (a rectangle)
|
|
181
|
-
_updateProjectionMatrix() {
|
|
182
|
-
this.projectionMatrix.ortho(0, this.width, this.height, 0, this.near, this.far);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/** @ignore */
|
|
186
|
-
_followH(target) {
|
|
187
|
-
let targetX = this.pos.x;
|
|
188
|
-
if ((target.x - this.pos.x) > (this.deadzone.right)) {
|
|
189
|
-
targetX = MIN((target.x) - (this.deadzone.right), this.bounds.width - this.width);
|
|
190
|
-
}
|
|
191
|
-
else if ((target.x - this.pos.x) < (this.deadzone.pos.x)) {
|
|
192
|
-
targetX = MAX((target.x) - this.deadzone.pos.x, this.bounds.left);
|
|
193
|
-
}
|
|
194
|
-
return targetX;
|
|
195
|
-
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/** @ignore */
|
|
199
|
-
_followV(target) {
|
|
200
|
-
let targetY = this.pos.y;
|
|
201
|
-
if ((target.y - this.pos.y) > (this.deadzone.bottom)) {
|
|
202
|
-
targetY = MIN((target.y) - (this.deadzone.bottom), this.bounds.height - this.height);
|
|
203
|
-
}
|
|
204
|
-
else if ((target.y - this.pos.y) < (this.deadzone.pos.y)) {
|
|
205
|
-
targetY = MAX((target.y) - this.deadzone.pos.y, this.bounds.top);
|
|
206
|
-
}
|
|
207
|
-
return targetY;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// -- public function ---
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* reset the camera position to specified coordinates
|
|
214
|
-
* @name reset
|
|
215
|
-
* @memberof Camera2d
|
|
216
|
-
* @param {number} [x=0] - initial position of the camera on the x axis
|
|
217
|
-
* @param {number} [y=0] - initial position of the camera on the y axis
|
|
218
|
-
*/
|
|
219
|
-
reset(x = 0, y = 0) {
|
|
220
|
-
// reset the initial camera position to 0,0
|
|
221
|
-
this.pos.x = x;
|
|
222
|
-
this.pos.y = y;
|
|
223
|
-
|
|
224
|
-
// reset the target
|
|
225
|
-
this.unfollow();
|
|
226
|
-
|
|
227
|
-
// damping default value
|
|
228
|
-
this.smoothFollow = true;
|
|
229
|
-
this.damping = 1.0;
|
|
230
|
-
|
|
231
|
-
// reset the transformation matrix
|
|
232
|
-
this.currentTransform.identity();
|
|
233
|
-
this.invCurrentTransform.identity().invert();
|
|
234
|
-
|
|
235
|
-
// update the projection matrix
|
|
236
|
-
this._updateProjectionMatrix();
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* change the deadzone settings.
|
|
241
|
-
* the "deadzone" defines an area within the current camera in which
|
|
242
|
-
* the followed renderable can move without scrolling the camera.
|
|
243
|
-
* @name setDeadzone
|
|
244
|
-
* @see Camera2d.follow
|
|
245
|
-
* @memberof Camera2d
|
|
246
|
-
* @param {number} w - deadzone width
|
|
247
|
-
* @param {number} h - deadzone height
|
|
248
|
-
*/
|
|
249
|
-
setDeadzone(w, h) {
|
|
250
|
-
if (typeof(this.deadzone) === "undefined") {
|
|
251
|
-
this.deadzone = new Rect(0, 0, 0, 0);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// reusing the old code for now...
|
|
255
|
-
this.deadzone.pos.set(
|
|
256
|
-
~~((this.width - w) / 2),
|
|
257
|
-
~~((this.height - h) / 2 - h * 0.25)
|
|
258
|
-
);
|
|
259
|
-
this.deadzone.resize(w, h);
|
|
260
|
-
|
|
261
|
-
this.smoothFollow = false;
|
|
262
|
-
|
|
263
|
-
// force a camera update
|
|
264
|
-
this.updateTarget();
|
|
265
|
-
|
|
266
|
-
this.smoothFollow = true;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* resize the camera
|
|
271
|
-
* @name resize
|
|
272
|
-
* @memberof Camera2d
|
|
273
|
-
* @param {number} w - new width of the camera
|
|
274
|
-
* @param {number} h - new height of the camera
|
|
275
|
-
* @returns {Camera2d} this camera
|
|
276
|
-
*/
|
|
277
|
-
resize(w, h) {
|
|
278
|
-
// parent consctructor, resize camera rect
|
|
279
|
-
super.resize(w, h);
|
|
280
|
-
|
|
281
|
-
// disable damping while resizing
|
|
282
|
-
this.smoothFollow = false;
|
|
283
|
-
|
|
284
|
-
// reset everything
|
|
285
|
-
this.setBounds(0, 0, w, h);
|
|
286
|
-
this.setDeadzone(w / 6, h / 6);
|
|
287
|
-
this.update();
|
|
288
|
-
this.smoothFollow = true;
|
|
289
|
-
|
|
290
|
-
// update the projection matrix
|
|
291
|
-
this._updateProjectionMatrix();
|
|
292
|
-
|
|
293
|
-
// publish the viewport resize event
|
|
294
|
-
emit(VIEWPORT_ONRESIZE, this.width, this.height, this);
|
|
295
|
-
|
|
296
|
-
return this;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* set the camera boundaries (set to the world limit by default).
|
|
301
|
-
* the camera is bound to the given coordinates and cannot move/be scrolled outside of it.
|
|
302
|
-
* @name setBounds
|
|
303
|
-
* @memberof Camera2d
|
|
304
|
-
* @param {number} x - world left limit
|
|
305
|
-
* @param {number} y - world top limit
|
|
306
|
-
* @param {number} w - world width limit
|
|
307
|
-
* @param {number} h - world height limit
|
|
308
|
-
*/
|
|
309
|
-
setBounds(x, y, w, h) {
|
|
310
|
-
this.smoothFollow = false;
|
|
311
|
-
this.bounds.setMinMax(x, y, w + x, h + y);
|
|
312
|
-
this.moveTo(this.pos.x, this.pos.y);
|
|
313
|
-
this.update();
|
|
314
|
-
this.smoothFollow = true;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* set the camera to follow the specified renderable. <br>
|
|
319
|
-
* (this will put the camera center around the given target)
|
|
320
|
-
* @name follow
|
|
321
|
-
* @memberof Camera2d
|
|
322
|
-
* @param {Renderable|Vector2d} target - renderable or position vector to follow
|
|
323
|
-
* @param {number} [axis=me.game.viewport.AXIS.BOTH] - Which axis to follow (see {@link Camera2d.AXIS})
|
|
324
|
-
* @param {number} [damping=1] - default damping value
|
|
325
|
-
* @example
|
|
326
|
-
* // set the camera to follow this renderable on both axis, and enable damping
|
|
327
|
-
* me.game.viewport.follow(this, me.game.viewport.AXIS.BOTH, 0.1);
|
|
328
|
-
*/
|
|
329
|
-
follow(target, axis, damping) {
|
|
330
|
-
if (target instanceof Renderable) {
|
|
331
|
-
this.target = target.pos;
|
|
332
|
-
}
|
|
333
|
-
else if ((target instanceof Vector2d) || (target instanceof Vector3d) ||
|
|
334
|
-
(target instanceof ObservableVector2d) || (target instanceof ObservableVector3d)) {
|
|
335
|
-
this.target = target;
|
|
336
|
-
}
|
|
337
|
-
else {
|
|
338
|
-
throw new Error("invalid target for me.Camera2d.follow");
|
|
339
|
-
}
|
|
340
|
-
// if axis is null, camera is moved on target center
|
|
341
|
-
this.follow_axis = (
|
|
342
|
-
typeof(axis) === "undefined" ? this.AXIS.BOTH : axis
|
|
343
|
-
);
|
|
344
|
-
|
|
345
|
-
this.smoothFollow = false;
|
|
346
|
-
|
|
347
|
-
if (typeof damping !== "number") {
|
|
348
|
-
this.damping = 1;
|
|
349
|
-
} else {
|
|
350
|
-
this.damping = clamp(damping, 0.0, 1.0);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// force a camera update
|
|
354
|
-
this.updateTarget();
|
|
355
|
-
|
|
356
|
-
this.smoothFollow = true;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/**
|
|
360
|
-
* unfollow the current target
|
|
361
|
-
* @name unfollow
|
|
362
|
-
* @memberof Camera2d
|
|
363
|
-
*/
|
|
364
|
-
unfollow() {
|
|
365
|
-
this.target = null;
|
|
366
|
-
this.follow_axis = this.AXIS.NONE;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* move the camera upper-left position by the specified offset.
|
|
371
|
-
* @name move
|
|
372
|
-
* @memberof Camera2d
|
|
373
|
-
* @see Camera2d.focusOn
|
|
374
|
-
* @param {number} x - horizontal offset
|
|
375
|
-
* @param {number} y - vertical offset
|
|
376
|
-
* @example
|
|
377
|
-
* // Move the camera up by four pixels
|
|
378
|
-
* me.game.viewport.move(0, -4);
|
|
379
|
-
*/
|
|
380
|
-
move(x, y) {
|
|
381
|
-
this.moveTo(this.pos.x + x, this.pos.y + y);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* move the camera upper-left position to the specified coordinates
|
|
386
|
-
* @name moveTo
|
|
387
|
-
* @memberof Camera2d
|
|
388
|
-
* @see Camera2d.focusOn
|
|
389
|
-
* @param {number} x
|
|
390
|
-
* @param {number} y
|
|
391
|
-
*/
|
|
392
|
-
moveTo(x, y) {
|
|
393
|
-
let _x = this.pos.x;
|
|
394
|
-
let _y = this.pos.y;
|
|
395
|
-
|
|
396
|
-
this.pos.x = clamp(
|
|
397
|
-
x,
|
|
398
|
-
this.bounds.left,
|
|
399
|
-
this.bounds.width
|
|
400
|
-
);
|
|
401
|
-
this.pos.y = clamp(
|
|
402
|
-
y,
|
|
403
|
-
this.bounds.top,
|
|
404
|
-
this.bounds.height
|
|
405
|
-
);
|
|
406
|
-
|
|
407
|
-
//publish the VIEWPORT_ONCHANGE event if necessary
|
|
408
|
-
if (_x !== this.pos.x || _y !== this.pos.y) {
|
|
409
|
-
this.isDirty = true;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
/** @ignore */
|
|
414
|
-
updateTarget() {
|
|
415
|
-
if (this.target) {
|
|
416
|
-
|
|
417
|
-
targetV.setV(this.pos);
|
|
418
|
-
|
|
419
|
-
switch (this.follow_axis) {
|
|
420
|
-
case this.AXIS.NONE:
|
|
421
|
-
//this.focusOn(this.target);
|
|
422
|
-
break;
|
|
423
|
-
|
|
424
|
-
case this.AXIS.HORIZONTAL:
|
|
425
|
-
targetV.x = this._followH(this.target);
|
|
426
|
-
break;
|
|
427
|
-
|
|
428
|
-
case this.AXIS.VERTICAL:
|
|
429
|
-
targetV.y = this._followV(this.target);
|
|
430
|
-
break;
|
|
431
|
-
|
|
432
|
-
case this.AXIS.BOTH:
|
|
433
|
-
targetV.x = this._followH(this.target);
|
|
434
|
-
targetV.y = this._followV(this.target);
|
|
435
|
-
break;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
if (!this.pos.equals(targetV)) {
|
|
439
|
-
// update the camera position
|
|
440
|
-
if (this.smoothFollow === true && this.damping < 1.0) {
|
|
441
|
-
// account for floating precision and check if we are close "enough"
|
|
442
|
-
if (toBeCloseTo(targetV.x, this.pos.x, 2) &&
|
|
443
|
-
toBeCloseTo(targetV.y, this.pos.y, 2)) {
|
|
444
|
-
this.pos.setV(targetV);
|
|
445
|
-
return;
|
|
446
|
-
} else {
|
|
447
|
-
this.pos.lerp(targetV, this.damping);
|
|
448
|
-
}
|
|
449
|
-
} else {
|
|
450
|
-
this.pos.setV(targetV);
|
|
451
|
-
}
|
|
452
|
-
this.isDirty = true;
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
/** @ignore */
|
|
458
|
-
update(dt) {
|
|
459
|
-
// update the camera position
|
|
460
|
-
this.updateTarget(dt);
|
|
461
|
-
|
|
462
|
-
if (this._shake.duration > 0) {
|
|
463
|
-
this._shake.duration -= dt;
|
|
464
|
-
if (this._shake.duration <= 0) {
|
|
465
|
-
this._shake.duration = 0;
|
|
466
|
-
this.offset.setZero();
|
|
467
|
-
if (typeof(this._shake.onComplete) === "function") {
|
|
468
|
-
this._shake.onComplete();
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
else {
|
|
472
|
-
if (this._shake.axis === this.AXIS.BOTH ||
|
|
473
|
-
this._shake.axis === this.AXIS.HORIZONTAL) {
|
|
474
|
-
this.offset.x = (Math.random() - 0.5) * this._shake.intensity;
|
|
475
|
-
}
|
|
476
|
-
if (this._shake.axis === this.AXIS.BOTH ||
|
|
477
|
-
this._shake.axis === this.AXIS.VERTICAL) {
|
|
478
|
-
this.offset.y = (Math.random() - 0.5) * this._shake.intensity;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
// updated!
|
|
482
|
-
this.isDirty = true;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
if (this.isDirty === true) {
|
|
486
|
-
//publish the corresponding message
|
|
487
|
-
emit(VIEWPORT_ONCHANGE, this.pos);
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
// check for fade/flash effect
|
|
491
|
-
if ((this._fadeIn.tween != null) || (this._fadeOut.tween != null)) {
|
|
492
|
-
this.isDirty = true;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
if (!this.currentTransform.isIdentity()) {
|
|
496
|
-
this.invCurrentTransform.copy(this.currentTransform).invert();
|
|
497
|
-
} else {
|
|
498
|
-
// reset to default
|
|
499
|
-
this.invCurrentTransform.identity();
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
return super.update(dt);
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
/**
|
|
506
|
-
* shake the camera
|
|
507
|
-
* @name shake
|
|
508
|
-
* @memberof Camera2d
|
|
509
|
-
* @param {number} intensity - maximum offset that the screen can be moved
|
|
510
|
-
* while shaking
|
|
511
|
-
* @param {number} duration - expressed in milliseconds
|
|
512
|
-
* @param {number} [axis=me.game.viewport.AXIS.BOTH] - specify on which axis to apply the shake effect (see {@link Camera2d.AXIS})
|
|
513
|
-
* @param {Function} [onComplete] - callback once shaking effect is over
|
|
514
|
-
* @param {boolean} [force] - if true this will override the current effect
|
|
515
|
-
* @example
|
|
516
|
-
* // shake it baby !
|
|
517
|
-
* me.game.viewport.shake(10, 500, me.game.viewport.AXIS.BOTH);
|
|
518
|
-
*/
|
|
519
|
-
shake(intensity, duration, axis, onComplete, force) {
|
|
520
|
-
if (this._shake.duration === 0 || force === true) {
|
|
521
|
-
this._shake.intensity = intensity;
|
|
522
|
-
this._shake.duration = duration;
|
|
523
|
-
this._shake.axis = axis || this.AXIS.BOTH;
|
|
524
|
-
this._shake.onComplete = typeof (onComplete) === "function" ? onComplete : undefined;
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
/**
|
|
529
|
-
* fadeOut(flash) effect<p>
|
|
530
|
-
* screen is filled with the specified color and slowly goes back to normal
|
|
531
|
-
* @name fadeOut
|
|
532
|
-
* @memberof Camera2d
|
|
533
|
-
* @param {Color|string} color - a CSS color value
|
|
534
|
-
* @param {number} [duration=1000] - expressed in milliseconds
|
|
535
|
-
* @param {Function} [onComplete] - callback once effect is over
|
|
536
|
-
* @example
|
|
537
|
-
* // fade the camera to white upon dying, reload the level, and then fade out back
|
|
538
|
-
* me.game.viewport.fadeIn("#fff", 150, function() {
|
|
539
|
-
* me.audio.play("die", false);
|
|
540
|
-
* me.level.reload();
|
|
541
|
-
* me.game.viewport.fadeOut("#fff", 150);
|
|
542
|
-
* });
|
|
543
|
-
*/
|
|
544
|
-
fadeOut(color, duration = 1000, onComplete) {
|
|
545
|
-
this._fadeOut.color = pool.pull("Color").copy(color);
|
|
546
|
-
this._fadeOut.tween = pool.pull("Tween", this._fadeOut.color)
|
|
547
|
-
.to({ alpha: 0.0 }, duration)
|
|
548
|
-
.onComplete(onComplete || null);
|
|
549
|
-
this._fadeOut.tween.isPersistent = true;
|
|
550
|
-
this._fadeOut.tween.start();
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
/**
|
|
554
|
-
* fadeIn effect <p>
|
|
555
|
-
* fade to the specified color
|
|
556
|
-
* @name fadeIn
|
|
557
|
-
* @memberof Camera2d
|
|
558
|
-
* @param {Color|string} color - a CSS color value
|
|
559
|
-
* @param {number} [duration=1000] - expressed in milliseconds
|
|
560
|
-
* @param {Function} [onComplete] - callback once effect is over
|
|
561
|
-
* @example
|
|
562
|
-
* // flash the camera to white for 75ms
|
|
563
|
-
* me.game.viewport.fadeIn("#FFFFFF", 75);
|
|
564
|
-
*/
|
|
565
|
-
fadeIn(color, duration = 1000, onComplete) {
|
|
566
|
-
this._fadeIn.color = pool.pull("Color").copy(color);
|
|
567
|
-
let _alpha = this._fadeIn.color.alpha;
|
|
568
|
-
this._fadeIn.color.alpha = 0.0;
|
|
569
|
-
this._fadeIn.tween = pool.pull("Tween", this._fadeIn.color)
|
|
570
|
-
.to({ alpha: _alpha }, duration)
|
|
571
|
-
.onComplete(onComplete || null);
|
|
572
|
-
this._fadeIn.tween.isPersistent = true;
|
|
573
|
-
this._fadeIn.tween.start();
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
/**
|
|
577
|
-
* set the camera position around the specified object
|
|
578
|
-
* @name focusOn
|
|
579
|
-
* @memberof Camera2d
|
|
580
|
-
* @param {Renderable|Entity|Sprite|NineSliceSprite} target - the renderable to focus the camera on
|
|
581
|
-
*/
|
|
582
|
-
focusOn(target) {
|
|
583
|
-
let bounds = target.getBounds();
|
|
584
|
-
this.moveTo(
|
|
585
|
-
target.pos.x + bounds.left + (bounds.width / 2),
|
|
586
|
-
target.pos.y + bounds.top + (bounds.height / 2)
|
|
587
|
-
);
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
/**
|
|
591
|
-
* check if the specified renderable is in the camera
|
|
592
|
-
* @name isVisible
|
|
593
|
-
* @memberof Camera2d
|
|
594
|
-
* @param {Renderable|Entity|Sprite|NineSliceSprite} obj - to be checked against
|
|
595
|
-
* @param {boolean} [floating = obj.floating] - if visibility check should be done against screen coordinates
|
|
596
|
-
* @returns {boolean} true if within the viewport
|
|
597
|
-
*/
|
|
598
|
-
isVisible(obj, floating = obj.floating) {
|
|
599
|
-
if (floating === true || obj.floating === true) {
|
|
600
|
-
// check against screen coordinates
|
|
601
|
-
return renderer.overlaps(obj.getBounds());
|
|
602
|
-
} else {
|
|
603
|
-
// check if within the current camera
|
|
604
|
-
return obj.getBounds().overlaps(this);
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
/**
|
|
609
|
-
* convert the given "local" (screen) coordinates into world coordinates
|
|
610
|
-
* @name localToWorld
|
|
611
|
-
* @memberof Camera2d
|
|
612
|
-
* @param {number} x - the x coordinate of the local point to be converted
|
|
613
|
-
* @param {number} y - the y coordinate of the local point to be converted
|
|
614
|
-
* @param {number} [v] - an optional vector object where to set the converted value
|
|
615
|
-
* @returns {Vector2d}
|
|
616
|
-
*/
|
|
617
|
-
localToWorld(x, y, v) {
|
|
618
|
-
// TODO memoization for one set of coords (multitouch)
|
|
619
|
-
v = v || pool.pull("Vector2d");
|
|
620
|
-
v.set(x, y).add(this.pos).sub(game.world.pos);
|
|
621
|
-
if (!this.currentTransform.isIdentity()) {
|
|
622
|
-
this.invCurrentTransform.apply(v);
|
|
623
|
-
}
|
|
624
|
-
return v;
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
* convert the given world coordinates into "local" (screen) coordinates
|
|
629
|
-
* @name worldToLocal
|
|
630
|
-
* @memberof Camera2d
|
|
631
|
-
* @param {number} x
|
|
632
|
-
* @param {number} y
|
|
633
|
-
* @param {number} [v] - an optional vector object where to set the converted value
|
|
634
|
-
* @returns {Vector2d} a vector with the converted local coordinates
|
|
635
|
-
*/
|
|
636
|
-
worldToLocal(x, y, v) {
|
|
637
|
-
// TODO memoization for one set of coords (multitouch)
|
|
638
|
-
v = v || pool.pull("Vector2d");
|
|
639
|
-
v.set(x, y);
|
|
640
|
-
if (!this.currentTransform.isIdentity()) {
|
|
641
|
-
this.currentTransform.apply(v);
|
|
642
|
-
}
|
|
643
|
-
return v.sub(this.pos).add(game.world.pos);
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
/**
|
|
647
|
-
* render the camera effects
|
|
648
|
-
* @ignore
|
|
649
|
-
*/
|
|
650
|
-
drawFX(renderer) {
|
|
651
|
-
// fading effect
|
|
652
|
-
if (this._fadeIn.tween) {
|
|
653
|
-
// add an overlay
|
|
654
|
-
renderer.save();
|
|
655
|
-
// reset all transform so that the overaly cover the whole camera area
|
|
656
|
-
renderer.resetTransform();
|
|
657
|
-
renderer.setColor(this._fadeIn.color);
|
|
658
|
-
renderer.fillRect(0, 0, this.width, this.height);
|
|
659
|
-
renderer.restore();
|
|
660
|
-
// remove the tween if over
|
|
661
|
-
if (this._fadeIn.color.alpha === 1.0) {
|
|
662
|
-
this._fadeIn.tween = null;
|
|
663
|
-
pool.push(this._fadeIn.color);
|
|
664
|
-
this._fadeIn.color = null;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
// flashing effect
|
|
669
|
-
if (this._fadeOut.tween) {
|
|
670
|
-
// add an overlay
|
|
671
|
-
renderer.save();
|
|
672
|
-
// reset all transform so that the overaly cover the whole camera area
|
|
673
|
-
renderer.resetTransform();
|
|
674
|
-
renderer.setColor(this._fadeOut.color);
|
|
675
|
-
renderer.fillRect(0, 0, this.width, this.height);
|
|
676
|
-
renderer.restore();
|
|
677
|
-
// remove the tween if over
|
|
678
|
-
if (this._fadeOut.color.alpha === 0.0) {
|
|
679
|
-
this._fadeOut.tween = null;
|
|
680
|
-
pool.push(this._fadeOut.color);
|
|
681
|
-
this._fadeOut.color = null;
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
/**
|
|
687
|
-
* draw all object visibile in this viewport
|
|
688
|
-
* @ignore
|
|
689
|
-
*/
|
|
690
|
-
draw(renderer, container) {
|
|
691
|
-
let translateX = this.pos.x + this.offset.x;
|
|
692
|
-
let translateY = this.pos.y + this.offset.y;
|
|
693
|
-
|
|
694
|
-
// translate the world coordinates by default to screen coordinates
|
|
695
|
-
container.currentTransform.translate(-translateX, -translateY);
|
|
696
|
-
|
|
697
|
-
// set the camera projection
|
|
698
|
-
renderer.setProjection(this.projectionMatrix);
|
|
699
|
-
|
|
700
|
-
// clip to camera bounds
|
|
701
|
-
renderer.clipRect(
|
|
702
|
-
0,
|
|
703
|
-
0,
|
|
704
|
-
this.width,
|
|
705
|
-
this.height
|
|
706
|
-
);
|
|
707
|
-
|
|
708
|
-
this.preDraw(renderer);
|
|
709
|
-
|
|
710
|
-
container.preDraw(renderer, this);
|
|
711
|
-
|
|
712
|
-
// draw all objects,
|
|
713
|
-
// specifying the viewport as the rectangle area to redraw
|
|
714
|
-
container.draw(renderer, this);
|
|
715
|
-
|
|
716
|
-
// draw the viewport/camera effects
|
|
717
|
-
this.drawFX(renderer);
|
|
718
|
-
|
|
719
|
-
container.postDraw(renderer, this);
|
|
720
|
-
|
|
721
|
-
this.postDraw(renderer);
|
|
722
|
-
|
|
723
|
-
// translate the world coordinates by default to screen coordinates
|
|
724
|
-
container.currentTransform.translate(translateX, translateY);
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
export { Camera2d as default };
|