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,794 +0,0 @@
|
|
|
1
|
-
import {preventDefault} from "./input.js";
|
|
2
|
-
import {getBindingKey, triggerKeyEvent} from "./keyboard.js";
|
|
3
|
-
import { renderer } from "./../video/video.js";
|
|
4
|
-
import { throttle } from "./../utils/function.js";
|
|
5
|
-
import { remove } from "./../utils/array.js";
|
|
6
|
-
import * as event from "./../system/event.js";
|
|
7
|
-
import timer from "./../system/timer.js";
|
|
8
|
-
import pool from "./../system/pooling.js";
|
|
9
|
-
import * as device from "./../system/device.js";
|
|
10
|
-
import Pointer from "./pointer.js";
|
|
11
|
-
import Rect from "./../geometries/rectangle.js";
|
|
12
|
-
import { game } from "../index.js";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* A pool of `Pointer` objects to cache pointer/touch event coordinates.
|
|
16
|
-
* @type {Array.<Vector2d>}
|
|
17
|
-
* @ignore
|
|
18
|
-
*/
|
|
19
|
-
let T_POINTERS = [];
|
|
20
|
-
|
|
21
|
-
// list of registered Event handlers
|
|
22
|
-
let eventHandlers = new Map();
|
|
23
|
-
|
|
24
|
-
// a cache rect represeting the current pointer area
|
|
25
|
-
let currentPointer;
|
|
26
|
-
|
|
27
|
-
// some useful flags
|
|
28
|
-
let pointerInitialized = false;
|
|
29
|
-
|
|
30
|
-
// Track last event timestamp to prevent firing events out of order
|
|
31
|
-
let lastTimeStamp = 0;
|
|
32
|
-
|
|
33
|
-
// "active" list of supported events
|
|
34
|
-
let activeEventList = [];
|
|
35
|
-
|
|
36
|
-
// internal constants
|
|
37
|
-
const WHEEL = ["wheel"];
|
|
38
|
-
const POINTER_MOVE = ["pointermove", "mousemove", "touchmove"];
|
|
39
|
-
const POINTER_DOWN = ["pointerdown", "mousedown", "touchstart"];
|
|
40
|
-
const POINTER_UP = ["pointerup", "mouseup", "touchend"];
|
|
41
|
-
const POINTER_CANCEL = ["pointercancel", "mousecancel", "touchcancel"];
|
|
42
|
-
const POINTER_ENTER = ["pointerenter", "mouseenter", "touchenter"];
|
|
43
|
-
const POINTER_OVER = ["pointerover", "mouseover", "touchover"];
|
|
44
|
-
const POINTER_LEAVE = ["pointerleave", "mouseleave", "touchleave"];
|
|
45
|
-
|
|
46
|
-
// list of standard pointer event type
|
|
47
|
-
const pointerEventList = [
|
|
48
|
-
WHEEL[0],
|
|
49
|
-
POINTER_MOVE[0],
|
|
50
|
-
POINTER_DOWN[0],
|
|
51
|
-
POINTER_UP[0],
|
|
52
|
-
POINTER_CANCEL[0],
|
|
53
|
-
POINTER_ENTER[0],
|
|
54
|
-
POINTER_OVER[0],
|
|
55
|
-
POINTER_LEAVE[0]
|
|
56
|
-
];
|
|
57
|
-
|
|
58
|
-
// legacy mouse event type
|
|
59
|
-
const mouseEventList = [
|
|
60
|
-
WHEEL[0],
|
|
61
|
-
POINTER_MOVE[1],
|
|
62
|
-
POINTER_DOWN[1],
|
|
63
|
-
POINTER_UP[1],
|
|
64
|
-
POINTER_CANCEL[1],
|
|
65
|
-
POINTER_ENTER[1],
|
|
66
|
-
POINTER_OVER[1],
|
|
67
|
-
POINTER_LEAVE[1]
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
// iOS style touch event type
|
|
71
|
-
const touchEventList = [
|
|
72
|
-
POINTER_MOVE[2],
|
|
73
|
-
POINTER_DOWN[2],
|
|
74
|
-
POINTER_UP[2],
|
|
75
|
-
POINTER_CANCEL[2],
|
|
76
|
-
POINTER_ENTER[2],
|
|
77
|
-
POINTER_OVER[2],
|
|
78
|
-
POINTER_LEAVE[2]
|
|
79
|
-
];
|
|
80
|
-
|
|
81
|
-
const pointerEventMap = {
|
|
82
|
-
wheel : WHEEL,
|
|
83
|
-
pointermove: POINTER_MOVE,
|
|
84
|
-
pointerdown: POINTER_DOWN,
|
|
85
|
-
pointerup: POINTER_UP,
|
|
86
|
-
pointercancel: POINTER_CANCEL,
|
|
87
|
-
pointerenter: POINTER_ENTER,
|
|
88
|
-
pointerover: POINTER_OVER,
|
|
89
|
-
pointerleave: POINTER_LEAVE
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Array of normalized events (mouse, touch, pointer)
|
|
94
|
-
* @ignore
|
|
95
|
-
*/
|
|
96
|
-
let normalizedEvents = [];
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* addEventListerner for the specified event list and callback
|
|
100
|
-
* @ignore
|
|
101
|
-
*/
|
|
102
|
-
function registerEventListener(eventList, callback) {
|
|
103
|
-
for (let x = 0; x < eventList.length; x++) {
|
|
104
|
-
if (POINTER_MOVE.indexOf(eventList[x]) === -1) {
|
|
105
|
-
pointerEventTarget.addEventListener(eventList[x], callback, { passive: (preventDefault === false) });
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* enable pointer event (Pointer/Mouse/Touch)
|
|
112
|
-
* @ignore
|
|
113
|
-
*/
|
|
114
|
-
function enablePointerEvent() {
|
|
115
|
-
if (!pointerInitialized) {
|
|
116
|
-
|
|
117
|
-
// the current pointer area
|
|
118
|
-
currentPointer = new Rect(0, 0, 1, 1);
|
|
119
|
-
|
|
120
|
-
// instantiate a pool of pointer catched
|
|
121
|
-
for (let v = 0; v < device.maxTouchPoints; v++) {
|
|
122
|
-
T_POINTERS.push(new Pointer());
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (pointerEventTarget === null) {
|
|
126
|
-
// default pointer event target
|
|
127
|
-
pointerEventTarget = renderer.getCanvas();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (device.pointerEvent) {
|
|
131
|
-
// standard Pointer Events
|
|
132
|
-
activeEventList = pointerEventList;
|
|
133
|
-
} else {
|
|
134
|
-
// Regular Mouse events
|
|
135
|
-
activeEventList = mouseEventList;
|
|
136
|
-
}
|
|
137
|
-
if (device.touch && !device.pointerEvent) {
|
|
138
|
-
// touch event on mobile devices
|
|
139
|
-
activeEventList = activeEventList.concat(touchEventList);
|
|
140
|
-
}
|
|
141
|
-
registerEventListener(activeEventList, onPointerEvent);
|
|
142
|
-
|
|
143
|
-
// set the PointerMove/touchMove/MouseMove event
|
|
144
|
-
if (typeof(throttlingInterval) === "undefined") {
|
|
145
|
-
// set the default value
|
|
146
|
-
throttlingInterval = ~~(1000 / timer.maxfps);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (device.autoFocus === true) {
|
|
150
|
-
device.focus();
|
|
151
|
-
pointerEventTarget.addEventListener(
|
|
152
|
-
activeEventList[2], // MOUSE/POINTER DOWN
|
|
153
|
-
() => {
|
|
154
|
-
device.focus();
|
|
155
|
-
},
|
|
156
|
-
{ passive: (preventDefault === false) }
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// if time interval <= 16, disable the feature
|
|
161
|
-
let events = findAllActiveEvents(activeEventList, POINTER_MOVE);
|
|
162
|
-
if (throttlingInterval < 17) {
|
|
163
|
-
for (let i = 0; i < events.length; i++) {
|
|
164
|
-
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
165
|
-
pointerEventTarget.addEventListener(
|
|
166
|
-
events[i],
|
|
167
|
-
onMoveEvent,
|
|
168
|
-
{ passive: true } // do not preventDefault on Move events
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
for (let i = 0; i < events.length; i++) {
|
|
176
|
-
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
177
|
-
pointerEventTarget.addEventListener(
|
|
178
|
-
events[i],
|
|
179
|
-
throttle(
|
|
180
|
-
onMoveEvent,
|
|
181
|
-
throttlingInterval,
|
|
182
|
-
false
|
|
183
|
-
),
|
|
184
|
-
{ passive: true } // do not preventDefault on Move events
|
|
185
|
-
);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
// disable all gesture by default
|
|
190
|
-
setTouchAction(pointerEventTarget);
|
|
191
|
-
|
|
192
|
-
// set a on change listener on pointerlock if supported
|
|
193
|
-
if (device.hasPointerLockSupport) {
|
|
194
|
-
globalThis.document.addEventListener("pointerlockchange", () => {
|
|
195
|
-
// change the locked status accordingly
|
|
196
|
-
locked = globalThis.document.pointerLockElement === game.getParentElement();
|
|
197
|
-
// emit the corresponding internal event
|
|
198
|
-
event.emit(event.POINTERLOCKCHANGE, locked);
|
|
199
|
-
}, true);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
// all done !
|
|
203
|
-
pointerInitialized = true;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* @ignore
|
|
209
|
-
*/
|
|
210
|
-
function findActiveEvent(activeEventList, eventTypes) {
|
|
211
|
-
for (let i = 0; i < eventTypes.length; i++) {
|
|
212
|
-
const event = activeEventList.indexOf(eventTypes[i]);
|
|
213
|
-
if (event !== -1) {
|
|
214
|
-
return eventTypes[i];
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* @ignore
|
|
221
|
-
*/
|
|
222
|
-
function findAllActiveEvents(activeEventList, eventTypes) {
|
|
223
|
-
let events = [];
|
|
224
|
-
for (let i = 0; i < eventTypes.length; i++) {
|
|
225
|
-
const event = activeEventList.indexOf(eventTypes[i]);
|
|
226
|
-
if (event !== -1) {
|
|
227
|
-
events.push(eventTypes[i]);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return events;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* @ignore
|
|
236
|
-
*/
|
|
237
|
-
function triggerEvent(handlers, type, pointer, pointerId) {
|
|
238
|
-
let callback;
|
|
239
|
-
if (handlers.callbacks[type]) {
|
|
240
|
-
handlers.pointerId = pointerId;
|
|
241
|
-
for (let i = handlers.callbacks[type].length - 1; (i >= 0) && (callback = handlers.callbacks[type][i]); i--) {
|
|
242
|
-
if (callback(pointer) === false) {
|
|
243
|
-
// stop propagating the event if return false
|
|
244
|
-
return true;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* propagate events to registered objects
|
|
253
|
-
* @ignore
|
|
254
|
-
*/
|
|
255
|
-
function dispatchEvent(normalizedEvents) {
|
|
256
|
-
let handled = false;
|
|
257
|
-
|
|
258
|
-
while (normalizedEvents.length > 0) {
|
|
259
|
-
|
|
260
|
-
// keep a reference to the last item
|
|
261
|
-
let pointer = normalizedEvents.pop();
|
|
262
|
-
// and put it back into our cache
|
|
263
|
-
T_POINTERS.push(pointer);
|
|
264
|
-
|
|
265
|
-
// Do not fire older touch events (not required for PointerEvent type)
|
|
266
|
-
if (pointer.isNormalized === true && typeof(pointer.event.timeStamp) !== "undefined") {
|
|
267
|
-
if (pointer.event.timeStamp < lastTimeStamp) {
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
lastTimeStamp = pointer.event.timeStamp;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
currentPointer.setShape(
|
|
274
|
-
pointer.gameWorldX,
|
|
275
|
-
pointer.gameWorldY,
|
|
276
|
-
pointer.width,
|
|
277
|
-
pointer.height
|
|
278
|
-
);
|
|
279
|
-
|
|
280
|
-
// trigger a global event for pointer move
|
|
281
|
-
if (POINTER_MOVE.includes(pointer.type)) {
|
|
282
|
-
pointer.gameX = pointer.gameLocalX = pointer.gameScreenX;
|
|
283
|
-
pointer.gameY = pointer.gameLocalY = pointer.gameScreenY;
|
|
284
|
-
event.emit(event.POINTERMOVE, pointer);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// fetch valid candiates from the game world container
|
|
288
|
-
let candidates = game.world.broadphase.retrieve(currentPointer, game.world._sortReverseZ);
|
|
289
|
-
|
|
290
|
-
// add the main game viewport to the list of candidates
|
|
291
|
-
candidates = candidates.concat([ game.viewport ]);
|
|
292
|
-
|
|
293
|
-
for (let c = candidates.length, candidate; c--, (candidate = candidates[c]);) {
|
|
294
|
-
if (eventHandlers.has(candidate) && (candidate.isKinematic !== true)) {
|
|
295
|
-
const handlers = eventHandlers.get(candidate);
|
|
296
|
-
const region = handlers.region;
|
|
297
|
-
const ancestor = region.ancestor;
|
|
298
|
-
const bounds = region.getBounds();
|
|
299
|
-
let eventInBounds = false;
|
|
300
|
-
|
|
301
|
-
if (region.isFloating === true) {
|
|
302
|
-
pointer.gameX = pointer.gameLocalX = pointer.gameScreenX;
|
|
303
|
-
pointer.gameY = pointer.gameLocalY = pointer.gameScreenY;
|
|
304
|
-
} else {
|
|
305
|
-
pointer.gameX = pointer.gameLocalX = pointer.gameWorldX;
|
|
306
|
-
pointer.gameY = pointer.gameLocalY = pointer.gameWorldY;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// adjust gameLocalX to specify coordinates
|
|
310
|
-
// within the region ancestor container
|
|
311
|
-
if (typeof ancestor !== "undefined") {
|
|
312
|
-
let parentBounds = ancestor.getBounds();
|
|
313
|
-
pointer.gameLocalX = pointer.gameX - parentBounds.x;
|
|
314
|
-
pointer.gameLocalY = pointer.gameY - parentBounds.y;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
eventInBounds = bounds.contains(pointer.gameX, pointer.gameY);
|
|
318
|
-
|
|
319
|
-
switch (pointer.type) {
|
|
320
|
-
case POINTER_MOVE[0]:
|
|
321
|
-
case POINTER_MOVE[1]:
|
|
322
|
-
case POINTER_MOVE[2]:
|
|
323
|
-
case POINTER_MOVE[3]:
|
|
324
|
-
// moved out of bounds: trigger the POINTER_LEAVE callbacks
|
|
325
|
-
if (handlers.pointerId === pointer.pointerId && !eventInBounds) {
|
|
326
|
-
if (triggerEvent(handlers, findActiveEvent(activeEventList, POINTER_LEAVE), pointer, null)) {
|
|
327
|
-
handled = true;
|
|
328
|
-
break;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
// no pointer & moved inside of bounds: trigger the POINTER_ENTER callbacks
|
|
332
|
-
else if (handlers.pointerId === null && eventInBounds) {
|
|
333
|
-
if (triggerEvent(handlers, findActiveEvent(activeEventList, POINTER_ENTER), pointer, pointer.pointerId)) {
|
|
334
|
-
handled = true;
|
|
335
|
-
break;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
// trigger the POINTER_MOVE callbacks
|
|
340
|
-
if (eventInBounds && triggerEvent(handlers, pointer.type, pointer, pointer.pointerId)) {
|
|
341
|
-
handled = true;
|
|
342
|
-
break;
|
|
343
|
-
}
|
|
344
|
-
break;
|
|
345
|
-
|
|
346
|
-
case POINTER_UP[0]:
|
|
347
|
-
case POINTER_UP[1]:
|
|
348
|
-
case POINTER_UP[2]:
|
|
349
|
-
case POINTER_UP[3]:
|
|
350
|
-
// pointer defined & inside of bounds: trigger the POINTER_UP callback
|
|
351
|
-
if (handlers.pointerId === pointer.pointerId && eventInBounds) {
|
|
352
|
-
// trigger the corresponding callback
|
|
353
|
-
if (triggerEvent(handlers, pointer.type, pointer, null)) {
|
|
354
|
-
handled = true;
|
|
355
|
-
break;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
break;
|
|
359
|
-
|
|
360
|
-
case POINTER_CANCEL[0]:
|
|
361
|
-
case POINTER_CANCEL[1]:
|
|
362
|
-
case POINTER_CANCEL[2]:
|
|
363
|
-
case POINTER_CANCEL[3]:
|
|
364
|
-
// pointer defined: trigger the POINTER_CANCEL callback
|
|
365
|
-
if (handlers.pointerId === pointer.pointerId) {
|
|
366
|
-
// trigger the corresponding callback
|
|
367
|
-
if (triggerEvent(handlers, pointer.type, pointer, null)) {
|
|
368
|
-
handled = true;
|
|
369
|
-
break;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
break;
|
|
373
|
-
|
|
374
|
-
default:
|
|
375
|
-
// event inside of bounds: trigger the POINTER_DOWN or WHEEL callback
|
|
376
|
-
if (eventInBounds) {
|
|
377
|
-
// trigger the corresponding callback
|
|
378
|
-
if (triggerEvent(handlers, pointer.type, pointer, pointer.pointerId)) {
|
|
379
|
-
handled = true;
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
break;
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
if (handled === true) {
|
|
387
|
-
// stop iterating through this list of candidates
|
|
388
|
-
break;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
return handled;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/**
|
|
396
|
-
* translate event coordinates
|
|
397
|
-
* @ignore
|
|
398
|
-
*/
|
|
399
|
-
function normalizeEvent(originalEvent) {
|
|
400
|
-
let _pointer;
|
|
401
|
-
|
|
402
|
-
// PointerEvent or standard Mouse event
|
|
403
|
-
if (device.touchEvent && originalEvent.changedTouches) {
|
|
404
|
-
// iOS/Android Touch event
|
|
405
|
-
for (let i = 0, l = originalEvent.changedTouches.length; i < l; i++) {
|
|
406
|
-
const touchEvent = originalEvent.changedTouches[i];
|
|
407
|
-
_pointer = T_POINTERS.pop();
|
|
408
|
-
_pointer.setEvent(
|
|
409
|
-
originalEvent,
|
|
410
|
-
touchEvent.pageX,
|
|
411
|
-
touchEvent.pageY,
|
|
412
|
-
touchEvent.clientX,
|
|
413
|
-
touchEvent.clientY,
|
|
414
|
-
touchEvent.identifier
|
|
415
|
-
);
|
|
416
|
-
normalizedEvents.push(_pointer);
|
|
417
|
-
}
|
|
418
|
-
} else {
|
|
419
|
-
// Mouse or PointerEvent
|
|
420
|
-
_pointer = T_POINTERS.pop();
|
|
421
|
-
_pointer.setEvent(
|
|
422
|
-
originalEvent,
|
|
423
|
-
originalEvent.pageX,
|
|
424
|
-
originalEvent.pageY,
|
|
425
|
-
originalEvent.clientX,
|
|
426
|
-
originalEvent.clientY,
|
|
427
|
-
originalEvent.pointerId
|
|
428
|
-
);
|
|
429
|
-
normalizedEvents.push(_pointer);
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
// if event.isPrimary is defined and false, return
|
|
433
|
-
if (originalEvent.isPrimary === false) {
|
|
434
|
-
return normalizedEvents;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
// else use the first entry to simulate mouse event
|
|
438
|
-
normalizedEvents[0].isPrimary = true;
|
|
439
|
-
Object.assign(pointer, normalizedEvents[0]);
|
|
440
|
-
|
|
441
|
-
return normalizedEvents;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/**
|
|
445
|
-
* mouse/touch/pointer event management (move)
|
|
446
|
-
* @ignore
|
|
447
|
-
*/
|
|
448
|
-
function onMoveEvent(e) {
|
|
449
|
-
// dispatch mouse event to registered object
|
|
450
|
-
dispatchEvent(normalizeEvent(e));
|
|
451
|
-
// do not prevent default on moveEvent :
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
/**
|
|
455
|
-
* mouse/touch/pointer event management (start/down, end/up)
|
|
456
|
-
* @ignore
|
|
457
|
-
*/
|
|
458
|
-
function onPointerEvent(e) {
|
|
459
|
-
// normalize eventTypes
|
|
460
|
-
normalizeEvent(e);
|
|
461
|
-
|
|
462
|
-
// remember/use the first "primary" normalized event for pointer.bind
|
|
463
|
-
let button = normalizedEvents[0].button;
|
|
464
|
-
|
|
465
|
-
// dispatch event to registered objects
|
|
466
|
-
if (dispatchEvent(normalizedEvents) || e.type === "wheel") {
|
|
467
|
-
// always preventDefault for wheel event (?legacy code/behavior?)
|
|
468
|
-
if (preventDefault === true) {
|
|
469
|
-
e.preventDefault();
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
let keycode = pointer.bind[button];
|
|
474
|
-
|
|
475
|
-
// check if mapped to a key
|
|
476
|
-
if (keycode) {
|
|
477
|
-
triggerKeyEvent(keycode, POINTER_DOWN.includes(e.type), button + 1);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/*
|
|
482
|
-
* PUBLIC STUFF
|
|
483
|
-
*/
|
|
484
|
-
|
|
485
|
-
/**
|
|
486
|
-
* the default target element for pointer events (usually the canvas element in which the game is rendered)
|
|
487
|
-
* @public
|
|
488
|
-
* @type {EventTarget}
|
|
489
|
-
* @name pointerEventTarget
|
|
490
|
-
* @memberof input
|
|
491
|
-
*/
|
|
492
|
-
export let pointerEventTarget = null;
|
|
493
|
-
|
|
494
|
-
/**
|
|
495
|
-
* Pointer information (current position and size)
|
|
496
|
-
* @public
|
|
497
|
-
* @type {Rect}
|
|
498
|
-
* @name pointer
|
|
499
|
-
* @memberof input
|
|
500
|
-
*/
|
|
501
|
-
export let pointer = new Pointer(0, 0, 1, 1);
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
/**
|
|
505
|
-
* indicates if the pointer is currently locked
|
|
506
|
-
* @public
|
|
507
|
-
* @type {boolean}
|
|
508
|
-
* @name locked
|
|
509
|
-
* @memberof input
|
|
510
|
-
*/
|
|
511
|
-
export let locked = false;
|
|
512
|
-
|
|
513
|
-
/**
|
|
514
|
-
* time interval for event throttling in milliseconds<br>
|
|
515
|
-
* default value : "1000/me.timer.maxfps" ms<br>
|
|
516
|
-
* set to 0 ms to disable the feature
|
|
517
|
-
* @public
|
|
518
|
-
* @type {number}
|
|
519
|
-
* @name throttlingInterval
|
|
520
|
-
* @memberof input
|
|
521
|
-
*/
|
|
522
|
-
export let throttlingInterval;
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* return true if there are pending pointer events in the queue
|
|
526
|
-
* @memberof input
|
|
527
|
-
* @returns true if there are pending events
|
|
528
|
-
*/
|
|
529
|
-
export function hasActiveEvents() {
|
|
530
|
-
return normalizedEvents.length > 0;
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
/**
|
|
534
|
-
* return true if there are register pointer events
|
|
535
|
-
* @memberof input
|
|
536
|
-
* @see registerPointerEvent
|
|
537
|
-
* @returns true if there are pending events
|
|
538
|
-
*/
|
|
539
|
-
export function hasRegisteredEvents() {
|
|
540
|
-
return eventHandlers.size > 0;
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
/**
|
|
544
|
-
* Translate the specified x and y values from the global (absolute)
|
|
545
|
-
* coordinate to local (viewport) relative coordinate.
|
|
546
|
-
* @memberof input
|
|
547
|
-
* @param {number} x - the global x coordinate to be translated.
|
|
548
|
-
* @param {number} y - the global y coordinate to be translated.
|
|
549
|
-
* @param {Vector2d} [v] - an optional vector object where to set the translated coordinates
|
|
550
|
-
* @returns {Vector2d} A vector object with the corresponding translated coordinates
|
|
551
|
-
* @example
|
|
552
|
-
* onMouseEvent : function (pointer) {
|
|
553
|
-
* // convert the given into local (viewport) relative coordinates
|
|
554
|
-
* let pos = me.input.globalToLocal(pointer.clientX, pointer.clientY);
|
|
555
|
-
* // do something with pos !
|
|
556
|
-
* };
|
|
557
|
-
*/
|
|
558
|
-
export function globalToLocal(x, y, v) {
|
|
559
|
-
v = v || pool.pull("Vector2d");
|
|
560
|
-
let rect = device.getElementBounds(renderer.getCanvas());
|
|
561
|
-
let pixelRatio = globalThis.devicePixelRatio || 1;
|
|
562
|
-
x -= rect.left + (globalThis.pageXOffset || 0);
|
|
563
|
-
y -= rect.top + (globalThis.pageYOffset || 0);
|
|
564
|
-
let scale = renderer.scaleRatio;
|
|
565
|
-
if (scale.x !== 1.0 || scale.y !== 1.0) {
|
|
566
|
-
x /= scale.x;
|
|
567
|
-
y /= scale.y;
|
|
568
|
-
}
|
|
569
|
-
return v.set(x * pixelRatio, y * pixelRatio);
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
/**
|
|
573
|
-
* enable/disable all gestures on the given element.<br>
|
|
574
|
-
* by default melonJS will disable browser handling of all panning and zooming gestures.
|
|
575
|
-
* @memberof input
|
|
576
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
|
|
577
|
-
* @param {HTMLCanvasElement} element
|
|
578
|
-
* @param {string} [value="none"]
|
|
579
|
-
*/
|
|
580
|
-
export function setTouchAction(element, value) {
|
|
581
|
-
element.style["touch-action"] = value || "none";
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
/**
|
|
585
|
-
* Associate a pointer event to a keycode<br>
|
|
586
|
-
* Left button – 0
|
|
587
|
-
* Middle button – 1
|
|
588
|
-
* Right button – 2
|
|
589
|
-
* @memberof input
|
|
590
|
-
* @param {number} [button=input.pointer.LEFT] - (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
591
|
-
* @param {input.KEY} keyCode
|
|
592
|
-
* @example
|
|
593
|
-
* // enable the keyboard
|
|
594
|
-
* me.input.bindKey(me.input.KEY.X, "shoot");
|
|
595
|
-
* // map the left button click on the X key (default if the button is not specified)
|
|
596
|
-
* me.input.bindPointer(me.input.KEY.X);
|
|
597
|
-
* // map the right button click on the X key
|
|
598
|
-
* me.input.bindPointer(me.input.pointer.RIGHT, me.input.KEY.X);
|
|
599
|
-
*/
|
|
600
|
-
export function bindPointer() {
|
|
601
|
-
let button = (arguments.length < 2) ? pointer.LEFT : arguments[0];
|
|
602
|
-
let keyCode = (arguments.length < 2) ? arguments[0] : arguments[1];
|
|
603
|
-
|
|
604
|
-
// make sure the mouse is initialized
|
|
605
|
-
enablePointerEvent();
|
|
606
|
-
|
|
607
|
-
// throw an exception if no action is defined for the specified keycode
|
|
608
|
-
if (!getBindingKey(keyCode)) {
|
|
609
|
-
throw new Error("no action defined for keycode " + keyCode);
|
|
610
|
-
}
|
|
611
|
-
// map the mouse button to the keycode
|
|
612
|
-
pointer.bind[button] = keyCode;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
/**
|
|
616
|
-
* unbind the defined keycode
|
|
617
|
-
* @memberof input
|
|
618
|
-
* @param {number} [button=input.pointer.LEFT] - (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
619
|
-
* @example
|
|
620
|
-
* me.input.unbindPointer(me.input.pointer.LEFT);
|
|
621
|
-
*/
|
|
622
|
-
export function unbindPointer(button) {
|
|
623
|
-
// clear the event status
|
|
624
|
-
pointer.bind[
|
|
625
|
-
typeof(button) === "undefined" ?
|
|
626
|
-
pointer.LEFT : button
|
|
627
|
-
] = null;
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
* allows registration of event listeners on the object target. <br>
|
|
633
|
-
* melonJS will pass a me.Pointer object to the defined callback.
|
|
634
|
-
* @see Pointer
|
|
635
|
-
* @see {@link http://www.w3.org/TR/pointerevents/#list-of-pointer-events|W3C Pointer Event list}
|
|
636
|
-
* @memberof input
|
|
637
|
-
* @param {string} eventType - The event type for which the object is registering <br>
|
|
638
|
-
* melonJS currently supports: <br>
|
|
639
|
-
* <ul>
|
|
640
|
-
* <li><code>"pointermove"</code></li>
|
|
641
|
-
* <li><code>"pointerdown"</code></li>
|
|
642
|
-
* <li><code>"pointerup"</code></li>
|
|
643
|
-
* <li><code>"pointerenter"</code></li>
|
|
644
|
-
* <li><code>"pointerover"</code></li>
|
|
645
|
-
* <li><code>"pointerleave"</code></li>
|
|
646
|
-
* <li><code>"pointercancel"</code></li>
|
|
647
|
-
* <li><code>"wheel"</code></li>
|
|
648
|
-
* </ul>
|
|
649
|
-
* @param {Rect|Polygon|Line|Ellipse} region - a shape representing the region to register on
|
|
650
|
-
* @param {Function} callback - methods to be called when the event occurs.
|
|
651
|
-
* Returning `false` from the defined callback will prevent the event to be propagated to other objects
|
|
652
|
-
* @example
|
|
653
|
-
* // onActivate function
|
|
654
|
-
* onActivateEvent: function () {
|
|
655
|
-
* // register on the 'pointerdown' event
|
|
656
|
-
* me.input.registerPointerEvent('pointerdown', this, (e) => this.pointerDown(e));
|
|
657
|
-
* },
|
|
658
|
-
*
|
|
659
|
-
* // pointerDown event callback
|
|
660
|
-
* pointerDown: function (pointer) {
|
|
661
|
-
* // do something
|
|
662
|
-
* ....
|
|
663
|
-
* // don"t propagate the event to other objects
|
|
664
|
-
* return false;
|
|
665
|
-
* },
|
|
666
|
-
*/
|
|
667
|
-
export function registerPointerEvent(eventType, region, callback) {
|
|
668
|
-
// make sure the mouse/touch events are initialized
|
|
669
|
-
enablePointerEvent();
|
|
670
|
-
|
|
671
|
-
if (pointerEventList.indexOf(eventType) === -1) {
|
|
672
|
-
throw new Error("invalid event type : " + eventType);
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
if (typeof region === "undefined") {
|
|
676
|
-
throw new Error("registerPointerEvent: region for " + toString(region) + " event is undefined ");
|
|
677
|
-
}
|
|
678
|
-
|
|
679
|
-
let eventTypes = findAllActiveEvents(activeEventList, pointerEventMap[eventType]);
|
|
680
|
-
|
|
681
|
-
// register the event
|
|
682
|
-
if (!eventHandlers.has(region)) {
|
|
683
|
-
eventHandlers.set(region, {
|
|
684
|
-
region : region,
|
|
685
|
-
callbacks : {},
|
|
686
|
-
pointerId : null
|
|
687
|
-
});
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
// allocate array if not defined
|
|
691
|
-
let handlers = eventHandlers.get(region);
|
|
692
|
-
for (let i = 0; i < eventTypes.length; i++) {
|
|
693
|
-
const eventType = eventTypes[i];
|
|
694
|
-
if (handlers.callbacks[eventType]) {
|
|
695
|
-
handlers.callbacks[eventType].push(callback);
|
|
696
|
-
} else {
|
|
697
|
-
handlers.callbacks[eventType] = [callback];
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
/**
|
|
703
|
-
* allows the removal of event listeners from the object target.
|
|
704
|
-
* @see {@link http://www.w3.org/TR/pointerevents/#list-of-pointer-events|W3C Pointer Event list}
|
|
705
|
-
* @memberof input
|
|
706
|
-
* @param {string} eventType - The event type for which the object was registered. See {@link input.registerPointerEvent}
|
|
707
|
-
* @param {Rect|Polygon|Line|Ellipse} region - the registered region to release for this event
|
|
708
|
-
* @param {Function} [callback="all"] - if specified unregister the event only for the specific callback
|
|
709
|
-
* @example
|
|
710
|
-
* // release the registered region on the 'pointerdown' event
|
|
711
|
-
* me.input.releasePointerEvent('pointerdown', this);
|
|
712
|
-
*/
|
|
713
|
-
export function releasePointerEvent(eventType, region, callback) {
|
|
714
|
-
if (pointerEventList.indexOf(eventType) === -1) {
|
|
715
|
-
throw new Error("invalid event type : " + eventType);
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
// convert to supported event type if pointerEvent not natively supported
|
|
719
|
-
let eventTypes = findAllActiveEvents(activeEventList, pointerEventMap[eventType]);
|
|
720
|
-
|
|
721
|
-
let handlers = eventHandlers.get(region);
|
|
722
|
-
if (typeof (handlers) !== "undefined") {
|
|
723
|
-
for (let i = 0; i < eventTypes.length; i++) {
|
|
724
|
-
const eventType = eventTypes[i];
|
|
725
|
-
if (handlers.callbacks[eventType]) {
|
|
726
|
-
if (typeof (callback) !== "undefined") {
|
|
727
|
-
remove(handlers.callbacks[eventType], callback);
|
|
728
|
-
} else {
|
|
729
|
-
while (handlers.callbacks[eventType].length > 0) {
|
|
730
|
-
handlers.callbacks[eventType].pop();
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
// free the array if empty
|
|
734
|
-
if (handlers.callbacks[eventType].length === 0) {
|
|
735
|
-
delete handlers.callbacks[eventType];
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
if (Object.keys(handlers.callbacks).length === 0) {
|
|
740
|
-
eventHandlers.delete(region);
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
/**
|
|
746
|
-
* allows the removal of all registered event listeners from the object target.
|
|
747
|
-
* @memberof input
|
|
748
|
-
* @param {Rect|Polygon|Line|Ellipse} region - the registered region to release event from
|
|
749
|
-
* @example
|
|
750
|
-
* // release all registered event on the
|
|
751
|
-
* me.input.releaseAllPointerEvents(this);
|
|
752
|
-
*/
|
|
753
|
-
export function releaseAllPointerEvents(region) {
|
|
754
|
-
if (eventHandlers.has(region)) {
|
|
755
|
-
for (let i = 0; i < pointerEventList.length; i++) {
|
|
756
|
-
releasePointerEvent(pointerEventList[i], region);
|
|
757
|
-
}
|
|
758
|
-
}
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
/**
|
|
762
|
-
* request for the pointer to be locked on the parent DOM element.
|
|
763
|
-
* (Must be called in a click event or an event that requires user interaction)
|
|
764
|
-
* @memberof input
|
|
765
|
-
* @returns {boolean} return true if the request was successfully submitted
|
|
766
|
-
* @example
|
|
767
|
-
* // register on the pointer lock change event
|
|
768
|
-
* event.on(event.POINTERLOCKCHANGE, (locked)=> {
|
|
769
|
-
* console.log("pointer lock: " + locked);
|
|
770
|
-
* });
|
|
771
|
-
* // request for pointer lock
|
|
772
|
-
* me.input.requestPointerLock();
|
|
773
|
-
*/
|
|
774
|
-
export function requestPointerLock() {
|
|
775
|
-
if (device.hasPointerLockSupport) {
|
|
776
|
-
let element = game.getParentElement();
|
|
777
|
-
element.requestPointerLock();
|
|
778
|
-
return true;
|
|
779
|
-
}
|
|
780
|
-
return false;
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
/**
|
|
784
|
-
* Initiates an exit from pointer lock state
|
|
785
|
-
* @memberof input
|
|
786
|
-
* @returns {boolean} return true if the request was successfully submitted
|
|
787
|
-
*/
|
|
788
|
-
export function exitPointerLock() {
|
|
789
|
-
if (device.hasPointerLockSupport) {
|
|
790
|
-
globalThis.document.exitPointerLock();
|
|
791
|
-
return true;
|
|
792
|
-
}
|
|
793
|
-
return false;
|
|
794
|
-
}
|