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,694 +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 { renderer } from '../video/video.js';
|
|
9
|
-
import pool from '../system/pooling.js';
|
|
10
|
-
import { getImage } from '../loader/loader.js';
|
|
11
|
-
import { TextureAtlas } from '../video/texture/atlas.js';
|
|
12
|
-
import Renderable from './renderable.js';
|
|
13
|
-
import Color from '../math/color.js';
|
|
14
|
-
import { on, STATE_PAUSE, off } from '../system/event.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @classdesc
|
|
18
|
-
* An object to display a fixed or animated sprite on screen.
|
|
19
|
-
* @augments Renderable
|
|
20
|
-
*/
|
|
21
|
-
class Sprite extends Renderable {
|
|
22
|
-
/**
|
|
23
|
-
* @param {number} x - the x coordinates of the sprite object
|
|
24
|
-
* @param {number} y - the y coordinates of the sprite object
|
|
25
|
-
* @param {object} settings - Configuration parameters for the Sprite object
|
|
26
|
-
* @param {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|TextureAtlas|string} settings.image - reference to spritesheet image, a texture atlas, a video element, or to a texture atlas
|
|
27
|
-
* @param {string} [settings.name=""] - name of this object
|
|
28
|
-
* @param {string} [settings.region] - region name of a specific region to use when using a texture atlas, see {@link TextureAtlas}
|
|
29
|
-
* @param {number} [settings.framewidth] - Width of a single frame within the spritesheet
|
|
30
|
-
* @param {number} [settings.frameheight] - Height of a single frame within the spritesheet
|
|
31
|
-
* @param {string|Color} [settings.tint] - a tint to be applied to this sprite
|
|
32
|
-
* @param {number} [settings.flipX] - flip the sprite on the horizontal axis
|
|
33
|
-
* @param {number} [settings.flipY] - flip the sprite on the vertical axis
|
|
34
|
-
* @param {Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] - Anchor point to draw the frame at (defaults to the center of the frame).
|
|
35
|
-
* @example
|
|
36
|
-
* // create a single sprite from a standalone image, with anchor in the center
|
|
37
|
-
* let sprite = new me.Sprite(0, 0, {
|
|
38
|
-
* image : "PlayerTexture",
|
|
39
|
-
* framewidth : 64,
|
|
40
|
-
* frameheight : 64,
|
|
41
|
-
* anchorPoint : new me.Vector2d(0.5, 0.5)
|
|
42
|
-
* });
|
|
43
|
-
*
|
|
44
|
-
* // create a single sprite from a packed texture
|
|
45
|
-
* mytexture = new me.TextureAtlas(
|
|
46
|
-
* me.loader.getJSON("texture"),
|
|
47
|
-
* me.loader.getImage("texture")
|
|
48
|
-
* );
|
|
49
|
-
* let sprite = new me.Sprite(0, 0, {
|
|
50
|
-
* image : mytexture,
|
|
51
|
-
* region : "npc2.png",
|
|
52
|
-
* });
|
|
53
|
-
*
|
|
54
|
-
* // create a video sprite
|
|
55
|
-
* let videoSprite = new me.Sprite(0, 0, {
|
|
56
|
-
* image : me.loader.getVideo("bigbunny"),
|
|
57
|
-
* anchorPoint : new me.Vector2d(0.5, 0.5)
|
|
58
|
-
* });
|
|
59
|
-
* // scale the video sprite
|
|
60
|
-
* videoSprite.currentTransform.scale(2);
|
|
61
|
-
* // start playing the video (if video is preloaded with `autoplay` set to false)
|
|
62
|
-
* videoSprite.play();
|
|
63
|
-
*/
|
|
64
|
-
constructor(x, y, settings) {
|
|
65
|
-
|
|
66
|
-
// call the super constructor
|
|
67
|
-
super(x, y, 0, 0);
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @type {boolean}
|
|
71
|
-
* @default false
|
|
72
|
-
*/
|
|
73
|
-
this.animationpause = false;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* animation cycling speed (delay between frame in ms)
|
|
77
|
-
* @type {number}
|
|
78
|
-
* @default 100
|
|
79
|
-
*/
|
|
80
|
-
this.animationspeed = 100;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* global offset for the position to draw from on the source image.
|
|
84
|
-
* @type {Vector2d}
|
|
85
|
-
* @default <0.0,0.0>
|
|
86
|
-
*/
|
|
87
|
-
this.offset = pool.pull("Vector2d", 0, 0);
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* true if this is a video sprite (e.g. a HTMLVideoElement was passed as as source)
|
|
91
|
-
* @type {boolean}
|
|
92
|
-
* @default false
|
|
93
|
-
*/
|
|
94
|
-
this.isVideo = false;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* a callback fired when the end of a video or current animation was reached
|
|
98
|
-
* @type {Function}
|
|
99
|
-
* @default undefined
|
|
100
|
-
*/
|
|
101
|
-
this.onended;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* The source texture object this sprite object is using
|
|
105
|
-
* @type {TextureAtlas}
|
|
106
|
-
*/
|
|
107
|
-
this.source = null;
|
|
108
|
-
|
|
109
|
-
// hold all defined animation
|
|
110
|
-
this.anim = {};
|
|
111
|
-
|
|
112
|
-
// a flag to reset animation
|
|
113
|
-
this.resetAnim = undefined;
|
|
114
|
-
|
|
115
|
-
// current frame information
|
|
116
|
-
// (reusing current, any better/cleaner place?)
|
|
117
|
-
this.current = {
|
|
118
|
-
// the current animation name
|
|
119
|
-
name : undefined,
|
|
120
|
-
// length of the current animation name
|
|
121
|
-
length : 0,
|
|
122
|
-
//current frame texture offset
|
|
123
|
-
offset : pool.pull("Vector2d", 0, 0),
|
|
124
|
-
// current frame size
|
|
125
|
-
width : 0,
|
|
126
|
-
height : 0,
|
|
127
|
-
// Source rotation angle for pre-rotating the source image
|
|
128
|
-
angle : 0,
|
|
129
|
-
// current frame index
|
|
130
|
-
idx : 0
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
// animation frame delta
|
|
134
|
-
this.dt = 0;
|
|
135
|
-
|
|
136
|
-
// flicker settings
|
|
137
|
-
this._flicker = {
|
|
138
|
-
isFlickering : false,
|
|
139
|
-
duration : 0,
|
|
140
|
-
callback : null,
|
|
141
|
-
state : false
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
// set the proper image/texture to use
|
|
145
|
-
if (settings.image instanceof TextureAtlas) {
|
|
146
|
-
this.source = settings.image;
|
|
147
|
-
this.image = this.source.getTexture();
|
|
148
|
-
this.textureAtlas = settings.image;
|
|
149
|
-
// check for defined region
|
|
150
|
-
if (typeof (settings.region) !== "undefined") {
|
|
151
|
-
// use a texture atlas
|
|
152
|
-
let region = this.source.getRegion(settings.region);
|
|
153
|
-
if (region) {
|
|
154
|
-
// set the sprite region within the texture
|
|
155
|
-
this.setRegion(region);
|
|
156
|
-
} else {
|
|
157
|
-
// throw an error
|
|
158
|
-
throw new Error("Texture - region for " + settings.region + " not found");
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
} else {
|
|
162
|
-
// HTMLImageElement/HTMLVideoElementCanvas or {string}
|
|
163
|
-
this.image = (typeof settings.image === "object") ? settings.image : getImage(settings.image);
|
|
164
|
-
// throw an error if image ends up being null/undefined
|
|
165
|
-
if (!this.image) {
|
|
166
|
-
throw new Error("me.Sprite: '" + settings.image + "' image/texture not found!");
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
this.isVideo = HTMLVideoElement && this.image instanceof HTMLVideoElement;
|
|
170
|
-
|
|
171
|
-
if (this.isVideo) {
|
|
172
|
-
this.width = this.current.width = settings.framewidth = settings.framewidth || this.image.videoWidth;
|
|
173
|
-
this.height = this.current.height = settings.frameheight = settings.frameheight || this.image.videoHeight;
|
|
174
|
-
// video specific parameter
|
|
175
|
-
this.animationpause = this.image.autoplay !== true;
|
|
176
|
-
if (this.animationpause) {
|
|
177
|
-
this.image.pause();
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// pause the video when losing focus
|
|
181
|
-
this._onBlurFn = () => { this.image.pause(); };
|
|
182
|
-
on(STATE_PAUSE, this._onBlurFn);
|
|
183
|
-
|
|
184
|
-
// call the onended when the video has ended
|
|
185
|
-
this.image.onended = () => {
|
|
186
|
-
if (typeof this.onended === "function") {
|
|
187
|
-
// prevent the video from restarting if video.loop is false
|
|
188
|
-
if (!this.image.loop) {
|
|
189
|
-
this.animationpause = true;
|
|
190
|
-
}
|
|
191
|
-
this.onended();
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
} else {
|
|
196
|
-
// update the default "current" frame size
|
|
197
|
-
this.width = this.current.width = settings.framewidth = settings.framewidth || this.image.width;
|
|
198
|
-
this.height = this.current.height = settings.frameheight = settings.frameheight || this.image.height;
|
|
199
|
-
this.source = renderer.cache.get(this.image, settings);
|
|
200
|
-
this.textureAtlas = this.source.getAtlas();
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// store/reset the current atlas information if specified
|
|
205
|
-
if (typeof(settings.atlas) !== "undefined") {
|
|
206
|
-
this.textureAtlas = settings.atlas;
|
|
207
|
-
this.atlasIndices = settings.atlasIndices;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// apply flip flags if specified
|
|
211
|
-
if (typeof (settings.flipX) !== "undefined") {
|
|
212
|
-
this.flipX(!!settings.flipX);
|
|
213
|
-
}
|
|
214
|
-
if (typeof (settings.flipY) !== "undefined") {
|
|
215
|
-
this.flipY(!!settings.flipY);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// set the default rotation angle is defined in the settings
|
|
219
|
-
// * WARNING: rotating sprites decreases performance with Canvas Renderer
|
|
220
|
-
if (typeof (settings.rotation) !== "undefined") {
|
|
221
|
-
this.rotate(settings.rotation);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// update anchorPoint
|
|
225
|
-
if (settings.anchorPoint) {
|
|
226
|
-
this.anchorPoint.set(settings.anchorPoint.x, settings.anchorPoint.y);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
if (typeof (settings.tint) !== "undefined") {
|
|
230
|
-
if (settings.tint instanceof Color) {
|
|
231
|
-
this.tint.copy(settings.tint);
|
|
232
|
-
} else {
|
|
233
|
-
// string (#RGB, #ARGB, #RRGGBB, #AARRGGBB)
|
|
234
|
-
this.tint.parseCSS(settings.tint);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// set the sprite name if specified
|
|
239
|
-
if (typeof (settings.name) === "string") {
|
|
240
|
-
this.name = settings.name;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// displaying order
|
|
244
|
-
if (typeof settings.z !== "undefined") {
|
|
245
|
-
this.pos.z = settings.z;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// add predefined animations if defined (e.g. aseprite)
|
|
249
|
-
if (typeof settings.anims !== "undefined") {
|
|
250
|
-
for (const anim in settings.anims) {
|
|
251
|
-
this.addAnimation(settings.anims[anim].name, settings.anims[anim].index, settings.anims[anim].speed);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// addAnimation will return 0 if no texture atlas is defined
|
|
256
|
-
if (!this.isVideo && this.addAnimation("default", null) !== 0) {
|
|
257
|
-
// set as default
|
|
258
|
-
this.setCurrentAnimation("default");
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* return the flickering state of the object
|
|
264
|
-
* @returns {boolean}
|
|
265
|
-
*/
|
|
266
|
-
isFlickering() {
|
|
267
|
-
return this._flicker.isFlickering;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* play or resume the current animation or video
|
|
272
|
-
*/
|
|
273
|
-
play() {
|
|
274
|
-
this.animationpause = false;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* play or resume the current animation or video
|
|
279
|
-
*/
|
|
280
|
-
pause() {
|
|
281
|
-
this.animationpause = true;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* make the object flicker
|
|
286
|
-
* @param {number} duration - expressed in milliseconds
|
|
287
|
-
* @param {Function} callback - Function to call when flickering ends
|
|
288
|
-
* @returns {Sprite} Reference to this object for method chaining
|
|
289
|
-
* @example
|
|
290
|
-
* // make the object flicker for 1 second
|
|
291
|
-
* // and then remove it
|
|
292
|
-
* this.flicker(1000, function () {
|
|
293
|
-
* world.removeChild(this);
|
|
294
|
-
* });
|
|
295
|
-
*/
|
|
296
|
-
flicker(duration, callback) {
|
|
297
|
-
this._flicker.duration = duration;
|
|
298
|
-
if (this._flicker.duration <= 0) {
|
|
299
|
-
this._flicker.isFlickering = false;
|
|
300
|
-
this._flicker.callback = null;
|
|
301
|
-
}
|
|
302
|
-
else if (!this._flicker.isFlickering) {
|
|
303
|
-
this._flicker.callback = callback;
|
|
304
|
-
this._flicker.isFlickering = true;
|
|
305
|
-
}
|
|
306
|
-
return this;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* add an animation <br>
|
|
311
|
-
* For fixed-sized cell sprite sheet, the index list must follow the
|
|
312
|
-
* logic as per the following example :<br>
|
|
313
|
-
* <img src="images/spritesheet_grid.png"/>
|
|
314
|
-
* @param {string} name - animation id
|
|
315
|
-
* @param {number[]|string[]|object[]} index - list of sprite index or name defining the animation. Can also use objects to specify delay for each frame, see below
|
|
316
|
-
* @param {number} [animationspeed] - cycling speed for animation in ms
|
|
317
|
-
* @returns {number} frame amount of frame added to the animation (delay between each frame).
|
|
318
|
-
* @see Sprite#animationspeed
|
|
319
|
-
* @example
|
|
320
|
-
* // walking animation
|
|
321
|
-
* this.addAnimation("walk", [ 0, 1, 2, 3, 4, 5 ]);
|
|
322
|
-
* // standing animation
|
|
323
|
-
* this.addAnimation("stand", [ 11, 12 ]);
|
|
324
|
-
* // eating animation
|
|
325
|
-
* this.addAnimation("eat", [ 6, 6 ]);
|
|
326
|
-
* // rolling animation
|
|
327
|
-
* this.addAnimation("roll", [ 7, 8, 9, 10 ]);
|
|
328
|
-
* // slower animation
|
|
329
|
-
* this.addAnimation("roll", [ 7, 8, 9, 10 ], 200);
|
|
330
|
-
* // or get more specific with delay for each frame. Good solution instead of repeating:
|
|
331
|
-
* this.addAnimation("turn", [{ name: 0, delay: 200 }, { name: 1, delay: 100 }])
|
|
332
|
-
* // can do this with atlas values as well:
|
|
333
|
-
* this.addAnimation("turn", [{ name: "turnone", delay: 200 }, { name: "turntwo", delay: 100 }])
|
|
334
|
-
* // define an dying animation that stop on the last frame
|
|
335
|
-
* this.addAnimation("die", [{ name: 3, delay: 200 }, { name: 4, delay: 100 }, { name: 5, delay: Infinity }])
|
|
336
|
-
* // set the standing animation as default
|
|
337
|
-
* this.setCurrentAnimation("stand");
|
|
338
|
-
*/
|
|
339
|
-
addAnimation(name, index, animationspeed) {
|
|
340
|
-
this.anim[name] = {
|
|
341
|
-
name : name,
|
|
342
|
-
frames : [],
|
|
343
|
-
idx : 0,
|
|
344
|
-
length : 0
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
// # of frames
|
|
348
|
-
let counter = 0;
|
|
349
|
-
|
|
350
|
-
if (typeof (this.textureAtlas) !== "object") {
|
|
351
|
-
return 0;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
if (index == null) {
|
|
356
|
-
index = [];
|
|
357
|
-
// create a default animation with all frame
|
|
358
|
-
Object.keys(this.textureAtlas).forEach((v, i) => {
|
|
359
|
-
index[i] = i;
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
// set each frame configuration (offset, size, etc..)
|
|
364
|
-
for (let i = 0, len = index.length; i < len; i++) {
|
|
365
|
-
let frame = index[i];
|
|
366
|
-
let frameObject;
|
|
367
|
-
if (typeof(frame) === "number" || typeof(frame) === "string") {
|
|
368
|
-
frameObject = {
|
|
369
|
-
name: frame,
|
|
370
|
-
delay: animationspeed || this.animationspeed
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
frameObject = frame;
|
|
375
|
-
}
|
|
376
|
-
let frameObjectName = frameObject.name;
|
|
377
|
-
if (typeof(frameObjectName) === "number") {
|
|
378
|
-
if (typeof (this.textureAtlas[frameObjectName]) !== "undefined") {
|
|
379
|
-
// TODO: adding the cache source coordinates add undefined entries in webGL mode
|
|
380
|
-
this.anim[name].frames[i] = Object.assign(
|
|
381
|
-
{},
|
|
382
|
-
this.textureAtlas[frameObjectName],
|
|
383
|
-
frameObject
|
|
384
|
-
);
|
|
385
|
-
counter++;
|
|
386
|
-
}
|
|
387
|
-
} else { // string
|
|
388
|
-
if (this.source.getFormat().includes("Spritesheet")) {
|
|
389
|
-
throw new Error(
|
|
390
|
-
"string parameters for addAnimation are not allowed for standard spritesheet based Texture"
|
|
391
|
-
);
|
|
392
|
-
} else {
|
|
393
|
-
this.anim[name].frames[i] = Object.assign(
|
|
394
|
-
{},
|
|
395
|
-
this.textureAtlas[this.atlasIndices[frameObjectName]],
|
|
396
|
-
frameObject
|
|
397
|
-
);
|
|
398
|
-
counter++;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
this.anim[name].length = counter;
|
|
403
|
-
|
|
404
|
-
return counter;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* set the current animation
|
|
409
|
-
* this will always change the animation & set the frame to zero
|
|
410
|
-
* @param {string} name - animation id
|
|
411
|
-
* @param {string|Function} [resetAnim] - animation id to switch to when complete, or callback
|
|
412
|
-
* @param {boolean} [preserve_dt=false] - if false will reset the elapsed time counter since last frame
|
|
413
|
-
* @returns {Sprite} Reference to this object for method chaining
|
|
414
|
-
* @example
|
|
415
|
-
* // set "walk" animation
|
|
416
|
-
* this.setCurrentAnimation("walk");
|
|
417
|
-
*
|
|
418
|
-
* // set "walk" animation if it is not the current animation
|
|
419
|
-
* if (this.isCurrentAnimation("walk")) {
|
|
420
|
-
* this.setCurrentAnimation("walk");
|
|
421
|
-
* }
|
|
422
|
-
*
|
|
423
|
-
* // set "eat" animation, and switch to "walk" when complete
|
|
424
|
-
* this.setCurrentAnimation("eat", "walk");
|
|
425
|
-
*
|
|
426
|
-
* // set "die" animation, and remove the object when finished
|
|
427
|
-
* this.setCurrentAnimation("die", () => {
|
|
428
|
-
* world.removeChild(this);
|
|
429
|
-
* return false; // do not reset to first frame
|
|
430
|
-
* });
|
|
431
|
-
*
|
|
432
|
-
* // set "attack" animation, and pause for a short duration
|
|
433
|
-
* this.setCurrentAnimation("die", () => {
|
|
434
|
-
* this.animationpause = true;
|
|
435
|
-
*
|
|
436
|
-
* // back to "standing" animation after 1 second
|
|
437
|
-
* setTimeout(function () {
|
|
438
|
-
* this.setCurrentAnimation("standing");
|
|
439
|
-
* }, 1000);
|
|
440
|
-
*
|
|
441
|
-
* return false; // do not reset to first frame
|
|
442
|
-
* });
|
|
443
|
-
*/
|
|
444
|
-
setCurrentAnimation(name, resetAnim, preserve_dt = false) {
|
|
445
|
-
if (typeof this.anim[name] !== "undefined") {
|
|
446
|
-
if (!this.isCurrentAnimation(name)) {
|
|
447
|
-
this.current.name = name;
|
|
448
|
-
this.current.length = this.anim[this.current.name].length;
|
|
449
|
-
if (typeof resetAnim === "string") {
|
|
450
|
-
this.resetAnim = this.setCurrentAnimation.bind(this, resetAnim, null, true);
|
|
451
|
-
} else if (typeof resetAnim === "function") {
|
|
452
|
-
this.resetAnim = resetAnim;
|
|
453
|
-
} else {
|
|
454
|
-
this.resetAnim = undefined;
|
|
455
|
-
}
|
|
456
|
-
this.setAnimationFrame(0);
|
|
457
|
-
if (!preserve_dt) {
|
|
458
|
-
this.dt = 0;
|
|
459
|
-
}
|
|
460
|
-
this.isDirty = true;
|
|
461
|
-
}
|
|
462
|
-
} else {
|
|
463
|
-
throw new Error("animation id '" + name + "' not defined");
|
|
464
|
-
}
|
|
465
|
-
return this;
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
/**
|
|
469
|
-
* reverse the given or current animation if none is specified
|
|
470
|
-
* @param {string} [name] - animation id
|
|
471
|
-
* @returns {Sprite} Reference to this object for method chaining
|
|
472
|
-
* @see Sprite#animationspeed
|
|
473
|
-
*/
|
|
474
|
-
reverseAnimation(name) {
|
|
475
|
-
if (typeof name !== "undefined" && typeof this.anim[name] !== "undefined") {
|
|
476
|
-
this.anim[name].frames.reverse();
|
|
477
|
-
} else {
|
|
478
|
-
this.anim[this.current.name].frames.reverse();
|
|
479
|
-
}
|
|
480
|
-
this.isDirty = true;
|
|
481
|
-
return this;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/**
|
|
485
|
-
* return true if the specified animation is the current one.
|
|
486
|
-
* @param {string} name - animation id
|
|
487
|
-
* @returns {boolean}
|
|
488
|
-
* @example
|
|
489
|
-
* if (!this.isCurrentAnimation("walk")) {
|
|
490
|
-
* // do something funny...
|
|
491
|
-
* }
|
|
492
|
-
*/
|
|
493
|
-
isCurrentAnimation(name) {
|
|
494
|
-
return this.current.name === name;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
* change the current texture atlas region for this sprite
|
|
499
|
-
* @see Texture.getRegion
|
|
500
|
-
* @param {object} region - typically returned through me.Texture.getRegion()
|
|
501
|
-
* @returns {Sprite} Reference to this object for method chaining
|
|
502
|
-
* @example
|
|
503
|
-
* // change the sprite to "shadedDark13.png";
|
|
504
|
-
* mySprite.setRegion(mytexture.getRegion("shadedDark13.png"));
|
|
505
|
-
*/
|
|
506
|
-
setRegion(region) {
|
|
507
|
-
// set the source texture for the given region
|
|
508
|
-
this.image = this.source.getTexture(region);
|
|
509
|
-
// set the sprite offset within the texture
|
|
510
|
-
this.current.offset.setV(region.offset);
|
|
511
|
-
// set angle if defined
|
|
512
|
-
this.current.angle = typeof region.angle === "number" ? region.angle : 0;
|
|
513
|
-
// update the default "current" size
|
|
514
|
-
this.width = this.current.width = region.width;
|
|
515
|
-
this.height = this.current.height = region.height;
|
|
516
|
-
// set global anchortPoint if defined
|
|
517
|
-
if (region.anchorPoint) {
|
|
518
|
-
this.anchorPoint.setMuted(
|
|
519
|
-
this._flip.x && region.trimmed === true ? 1 - region.anchorPoint.x : region.anchorPoint.x,
|
|
520
|
-
this._flip.y && region.trimmed === true ? 1 - region.anchorPoint.y : region.anchorPoint.y
|
|
521
|
-
);
|
|
522
|
-
}
|
|
523
|
-
// update the sprite bounding box
|
|
524
|
-
this.updateBounds();
|
|
525
|
-
this.isDirty = true;
|
|
526
|
-
return this;
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
/**
|
|
530
|
-
* force the current animation frame index.
|
|
531
|
-
* @param {number} [index=0] - animation frame index
|
|
532
|
-
* @returns {Sprite} Reference to this object for method chaining
|
|
533
|
-
* @example
|
|
534
|
-
* // reset the current animation to the first frame
|
|
535
|
-
* this.setAnimationFrame();
|
|
536
|
-
*/
|
|
537
|
-
setAnimationFrame(index = 0) {
|
|
538
|
-
this.current.idx = index % this.current.length;
|
|
539
|
-
return this.setRegion(this.getAnimationFrameObjectByIndex(this.current.idx));
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
* return the current animation frame index.
|
|
544
|
-
* @returns {number} current animation frame index
|
|
545
|
-
*/
|
|
546
|
-
getCurrentAnimationFrame() {
|
|
547
|
-
return this.current.idx;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
/**
|
|
551
|
-
* Returns the frame object by the index.
|
|
552
|
-
* @ignore
|
|
553
|
-
* @param {number} id - the frame id
|
|
554
|
-
* @returns {number} if using number indices. Returns {object} containing frame data if using texture atlas
|
|
555
|
-
*/
|
|
556
|
-
getAnimationFrameObjectByIndex(id) {
|
|
557
|
-
return this.anim[this.current.name].frames[id];
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
/**
|
|
561
|
-
* update function. <br>
|
|
562
|
-
* automatically called by the game manager {@link game}
|
|
563
|
-
* @protected
|
|
564
|
-
* @param {number} dt - time since the last update in milliseconds.
|
|
565
|
-
* @returns {boolean} true if the Sprite is dirty
|
|
566
|
-
*/
|
|
567
|
-
update(dt) {
|
|
568
|
-
// play/pause video if necessary
|
|
569
|
-
if (this.isVideo) {
|
|
570
|
-
if (this.animationpause) {
|
|
571
|
-
this.image.pause();
|
|
572
|
-
} else if (this.image.paused) {
|
|
573
|
-
this.image.play();
|
|
574
|
-
}
|
|
575
|
-
this.isDirty = !this.image.paused;
|
|
576
|
-
} else {
|
|
577
|
-
// Update animation if necessary
|
|
578
|
-
if (!this.animationpause && this.current.length > 1) {
|
|
579
|
-
let duration = this.getAnimationFrameObjectByIndex(this.current.idx).delay;
|
|
580
|
-
this.dt += dt;
|
|
581
|
-
while (this.dt >= duration) {
|
|
582
|
-
this.isDirty = true;
|
|
583
|
-
this.dt -= duration;
|
|
584
|
-
|
|
585
|
-
let nextFrame = (this.current.length > 1 ? this.current.idx + 1 : this.current.idx);
|
|
586
|
-
this.setAnimationFrame(nextFrame);
|
|
587
|
-
|
|
588
|
-
// Switch animation if we reach the end of the strip and a callback is defined
|
|
589
|
-
if (this.current.idx === 0) {
|
|
590
|
-
if (typeof this.onended === "function") {
|
|
591
|
-
this.onended();
|
|
592
|
-
}
|
|
593
|
-
if (typeof this.resetAnim === "function") {
|
|
594
|
-
// Otherwise is must be callable
|
|
595
|
-
if (this.resetAnim() === false) {
|
|
596
|
-
// Reset to last frame
|
|
597
|
-
this.setAnimationFrame(this.current.length - 1);
|
|
598
|
-
|
|
599
|
-
// Bail early without skipping any more frames.
|
|
600
|
-
this.dt %= duration;
|
|
601
|
-
break;
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
// Get next frame duration
|
|
606
|
-
duration = this.getAnimationFrameObjectByIndex(this.current.idx).delay;
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
//update the "flickering" state if necessary
|
|
612
|
-
if (this._flicker.isFlickering) {
|
|
613
|
-
this._flicker.duration -= dt;
|
|
614
|
-
if (this._flicker.duration < 0) {
|
|
615
|
-
if (typeof (this._flicker.callback) === "function") {
|
|
616
|
-
this._flicker.callback();
|
|
617
|
-
}
|
|
618
|
-
this.flicker(-1);
|
|
619
|
-
}
|
|
620
|
-
this.isDirty = true;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
return super.update(dt);
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
/**
|
|
627
|
-
* draw this srite (automatically called by melonJS)
|
|
628
|
-
* @protected
|
|
629
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
|
|
630
|
-
* @param {Camera2d} [viewport] - the viewport to (re)draw
|
|
631
|
-
*/
|
|
632
|
-
draw(renderer, viewport) { // eslint-disable-line no-unused-vars
|
|
633
|
-
// do nothing if we are flickering
|
|
634
|
-
if (this._flicker.isFlickering) {
|
|
635
|
-
this._flicker.state = !this._flicker.state;
|
|
636
|
-
if (!this._flicker.state) {
|
|
637
|
-
return;
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
// the frame to draw
|
|
642
|
-
let frame = this.current;
|
|
643
|
-
|
|
644
|
-
// cache the current position and size
|
|
645
|
-
let xpos = this.pos.x,
|
|
646
|
-
ypos = this.pos.y;
|
|
647
|
-
|
|
648
|
-
let w = frame.width,
|
|
649
|
-
h = frame.height;
|
|
650
|
-
|
|
651
|
-
// frame offset in the texture/atlas
|
|
652
|
-
let frame_offset = frame.offset;
|
|
653
|
-
let g_offset = this.offset;
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
// remove image's TexturePacker/ShoeBox rotation
|
|
657
|
-
if (frame.angle !== 0) {
|
|
658
|
-
renderer.translate(-xpos, -ypos);
|
|
659
|
-
renderer.rotate(frame.angle);
|
|
660
|
-
xpos -= h;
|
|
661
|
-
w = frame.height;
|
|
662
|
-
h = frame.width;
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
renderer.drawImage(
|
|
666
|
-
this.image,
|
|
667
|
-
g_offset.x + frame_offset.x, // sx
|
|
668
|
-
g_offset.y + frame_offset.y, // sy
|
|
669
|
-
w, h, // sw,sh
|
|
670
|
-
xpos, ypos, // dx,dy
|
|
671
|
-
w, h // dw,dh
|
|
672
|
-
);
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
/**
|
|
676
|
-
* Destroy function<br>
|
|
677
|
-
* @ignore
|
|
678
|
-
*/
|
|
679
|
-
destroy() {
|
|
680
|
-
pool.push(this.offset);
|
|
681
|
-
this.offset = undefined;
|
|
682
|
-
if (this.isVideo) {
|
|
683
|
-
off(STATE_PAUSE, this._onBlurFn);
|
|
684
|
-
this._onBlurFn = undefined;
|
|
685
|
-
this.image.onended = undefined;
|
|
686
|
-
this.image.pause();
|
|
687
|
-
this.image.currentTime = 0;
|
|
688
|
-
}
|
|
689
|
-
this.image = undefined;
|
|
690
|
-
super.destroy();
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
export { Sprite as default };
|