melonjs 14.2.0 → 14.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
- package/dist/melonjs.mjs/_virtual/howler.js +2 -2
- package/dist/melonjs.mjs/_virtual/index.js +2 -2
- package/dist/melonjs.mjs/_virtual/index2.js +2 -2
- package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
- package/dist/melonjs.mjs/application/application.js +141 -10
- package/dist/melonjs.mjs/application/header.js +34 -0
- package/dist/melonjs.mjs/application/resize.js +4 -2
- package/dist/melonjs.mjs/application/settings.js +28 -0
- package/dist/melonjs.mjs/audio/audio.js +2 -2
- package/dist/melonjs.mjs/camera/camera2d.js +3 -3
- package/dist/melonjs.mjs/const.js +32 -0
- package/dist/melonjs.mjs/entity/entity.js +2 -2
- package/dist/melonjs.mjs/game.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +2 -2
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +2 -2
- package/dist/melonjs.mjs/geometries/point.js +2 -2
- package/dist/melonjs.mjs/geometries/poly.js +2 -2
- package/dist/melonjs.mjs/geometries/rectangle.js +2 -2
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/index.js +44 -33
- package/dist/melonjs.mjs/input/gamepad.js +2 -2
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +2 -2
- package/dist/melonjs.mjs/input/pointer.js +3 -3
- package/dist/melonjs.mjs/input/pointerevent.js +3 -3
- package/dist/melonjs.mjs/lang/console.js +44 -0
- package/dist/melonjs.mjs/lang/deprecated.js +4 -40
- package/dist/melonjs.mjs/level/level.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +68 -58
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +18 -84
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +2 -16
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
- package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
- package/dist/melonjs.mjs/loader/loader.js +5 -3
- package/dist/melonjs.mjs/loader/loadingscreen.js +3 -3
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +2 -2
- package/dist/melonjs.mjs/math/matrix3.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector2.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector3.js +2 -2
- package/dist/melonjs.mjs/math/vector2.js +2 -2
- package/dist/melonjs.mjs/math/vector3.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
- package/dist/melonjs.mjs/particles/emitter.js +2 -2
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +2 -2
- package/dist/melonjs.mjs/physics/body.js +2 -2
- package/dist/melonjs.mjs/physics/bounds.js +2 -2
- package/dist/melonjs.mjs/physics/collision.js +4 -4
- package/dist/melonjs.mjs/physics/detector.js +175 -147
- package/dist/melonjs.mjs/physics/quadtree.js +2 -2
- package/dist/melonjs.mjs/physics/response.js +2 -2
- package/dist/melonjs.mjs/physics/sat.js +2 -2
- package/dist/melonjs.mjs/physics/world.js +11 -31
- package/dist/melonjs.mjs/plugin/plugin.js +4 -4
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
- package/dist/melonjs.mjs/renderable/container.js +4 -88
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +3 -3
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +2 -2
- package/dist/melonjs.mjs/renderable/sprite.js +2 -2
- package/dist/melonjs.mjs/renderable/trigger.js +3 -3
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
- package/dist/melonjs.mjs/state/stage.js +3 -3
- package/dist/melonjs.mjs/state/state.js +3 -3
- package/dist/melonjs.mjs/system/device.js +3 -23
- package/dist/melonjs.mjs/system/dom.js +2 -2
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +2 -2
- package/dist/melonjs.mjs/system/pooling.js +2 -2
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptext.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/text/glyph.js +2 -2
- package/dist/melonjs.mjs/text/text.js +2 -2
- package/dist/melonjs.mjs/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/text/textstyle.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +2 -2
- package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
- package/dist/melonjs.mjs/tweens/tween.js +3 -3
- package/dist/melonjs.mjs/utils/agent.js +2 -2
- package/dist/melonjs.mjs/utils/array.js +2 -2
- package/dist/melonjs.mjs/utils/file.js +2 -2
- package/dist/melonjs.mjs/utils/function.js +2 -2
- package/dist/melonjs.mjs/utils/string.js +2 -2
- package/dist/melonjs.mjs/utils/utils.js +2 -2
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -2
- package/dist/melonjs.mjs/video/renderer.js +9 -2
- package/dist/melonjs.mjs/video/texture/atlas.js +2 -2
- package/dist/melonjs.mjs/video/texture/cache.js +2 -2
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +4 -3
- package/dist/melonjs.mjs/video/utils/autodetect.js +27 -0
- package/dist/melonjs.mjs/video/utils/resize.js +1 -1
- package/dist/melonjs.mjs/video/video.js +29 -158
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/glshader.js +3 -4
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +21 -3
- package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +5 -2
- package/dist/melonjs.module.js +20845 -20968
- package/dist/types/application/application.d.ts +148 -0
- package/dist/types/application/header.d.ts +5 -0
- package/dist/types/application/resize.d.ts +6 -0
- package/dist/types/application/settings.d.ts +18 -0
- package/dist/types/audio/audio.d.ts +267 -0
- package/dist/types/camera/camera2d.d.ts +289 -0
- package/dist/types/const.d.ts +21 -0
- package/dist/types/entity/entity.d.ts +98 -0
- package/{src/game.js → dist/types/game.d.ts} +3 -14
- package/dist/types/geometries/ellipse.d.ts +154 -0
- package/dist/types/geometries/line.d.ts +11 -0
- package/dist/types/geometries/path2d.d.ts +121 -0
- package/dist/types/geometries/point.d.ts +53 -0
- package/dist/types/geometries/poly.d.ts +222 -0
- package/dist/types/geometries/rectangle.d.ts +176 -0
- package/dist/types/geometries/roundrect.d.ts +52 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/input/gamepad.d.ts +95 -0
- package/dist/types/input/input.d.ts +15 -0
- package/dist/types/input/keyboard.d.ts +205 -0
- package/dist/types/input/pointer.d.ts +270 -0
- package/dist/types/input/pointerevent.d.ts +181 -0
- package/dist/types/lang/console.d.ts +7 -0
- package/dist/types/lang/deprecated.d.ts +45 -0
- package/dist/types/level/level.d.ts +134 -0
- package/dist/types/level/tiled/TMXGroup.d.ts +61 -0
- package/dist/types/level/tiled/TMXLayer.d.ts +158 -0
- package/dist/types/level/tiled/TMXObject.d.ts +133 -0
- package/dist/types/level/tiled/TMXTile.d.ts +64 -0
- package/dist/types/level/tiled/TMXTileMap.d.ts +142 -0
- package/dist/types/level/tiled/TMXTileset.d.ts +80 -0
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +26 -0
- package/dist/types/level/tiled/TMXUtils.d.ts +47 -0
- package/dist/types/level/tiled/constants.d.ts +5 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +83 -0
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +51 -0
- package/dist/types/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +43 -0
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +63 -0
- package/dist/types/level/tiled/renderer/TMXStaggeredRenderer.d.ts +8 -0
- package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
- package/dist/types/loader/loader.d.ts +181 -0
- package/dist/types/loader/loadingscreen.d.ts +18 -0
- package/dist/types/math/color.d.ts +170 -0
- package/dist/types/math/math.d.ts +165 -0
- package/dist/types/math/matrix2.d.ts +209 -0
- package/dist/types/math/matrix3.d.ts +236 -0
- package/dist/types/math/observable_vector2.d.ts +278 -0
- package/dist/types/math/observable_vector3.d.ts +277 -0
- package/dist/types/math/vector2.d.ts +327 -0
- package/dist/types/math/vector3.d.ts +332 -0
- package/dist/types/particles/emitter.d.ts +188 -0
- package/dist/types/particles/particle.d.ts +32 -0
- package/dist/types/particles/settings.d.ts +32 -0
- package/dist/types/physics/body.d.ts +330 -0
- package/dist/types/physics/bounds.d.ts +250 -0
- package/dist/types/physics/collision.d.ts +44 -0
- package/dist/types/physics/detector.d.ts +64 -0
- package/dist/types/physics/quadtree.d.ts +79 -0
- package/dist/types/physics/response.d.ts +37 -0
- package/dist/types/physics/sat.d.ts +48 -0
- package/dist/types/physics/world.d.ts +83 -0
- package/dist/types/plugin/plugin.d.ts +10 -0
- package/dist/types/polyfill/console.d.ts +0 -0
- package/dist/types/polyfill/index.d.ts +1 -0
- package/dist/types/polyfill/performance.d.ts +0 -0
- package/dist/types/polyfill/requestAnimationFrame.d.ts +1 -0
- package/dist/types/polyfill/roundrect.d.ts +0 -0
- package/dist/types/renderable/collectable.d.ts +19 -0
- package/dist/types/renderable/colorlayer.d.ts +28 -0
- package/dist/types/renderable/container.d.ts +302 -0
- package/dist/types/renderable/dragndrop.d.ts +118 -0
- package/dist/types/renderable/imagelayer.d.ts +106 -0
- package/dist/types/renderable/light2d.d.ts +58 -0
- package/dist/types/renderable/nineslicesprite.d.ts +59 -0
- package/dist/types/renderable/renderable.d.ts +402 -0
- package/dist/types/renderable/sprite.d.ts +268 -0
- package/dist/types/renderable/trigger.d.ts +61 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +95 -0
- package/dist/types/renderable/ui/uispriteelement.d.ts +127 -0
- package/dist/types/renderable/ui/uitextbutton.d.ts +54 -0
- package/dist/types/state/stage.d.ts +116 -0
- package/dist/types/state/state.d.ts +170 -0
- package/dist/types/system/device.d.ts +579 -0
- package/dist/types/system/dom.d.ts +1 -0
- package/dist/types/system/event.d.ts +473 -0
- package/dist/types/system/platform.d.ts +31 -0
- package/dist/types/system/pooling.d.ts +101 -0
- package/dist/types/system/save.d.ts +25 -0
- package/dist/types/system/timer.d.ts +126 -0
- package/dist/types/text/bitmaptext.d.ts +151 -0
- package/dist/types/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/text/glyph.d.ts +28 -0
- package/dist/types/text/text.d.ts +173 -0
- package/dist/types/text/textmetrics.d.ts +47 -0
- package/dist/types/text/textstyle.d.ts +5 -0
- package/dist/types/tweens/easing.d.ts +46 -0
- package/dist/types/tweens/interpolation.d.ts +18 -0
- package/dist/types/tweens/tween.d.ts +195 -0
- package/dist/types/utils/agent.d.ts +21 -0
- package/dist/types/utils/array.d.ts +39 -0
- package/dist/types/utils/file.d.ts +18 -0
- package/dist/types/utils/function.d.ts +32 -0
- package/dist/types/utils/string.d.ts +50 -0
- package/dist/types/utils/utils.d.ts +17 -0
- package/dist/types/video/canvas/canvas_renderer.d.ts +380 -0
- package/dist/types/video/renderer.d.ts +222 -0
- package/dist/types/video/texture/atlas.d.ts +201 -0
- package/dist/types/video/texture/cache.d.ts +45 -0
- package/dist/types/video/texture/canvas_texture.d.ts +78 -0
- package/dist/types/video/utils/autodetect.d.ts +7 -0
- package/dist/types/video/utils/resize.d.ts +4 -0
- package/dist/types/video/video.d.ts +93 -0
- package/dist/types/video/webgl/buffer/vertex.d.ts +56 -0
- package/dist/types/video/webgl/glshader.d.ts +93 -0
- package/dist/types/video/webgl/utils/attributes.d.ts +4 -0
- package/dist/types/video/webgl/utils/precision.d.ts +13 -0
- package/dist/types/video/webgl/utils/program.d.ts +5 -0
- package/dist/types/video/webgl/utils/string.d.ts +5 -0
- package/dist/types/video/webgl/utils/uniforms.d.ts +4 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +174 -0
- package/dist/types/video/webgl/webgl_renderer.d.ts +429 -0
- package/package.json +8 -8
- package/src/application/application.js +138 -7
- package/src/application/header.js +25 -0
- package/src/{video/utils → application}/resize.js +11 -6
- package/src/application/settings.js +19 -0
- package/src/camera/camera2d.js +1 -1
- package/src/const.js +23 -0
- package/src/index.js +36 -23
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +1 -1
- package/src/lang/console.js +36 -0
- package/src/lang/deprecated.js +2 -37
- package/src/level/level.js +1 -1
- package/src/level/tiled/TMXGroup.js +0 -21
- package/src/level/tiled/TMXLayer.js +66 -56
- package/src/level/tiled/TMXObject.js +0 -62
- package/src/level/tiled/TMXTile.js +8 -24
- package/src/level/tiled/TMXTileMap.js +17 -83
- package/src/level/tiled/TMXTileset.js +0 -14
- package/src/level/tiled/TMXTilesetGroup.js +1 -9
- package/src/level/tiled/TMXUtils.js +38 -15
- package/src/level/tiled/constants.js +8 -0
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
- package/src/level/tiled/renderer/TMXRenderer.js +0 -12
- package/src/level/tiled/renderer/autodetect.js +29 -0
- package/src/loader/loader.js +3 -1
- package/src/loader/loadingscreen.js +1 -1
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +172 -145
- package/src/physics/world.js +10 -30
- package/src/renderable/container.js +7 -91
- package/src/renderable/imagelayer.js +1 -1
- package/src/renderable/trigger.js +1 -1
- package/src/renderable/ui/uibaseelement.js +1 -1
- package/src/state/stage.js +1 -1
- package/src/state/state.js +1 -1
- package/src/system/device.js +0 -20
- package/src/tweens/tween.js +1 -1
- package/src/video/canvas/canvas_renderer.js +3 -0
- package/src/video/renderer.js +7 -0
- package/src/video/texture/canvas_texture.js +2 -1
- package/src/video/utils/autodetect.js +18 -0
- package/src/video/video.js +26 -155
- package/src/video/webgl/glshader.js +3 -4
- package/src/video/webgl/utils/precision.js +18 -0
- package/src/video/webgl/webgl_renderer.js +3 -0
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @classdesc
|
|
3
|
+
* A base class for renderable objects.
|
|
4
|
+
* @augments Rect
|
|
5
|
+
*/
|
|
6
|
+
export default class Renderable extends Rect {
|
|
7
|
+
/**
|
|
8
|
+
* to identify the object as a renderable object
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
isRenderable: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* If true then physic collision and input events will not impact this renderable
|
|
14
|
+
* @type {boolean}
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
isKinematic: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* the renderable physic body
|
|
20
|
+
* @type {Body}
|
|
21
|
+
* @example
|
|
22
|
+
* // define a new Player Class
|
|
23
|
+
* class PlayerEntity extends me.Sprite {
|
|
24
|
+
* // constructor
|
|
25
|
+
* constructor(x, y, settings) {
|
|
26
|
+
* // call the parent constructor
|
|
27
|
+
* super(x, y , settings);
|
|
28
|
+
*
|
|
29
|
+
* // define a basic walking animation
|
|
30
|
+
* this.addAnimation("walk", [...]);
|
|
31
|
+
* // define a standing animation (using the first frame)
|
|
32
|
+
* this.addAnimation("stand", [...]);
|
|
33
|
+
* // set the standing animation as default
|
|
34
|
+
* this.setCurrentAnimation("stand");
|
|
35
|
+
*
|
|
36
|
+
* // add a physic body
|
|
37
|
+
* this.body = new me.Body(this);
|
|
38
|
+
* // add a default collision shape
|
|
39
|
+
* this.body.addShape(new me.Rect(0, 0, this.width, this.height));
|
|
40
|
+
* // configure max speed, friction, and initial force to be applied
|
|
41
|
+
* this.body.setMaxVelocity(3, 15);
|
|
42
|
+
* this.body.setFriction(0.4, 0);
|
|
43
|
+
* this.body.force.set(3, 0);
|
|
44
|
+
*
|
|
45
|
+
* // set the display to follow our position on both axis
|
|
46
|
+
* me.game.viewport.follow(this.pos, me.game.viewport.AXIS.BOTH);
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* ...
|
|
50
|
+
*
|
|
51
|
+
* }
|
|
52
|
+
*/
|
|
53
|
+
body: Body;
|
|
54
|
+
/**
|
|
55
|
+
* the renderable default transformation matrix
|
|
56
|
+
* @type {Matrix2d}
|
|
57
|
+
*/
|
|
58
|
+
currentTransform: Matrix2d;
|
|
59
|
+
/**
|
|
60
|
+
* (G)ame (U)nique (Id)entifier" <br>
|
|
61
|
+
* a GUID will be allocated for any renderable object added <br>
|
|
62
|
+
* to an object container (including the `me.game.world` container)
|
|
63
|
+
* @type {string}
|
|
64
|
+
*/
|
|
65
|
+
GUID: string;
|
|
66
|
+
/**
|
|
67
|
+
* an event handler that is called when the renderable leave or enter a camera viewport
|
|
68
|
+
* @type {Function}
|
|
69
|
+
* @default undefined
|
|
70
|
+
* @example
|
|
71
|
+
* this.onVisibilityChange = function(inViewport) {
|
|
72
|
+
* if (inViewport === true) {
|
|
73
|
+
* console.log("object has entered the in a camera viewport!");
|
|
74
|
+
* }
|
|
75
|
+
* };
|
|
76
|
+
*/
|
|
77
|
+
onVisibilityChange: Function;
|
|
78
|
+
/**
|
|
79
|
+
* Whether the renderable object will always update, even when outside of the viewport<br>
|
|
80
|
+
* @type {boolean}
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
83
|
+
alwaysUpdate: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Whether to update this object when the game is paused.
|
|
86
|
+
* @type {boolean}
|
|
87
|
+
* @default false
|
|
88
|
+
*/
|
|
89
|
+
updateWhenPaused: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* make the renderable object persistent over level changes<br>
|
|
92
|
+
* @type {boolean}
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
isPersistent: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* If true, this renderable will be rendered using screen coordinates,
|
|
98
|
+
* as opposed to world coordinates. Use this, for example, to define UI elements.
|
|
99
|
+
* @type {boolean}
|
|
100
|
+
* @default false
|
|
101
|
+
*/
|
|
102
|
+
floating: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
105
|
+
* 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>
|
|
106
|
+
* <img src="images/anchor_point.png"/><br>
|
|
107
|
+
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
108
|
+
* <br>
|
|
109
|
+
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
110
|
+
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
111
|
+
* @type {ObservableVector2d}
|
|
112
|
+
* @default <0.5,0.5>
|
|
113
|
+
*/
|
|
114
|
+
anchorPoint: ObservableVector2d;
|
|
115
|
+
/**
|
|
116
|
+
* When enabled, an object container will automatically apply
|
|
117
|
+
* any defined transformation before calling the child draw method.
|
|
118
|
+
* @type {boolean}
|
|
119
|
+
* @default true
|
|
120
|
+
* @example
|
|
121
|
+
* // enable "automatic" transformation when the object is activated
|
|
122
|
+
* onActivateEvent: function () {
|
|
123
|
+
* // reset the transformation matrix
|
|
124
|
+
* this.currentTransform.identity();
|
|
125
|
+
* // ensure the anchor point is the renderable center
|
|
126
|
+
* this.anchorPoint.set(0.5, 0.5);
|
|
127
|
+
* // enable auto transform
|
|
128
|
+
* this.autoTransform = true;
|
|
129
|
+
* ....
|
|
130
|
+
* }
|
|
131
|
+
*/
|
|
132
|
+
autoTransform: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Define the renderable opacity<br>
|
|
135
|
+
* Set to zero if you do not wish an object to be drawn
|
|
136
|
+
* @see Renderable#setOpacity
|
|
137
|
+
* @see Renderable#getOpacity
|
|
138
|
+
* @type {number}
|
|
139
|
+
* @default 1.0
|
|
140
|
+
*/
|
|
141
|
+
alpha: number;
|
|
142
|
+
/**
|
|
143
|
+
* a reference to the parent object that contains this renderable
|
|
144
|
+
* @type {Container|Entity}
|
|
145
|
+
* @default undefined
|
|
146
|
+
*/
|
|
147
|
+
ancestor: Container | Entity;
|
|
148
|
+
/**
|
|
149
|
+
* A mask limits rendering elements to the shape and position of the given mask object.
|
|
150
|
+
* So, if the renderable is larger than the mask, only the intersecting part of the renderable will be visible.
|
|
151
|
+
* @type {Rect|RoundRect|Polygon|Line|Ellipse}
|
|
152
|
+
* @default undefined
|
|
153
|
+
* @example
|
|
154
|
+
* // apply a mask in the shape of a Star
|
|
155
|
+
* myNPCSprite.mask = new me.Polygon(myNPCSprite.width / 2, 0, [
|
|
156
|
+
* // draw a star
|
|
157
|
+
* {x: 0, y: 0},
|
|
158
|
+
* {x: 14, y: 30},
|
|
159
|
+
* {x: 47, y: 35},
|
|
160
|
+
* {x: 23, y: 57},
|
|
161
|
+
* {x: 44, y: 90},
|
|
162
|
+
* {x: 0, y: 62},
|
|
163
|
+
* {x: -44, y: 90},
|
|
164
|
+
* {x: -23, y: 57},
|
|
165
|
+
* {x: -47, y: 35},
|
|
166
|
+
* {x: -14, y: 30}
|
|
167
|
+
* ]);
|
|
168
|
+
*/
|
|
169
|
+
mask: Rect | RoundRect | Polygon | Line | Ellipse;
|
|
170
|
+
/**
|
|
171
|
+
* the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode)
|
|
172
|
+
* @type {string}
|
|
173
|
+
* @default "normal"
|
|
174
|
+
* @see CanvasRenderer#setBlendMode
|
|
175
|
+
* @see WebGLRenderer#setBlendMode
|
|
176
|
+
*/
|
|
177
|
+
blendMode: string;
|
|
178
|
+
/**
|
|
179
|
+
* The name of the renderable
|
|
180
|
+
* @type {string}
|
|
181
|
+
* @default ""
|
|
182
|
+
*/
|
|
183
|
+
name: string;
|
|
184
|
+
/**
|
|
185
|
+
* Position of the Renderable relative to its parent container
|
|
186
|
+
* @public
|
|
187
|
+
* @type {ObservableVector3d}
|
|
188
|
+
*/
|
|
189
|
+
public pos: ObservableVector3d;
|
|
190
|
+
/**
|
|
191
|
+
* when true the renderable will be redrawn during the next update cycle
|
|
192
|
+
* @type {boolean}
|
|
193
|
+
* @default false
|
|
194
|
+
*/
|
|
195
|
+
isDirty: boolean;
|
|
196
|
+
_flip: {
|
|
197
|
+
x: boolean;
|
|
198
|
+
y: boolean;
|
|
199
|
+
};
|
|
200
|
+
_inViewport: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Whether the renderable object is floating, or contained in a floating container
|
|
203
|
+
* @see Renderable#floating
|
|
204
|
+
* @type {boolean}
|
|
205
|
+
*/
|
|
206
|
+
get isFloating(): boolean;
|
|
207
|
+
set tint(arg: Color);
|
|
208
|
+
/**
|
|
209
|
+
* define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect.
|
|
210
|
+
* @type {Color}
|
|
211
|
+
* @default (255, 255, 255)
|
|
212
|
+
* @example
|
|
213
|
+
* // add a red tint to this renderable
|
|
214
|
+
* this.tint.setColor(255, 128, 128);
|
|
215
|
+
* // remove the tint
|
|
216
|
+
* this.tint.setColor(255, 255, 255);
|
|
217
|
+
*/
|
|
218
|
+
get tint(): Color;
|
|
219
|
+
_tint: object | undefined;
|
|
220
|
+
set inViewport(arg: boolean);
|
|
221
|
+
/**
|
|
222
|
+
* Whether the renderable object is visible and within the viewport
|
|
223
|
+
* @type {boolean}
|
|
224
|
+
* @default false
|
|
225
|
+
*/
|
|
226
|
+
get inViewport(): boolean;
|
|
227
|
+
/**
|
|
228
|
+
* returns true if this renderable is flipped on the horizontal axis
|
|
229
|
+
* @public
|
|
230
|
+
* @see Renderable#flipX
|
|
231
|
+
* @type {boolean}
|
|
232
|
+
*/
|
|
233
|
+
public get isFlippedX(): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* returns true if this renderable is flipped on the vertical axis
|
|
236
|
+
* @public
|
|
237
|
+
* @see Renderable#flipY
|
|
238
|
+
* @type {boolean}
|
|
239
|
+
*/
|
|
240
|
+
public get isFlippedY(): boolean;
|
|
241
|
+
/**
|
|
242
|
+
* get the renderable alpha channel value<br>
|
|
243
|
+
* @returns {number} current opacity value between 0 and 1
|
|
244
|
+
*/
|
|
245
|
+
getOpacity(): number;
|
|
246
|
+
/**
|
|
247
|
+
* set the renderable alpha channel value<br>
|
|
248
|
+
* @param {number} alpha - opacity value between 0.0 and 1.0
|
|
249
|
+
*/
|
|
250
|
+
setOpacity(alpha: number): void;
|
|
251
|
+
/**
|
|
252
|
+
* flip the renderable on the horizontal axis (around the center of the renderable)
|
|
253
|
+
* @see Matrix2d#scaleX
|
|
254
|
+
* @param {boolean} [flip=true] - `true` to flip this renderable.
|
|
255
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
256
|
+
*/
|
|
257
|
+
flipX(flip?: boolean | undefined): Renderable;
|
|
258
|
+
/**
|
|
259
|
+
* flip the renderable on the vertical axis (around the center of the renderable)
|
|
260
|
+
* @see Matrix2d#scaleY
|
|
261
|
+
* @param {boolean} [flip=true] - `true` to flip this renderable.
|
|
262
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
263
|
+
*/
|
|
264
|
+
flipY(flip?: boolean | undefined): Renderable;
|
|
265
|
+
/**
|
|
266
|
+
* multiply the renderable currentTransform with the given matrix
|
|
267
|
+
* @see Renderable#currentTransform
|
|
268
|
+
* @param {Matrix2d} m - the transformation matrix
|
|
269
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
270
|
+
*/
|
|
271
|
+
transform(m: Matrix2d): Renderable;
|
|
272
|
+
/**
|
|
273
|
+
* return the angle to the specified target
|
|
274
|
+
* @param {Renderable|Vector2d|Vector3d} target
|
|
275
|
+
* @returns {number} angle in radians
|
|
276
|
+
*/
|
|
277
|
+
angleTo(target: Renderable | Vector2d | Vector3d): number;
|
|
278
|
+
/**
|
|
279
|
+
* return the distance to the specified target
|
|
280
|
+
* @param {Renderable|Vector2d|Vector3d} target
|
|
281
|
+
* @returns {number} distance
|
|
282
|
+
*/
|
|
283
|
+
distanceTo(target: Renderable | Vector2d | Vector3d): number;
|
|
284
|
+
/**
|
|
285
|
+
* Rotate this renderable towards the given target.
|
|
286
|
+
* @param {Renderable|Vector2d|Vector3d} target - the renderable or position to look at
|
|
287
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
288
|
+
*/
|
|
289
|
+
lookAt(target: Renderable | Vector2d | Vector3d): Renderable;
|
|
290
|
+
/**
|
|
291
|
+
* Rotate this renderable by the specified angle (in radians).
|
|
292
|
+
* @param {number} angle - The angle to rotate (in radians)
|
|
293
|
+
* @param {Vector2d|ObservableVector2d} [v] - an optional point to rotate around
|
|
294
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
295
|
+
*/
|
|
296
|
+
rotate(angle: number, v?: Vector2d | ObservableVector2d): Renderable;
|
|
297
|
+
/**
|
|
298
|
+
* scale the renderable around his anchor point. Scaling actually applies changes
|
|
299
|
+
* to the currentTransform member wich is used by the renderer to scale the object
|
|
300
|
+
* when rendering. It does not scale the object itself. For example if the renderable
|
|
301
|
+
* is an image, the image.width and image.height properties are unaltered but the currentTransform
|
|
302
|
+
* member will be changed.
|
|
303
|
+
* @param {number} x - a number representing the abscissa of the scaling vector.
|
|
304
|
+
* @param {number} [y=x] - a number representing the ordinate of the scaling vector.
|
|
305
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
306
|
+
*/
|
|
307
|
+
scale(x: number, y?: number | undefined): Renderable;
|
|
308
|
+
/**
|
|
309
|
+
* scale the renderable around his anchor point
|
|
310
|
+
* @param {Vector2d} v - scaling vector
|
|
311
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
312
|
+
*/
|
|
313
|
+
scaleV(v: Vector2d): Renderable;
|
|
314
|
+
/**
|
|
315
|
+
* update function (automatically called by melonJS).
|
|
316
|
+
* @param {number} dt - time since the last update in milliseconds.
|
|
317
|
+
* @returns {boolean} true if the renderable is dirty
|
|
318
|
+
*/
|
|
319
|
+
update(dt: number): boolean;
|
|
320
|
+
/**
|
|
321
|
+
* update the renderable's bounding rect (private)
|
|
322
|
+
* @ignore
|
|
323
|
+
*/
|
|
324
|
+
updateBoundsPos(newX: any, newY: any): void;
|
|
325
|
+
/**
|
|
326
|
+
* return the renderable absolute position in the game world
|
|
327
|
+
* @returns {Vector2d}
|
|
328
|
+
*/
|
|
329
|
+
getAbsolutePosition(): Vector2d;
|
|
330
|
+
_absPos: object | undefined;
|
|
331
|
+
/**
|
|
332
|
+
* called when the anchor point value is changed
|
|
333
|
+
* @private
|
|
334
|
+
* @param {number} x - the new X value to be set for the anchor
|
|
335
|
+
* @param {number} y - the new Y value to be set for the anchor
|
|
336
|
+
*/
|
|
337
|
+
private onAnchorUpdate;
|
|
338
|
+
/**
|
|
339
|
+
* Prepare the rendering context before drawing (automatically called by melonJS).
|
|
340
|
+
* This will apply any defined transforms, anchor point, tint or blend mode and translate the context accordingly to this renderable position.
|
|
341
|
+
* @see Renderable#draw
|
|
342
|
+
* @see Renderable#postDraw
|
|
343
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
|
|
344
|
+
*/
|
|
345
|
+
preDraw(renderer: CanvasRenderer | WebGLRenderer): void;
|
|
346
|
+
/**
|
|
347
|
+
* Draw this renderable (automatically called by melonJS).
|
|
348
|
+
* All draw operations for renderable are made respectively
|
|
349
|
+
* to the position or transforms set or applied by the preDraw method.
|
|
350
|
+
* The main draw loop will first call preDraw() to prepare the context for drawing the renderable,
|
|
351
|
+
* then draw() to draw the renderable, and finally postDraw() to clear the context.
|
|
352
|
+
* If you override this method, be mindful about the drawing logic; for example if you draw a shape
|
|
353
|
+
* from the draw method, you should make sure that your draw it at the 0, 0 coordinates.
|
|
354
|
+
* @see Renderable#preDraw
|
|
355
|
+
* @see Renderable#postDraw
|
|
356
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
|
|
357
|
+
* @param {Camera2d} [viewport] - the viewport to (re)draw
|
|
358
|
+
*/
|
|
359
|
+
draw(renderer: CanvasRenderer | WebGLRenderer, viewport?: any): void;
|
|
360
|
+
/**
|
|
361
|
+
* restore the rendering context after drawing (automatically called by melonJS).
|
|
362
|
+
* @see Renderable#preDraw
|
|
363
|
+
* @see Renderable#draw
|
|
364
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
|
|
365
|
+
*/
|
|
366
|
+
postDraw(renderer: CanvasRenderer | WebGLRenderer): void;
|
|
367
|
+
/**
|
|
368
|
+
* onCollision callback, triggered in case of collision,
|
|
369
|
+
* when this renderable body is colliding with another one
|
|
370
|
+
* @param {ResponseObject} response - the collision response object
|
|
371
|
+
* @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
|
|
372
|
+
* @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
|
|
373
|
+
* @example
|
|
374
|
+
* // colision handler
|
|
375
|
+
* onCollision(response) {
|
|
376
|
+
* if (response.b.body.collisionType === me.collision.types.ENEMY_OBJECT) {
|
|
377
|
+
* // makes the other object solid, by substracting the overlap vector to the current position
|
|
378
|
+
* this.pos.sub(response.overlapV);
|
|
379
|
+
* this.hurt();
|
|
380
|
+
* // not solid
|
|
381
|
+
* return false;
|
|
382
|
+
* }
|
|
383
|
+
* // Make the object solid
|
|
384
|
+
* return true;
|
|
385
|
+
* },
|
|
386
|
+
*/
|
|
387
|
+
onCollision(response: ResponseObject, other: Renderable): boolean;
|
|
388
|
+
/**
|
|
389
|
+
* Destroy function<br>
|
|
390
|
+
* @ignore
|
|
391
|
+
*/
|
|
392
|
+
destroy(...args: any[]): void;
|
|
393
|
+
/**
|
|
394
|
+
* OnDestroy Notification function<br>
|
|
395
|
+
* Called by engine before deleting the object
|
|
396
|
+
*/
|
|
397
|
+
onDestroyEvent(): void;
|
|
398
|
+
}
|
|
399
|
+
import Rect from "./../geometries/rectangle.js";
|
|
400
|
+
import ObservableVector2d from "./../math/observable_vector2.js";
|
|
401
|
+
import ObservableVector3d from "./../math/observable_vector3.js";
|
|
402
|
+
import Color from "./../math/color.js";
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @classdesc
|
|
3
|
+
* An object to display a fixed or animated sprite on screen.
|
|
4
|
+
* @augments Renderable
|
|
5
|
+
*/
|
|
6
|
+
export default class Sprite extends Renderable {
|
|
7
|
+
/**
|
|
8
|
+
* @param {number} x - the x coordinates of the sprite object
|
|
9
|
+
* @param {number} y - the y coordinates of the sprite object
|
|
10
|
+
* @param {object} settings - Configuration parameters for the Sprite object
|
|
11
|
+
* @param {HTMLImageElement|HTMLCanvasElement|TextureAtlas|string} settings.image - reference to spritesheet image, a texture atlas or to a texture atlas
|
|
12
|
+
* @param {string} [settings.name=""] - name of this object
|
|
13
|
+
* @param {string} [settings.region] - region name of a specific region to use when using a texture atlas, see {@link TextureAtlas}
|
|
14
|
+
* @param {number} [settings.framewidth] - Width of a single frame within the spritesheet
|
|
15
|
+
* @param {number} [settings.frameheight] - Height of a single frame within the spritesheet
|
|
16
|
+
* @param {string|Color} [settings.tint] - a tint to be applied to this sprite
|
|
17
|
+
* @param {number} [settings.flipX] - flip the sprite on the horizontal axis
|
|
18
|
+
* @param {number} [settings.flipY] - flip the sprite on the vertical axis
|
|
19
|
+
* @param {Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] - Anchor point to draw the frame at (defaults to the center of the frame).
|
|
20
|
+
* @example
|
|
21
|
+
* // create a single sprite from a standalone image, with anchor in the center
|
|
22
|
+
* var sprite = new me.Sprite(0, 0, {
|
|
23
|
+
* image : "PlayerTexture",
|
|
24
|
+
* framewidth : 64,
|
|
25
|
+
* frameheight : 64,
|
|
26
|
+
* anchorPoint : new me.Vector2d(0.5, 0.5)
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // create a single sprite from a packed texture
|
|
30
|
+
* game.texture = new me.TextureAtlas(
|
|
31
|
+
* me.loader.getJSON("texture"),
|
|
32
|
+
* me.loader.getImage("texture")
|
|
33
|
+
* );
|
|
34
|
+
* var sprite = new me.Sprite(0, 0, {
|
|
35
|
+
* image : game.texture,
|
|
36
|
+
* region : "npc2.png",
|
|
37
|
+
* });
|
|
38
|
+
*/
|
|
39
|
+
constructor(x: number, y: number, settings: {
|
|
40
|
+
image: HTMLImageElement | HTMLCanvasElement | TextureAtlas | string;
|
|
41
|
+
name?: string | undefined;
|
|
42
|
+
region?: string | undefined;
|
|
43
|
+
framewidth?: number | undefined;
|
|
44
|
+
frameheight?: number | undefined;
|
|
45
|
+
tint?: string | Color | undefined;
|
|
46
|
+
flipX?: number | undefined;
|
|
47
|
+
flipY?: number | undefined;
|
|
48
|
+
anchorPoint?: any;
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* pause and resume animation
|
|
52
|
+
* @public
|
|
53
|
+
* @type {boolean}
|
|
54
|
+
* @default false
|
|
55
|
+
* @name Sprite#animationpause
|
|
56
|
+
*/
|
|
57
|
+
public animationpause: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* animation cycling speed (delay between frame in ms)
|
|
60
|
+
* @public
|
|
61
|
+
* @type {number}
|
|
62
|
+
* @default 100
|
|
63
|
+
* @name Sprite#animationspeed
|
|
64
|
+
*/
|
|
65
|
+
public animationspeed: number;
|
|
66
|
+
/**
|
|
67
|
+
* global offset for the position to draw from on the source image.
|
|
68
|
+
* @public
|
|
69
|
+
* @type {Vector2d}
|
|
70
|
+
* @default <0.0,0.0>
|
|
71
|
+
* @name offset
|
|
72
|
+
* @memberof Sprite#
|
|
73
|
+
*/
|
|
74
|
+
public offset: Vector2d;
|
|
75
|
+
/**
|
|
76
|
+
* The source texture object this sprite object is using
|
|
77
|
+
* @public
|
|
78
|
+
* @type {TextureAtlas}
|
|
79
|
+
* @name source
|
|
80
|
+
* @memberof Sprite#
|
|
81
|
+
*/
|
|
82
|
+
public source: TextureAtlas;
|
|
83
|
+
anim: {};
|
|
84
|
+
resetAnim: Function | (() => Sprite) | undefined;
|
|
85
|
+
current: {
|
|
86
|
+
name: string;
|
|
87
|
+
length: number;
|
|
88
|
+
offset: object;
|
|
89
|
+
width: number;
|
|
90
|
+
height: number;
|
|
91
|
+
angle: number;
|
|
92
|
+
idx: number;
|
|
93
|
+
};
|
|
94
|
+
dt: number;
|
|
95
|
+
_flicker: {
|
|
96
|
+
isFlickering: boolean;
|
|
97
|
+
duration: number;
|
|
98
|
+
callback: null;
|
|
99
|
+
state: boolean;
|
|
100
|
+
};
|
|
101
|
+
image: HTMLCanvasElement | HTMLImageElement;
|
|
102
|
+
textureAtlas: any;
|
|
103
|
+
atlasIndices: any;
|
|
104
|
+
/**
|
|
105
|
+
* return the flickering state of the object
|
|
106
|
+
* @name isFlickering
|
|
107
|
+
* @memberof Sprite
|
|
108
|
+
* @returns {boolean}
|
|
109
|
+
*/
|
|
110
|
+
isFlickering(): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* make the object flicker
|
|
113
|
+
* @name flicker
|
|
114
|
+
* @memberof Sprite
|
|
115
|
+
* @param {number} duration - expressed in milliseconds
|
|
116
|
+
* @param {Function} callback - Function to call when flickering ends
|
|
117
|
+
* @returns {Sprite} Reference to this object for method chaining
|
|
118
|
+
* @example
|
|
119
|
+
* // make the object flicker for 1 second
|
|
120
|
+
* // and then remove it
|
|
121
|
+
* this.flicker(1000, function () {
|
|
122
|
+
* me.game.world.removeChild(this);
|
|
123
|
+
* });
|
|
124
|
+
*/
|
|
125
|
+
flicker(duration: number, callback: Function): Sprite;
|
|
126
|
+
/**
|
|
127
|
+
* add an animation <br>
|
|
128
|
+
* For fixed-sized cell sprite sheet, the index list must follow the
|
|
129
|
+
* logic as per the following example :<br>
|
|
130
|
+
* <img src="images/spritesheet_grid.png"/>
|
|
131
|
+
* @name addAnimation
|
|
132
|
+
* @memberof Sprite
|
|
133
|
+
* @param {string} name - animation id
|
|
134
|
+
* @param {number[]|string[]|object[]} index - list of sprite index or name
|
|
135
|
+
* defining the animation. Can also use objects to specify delay for each frame, see below
|
|
136
|
+
* @param {number} [animationspeed] - cycling speed for animation in ms
|
|
137
|
+
* @returns {number} frame amount of frame added to the animation (delay between each frame).
|
|
138
|
+
* @see Sprite#animationspeed
|
|
139
|
+
* @example
|
|
140
|
+
* // walking animation
|
|
141
|
+
* this.addAnimation("walk", [ 0, 1, 2, 3, 4, 5 ]);
|
|
142
|
+
* // standing animation
|
|
143
|
+
* this.addAnimation("stand", [ 11, 12 ]);
|
|
144
|
+
* // eating animation
|
|
145
|
+
* this.addAnimation("eat", [ 6, 6 ]);
|
|
146
|
+
* // rolling animation
|
|
147
|
+
* this.addAnimation("roll", [ 7, 8, 9, 10 ]);
|
|
148
|
+
* // slower animation
|
|
149
|
+
* this.addAnimation("roll", [ 7, 8, 9, 10 ], 200);
|
|
150
|
+
* // or get more specific with delay for each frame. Good solution instead of repeating:
|
|
151
|
+
* this.addAnimation("turn", [{ name: 0, delay: 200 }, { name: 1, delay: 100 }])
|
|
152
|
+
* // can do this with atlas values as well:
|
|
153
|
+
* this.addAnimation("turn", [{ name: "turnone", delay: 200 }, { name: "turntwo", delay: 100 }])
|
|
154
|
+
* // define an dying animation that stop on the last frame
|
|
155
|
+
* this.addAnimation("die", [{ name: 3, delay: 200 }, { name: 4, delay: 100 }, { name: 5, delay: Infinity }])
|
|
156
|
+
* // set the standing animation as default
|
|
157
|
+
* this.setCurrentAnimation("stand");
|
|
158
|
+
*/
|
|
159
|
+
addAnimation(name: string, index: number[] | string[] | object[], animationspeed?: number | undefined): number;
|
|
160
|
+
/**
|
|
161
|
+
* set the current animation
|
|
162
|
+
* this will always change the animation & set the frame to zero
|
|
163
|
+
* @name setCurrentAnimation
|
|
164
|
+
* @memberof Sprite
|
|
165
|
+
* @param {string} name - animation id
|
|
166
|
+
* @param {string|Function} [resetAnim] - animation id to switch to when complete, or callback
|
|
167
|
+
* @param {boolean} [preserve_dt=false] - if false will reset the elapsed time counter since last frame
|
|
168
|
+
* @returns {Sprite} Reference to this object for method chaining
|
|
169
|
+
* @example
|
|
170
|
+
* // set "walk" animation
|
|
171
|
+
* this.setCurrentAnimation("walk");
|
|
172
|
+
*
|
|
173
|
+
* // set "walk" animation if it is not the current animation
|
|
174
|
+
* if (this.isCurrentAnimation("walk")) {
|
|
175
|
+
* this.setCurrentAnimation("walk");
|
|
176
|
+
* }
|
|
177
|
+
*
|
|
178
|
+
* // set "eat" animation, and switch to "walk" when complete
|
|
179
|
+
* this.setCurrentAnimation("eat", "walk");
|
|
180
|
+
*
|
|
181
|
+
* // set "die" animation, and remove the object when finished
|
|
182
|
+
* this.setCurrentAnimation("die", (function () {
|
|
183
|
+
* me.game.world.removeChild(this);
|
|
184
|
+
* return false; // do not reset to first frame
|
|
185
|
+
* }).bind(this));
|
|
186
|
+
*
|
|
187
|
+
* // set "attack" animation, and pause for a short duration
|
|
188
|
+
* this.setCurrentAnimation("die", (function () {
|
|
189
|
+
* this.animationpause = true;
|
|
190
|
+
*
|
|
191
|
+
* // back to "standing" animation after 1 second
|
|
192
|
+
* setTimeout(function () {
|
|
193
|
+
* this.setCurrentAnimation("standing");
|
|
194
|
+
* }, 1000);
|
|
195
|
+
*
|
|
196
|
+
* return false; // do not reset to first frame
|
|
197
|
+
* }).bind(this));
|
|
198
|
+
*/
|
|
199
|
+
setCurrentAnimation(name: string, resetAnim?: string | Function | undefined, preserve_dt?: boolean | undefined): Sprite;
|
|
200
|
+
/**
|
|
201
|
+
* reverse the given or current animation if none is specified
|
|
202
|
+
* @name reverseAnimation
|
|
203
|
+
* @memberof Sprite
|
|
204
|
+
* @param {string} [name] - animation id
|
|
205
|
+
* @returns {Sprite} Reference to this object for method chaining
|
|
206
|
+
* @see Sprite#animationspeed
|
|
207
|
+
*/
|
|
208
|
+
reverseAnimation(name?: string | undefined): Sprite;
|
|
209
|
+
/**
|
|
210
|
+
* return true if the specified animation is the current one.
|
|
211
|
+
* @name isCurrentAnimation
|
|
212
|
+
* @memberof Sprite
|
|
213
|
+
* @param {string} name - animation id
|
|
214
|
+
* @returns {boolean}
|
|
215
|
+
* @example
|
|
216
|
+
* if (!this.isCurrentAnimation("walk")) {
|
|
217
|
+
* // do something funny...
|
|
218
|
+
* }
|
|
219
|
+
*/
|
|
220
|
+
isCurrentAnimation(name: string): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* change the current texture atlas region for this sprite
|
|
223
|
+
* @see Texture.getRegion
|
|
224
|
+
* @name setRegion
|
|
225
|
+
* @memberof Sprite
|
|
226
|
+
* @param {object} region - typically returned through me.Texture.getRegion()
|
|
227
|
+
* @returns {Sprite} Reference to this object for method chaining
|
|
228
|
+
* @example
|
|
229
|
+
* // change the sprite to "shadedDark13.png";
|
|
230
|
+
* mySprite.setRegion(game.texture.getRegion("shadedDark13.png"));
|
|
231
|
+
*/
|
|
232
|
+
setRegion(region: object): Sprite;
|
|
233
|
+
/**
|
|
234
|
+
* force the current animation frame index.
|
|
235
|
+
* @name setAnimationFrame
|
|
236
|
+
* @memberof Sprite
|
|
237
|
+
* @param {number} [idx=0] - animation frame index
|
|
238
|
+
* @returns {Sprite} Reference to this object for method chaining
|
|
239
|
+
* @example
|
|
240
|
+
* // reset the current animation to the first frame
|
|
241
|
+
* this.setAnimationFrame();
|
|
242
|
+
*/
|
|
243
|
+
setAnimationFrame(idx?: number | undefined): Sprite;
|
|
244
|
+
/**
|
|
245
|
+
* return the current animation frame index.
|
|
246
|
+
* @name getCurrentAnimationFrame
|
|
247
|
+
* @memberof Sprite
|
|
248
|
+
* @returns {number} current animation frame index
|
|
249
|
+
*/
|
|
250
|
+
getCurrentAnimationFrame(): number;
|
|
251
|
+
/**
|
|
252
|
+
* Returns the frame object by the index.
|
|
253
|
+
* @name getAnimationFrameObjectByIndex
|
|
254
|
+
* @memberof Sprite
|
|
255
|
+
* @ignore
|
|
256
|
+
* @param {number} id - the frame id
|
|
257
|
+
* @returns {number} if using number indices. Returns {object} containing frame data if using texture atlas
|
|
258
|
+
*/
|
|
259
|
+
getAnimationFrameObjectByIndex(id: number): number;
|
|
260
|
+
/**
|
|
261
|
+
* Destroy function<br>
|
|
262
|
+
* @ignore
|
|
263
|
+
*/
|
|
264
|
+
destroy(): void;
|
|
265
|
+
}
|
|
266
|
+
import Renderable from "./renderable.js";
|
|
267
|
+
import { TextureAtlas } from "./../video/texture/atlas.js";
|
|
268
|
+
import Color from "../math/color.js";
|