melonjs 14.5.0 → 15.1.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/LICENSE.md +1 -1
- package/README.md +6 -6
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +7 -3
- package/dist/melonjs.mjs/_virtual/index2.js +1 -1
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/application/application.js +27 -17
- package/dist/melonjs.mjs/application/header.js +6 -5
- package/dist/melonjs.mjs/application/resize.js +20 -20
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +18 -20
- package/dist/melonjs.mjs/camera/camera2d.js +10 -10
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +4 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +6 -6
- package/dist/melonjs.mjs/geometries/line.js +9 -9
- package/dist/melonjs.mjs/geometries/path2d.js +56 -56
- package/dist/melonjs.mjs/geometries/point.js +2 -2
- package/dist/melonjs.mjs/geometries/poly.js +29 -29
- package/dist/melonjs.mjs/geometries/rectangle.js +8 -8
- package/dist/melonjs.mjs/geometries/roundrect.js +6 -6
- package/dist/melonjs.mjs/index.js +8 -6
- package/dist/melonjs.mjs/input/gamepad.js +30 -30
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +15 -15
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +59 -59
- package/dist/melonjs.mjs/lang/console.js +3 -3
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +9 -9
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +31 -31
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +19 -19
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +15 -15
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +46 -41
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +30 -30
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +21 -21
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +10 -10
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +6 -6
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +7 -7
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parser.js +13 -13
- package/dist/melonjs.mjs/loader/settings.js +3 -3
- package/dist/melonjs.mjs/math/color.js +25 -24
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +22 -22
- package/dist/melonjs.mjs/math/matrix3.js +52 -52
- package/dist/melonjs.mjs/math/observable_vector2.js +12 -12
- package/dist/melonjs.mjs/math/observable_vector3.js +22 -22
- package/dist/melonjs.mjs/math/vector2.js +11 -11
- package/dist/melonjs.mjs/math/vector3.js +21 -21
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +45 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +130 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +5 -5
- package/dist/melonjs.mjs/particles/particle.js +8 -8
- package/dist/melonjs.mjs/particles/settings.js +3 -3
- package/dist/melonjs.mjs/physics/body.js +17 -17
- package/dist/melonjs.mjs/physics/bounds.js +12 -12
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +14 -14
- package/dist/melonjs.mjs/physics/quadtree.js +19 -19
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +60 -60
- package/dist/melonjs.mjs/physics/world.js +4 -4
- package/dist/melonjs.mjs/plugin/plugin.js +11 -11
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +77 -59
- package/dist/melonjs.mjs/renderable/dragndrop.js +5 -5
- package/dist/melonjs.mjs/renderable/imagelayer.js +7 -6
- package/dist/melonjs.mjs/renderable/light2d.js +6 -6
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +12 -12
- package/dist/melonjs.mjs/renderable/renderable.js +35 -13
- package/dist/melonjs.mjs/renderable/sprite.js +25 -25
- package/dist/melonjs.mjs/renderable/trigger.js +11 -9
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +97 -27
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +25 -25
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +83 -65
- package/dist/melonjs.mjs/state/stage.js +7 -7
- package/dist/melonjs.mjs/state/state.js +15 -15
- package/dist/melonjs.mjs/system/device.js +3 -3
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +9 -9
- package/dist/melonjs.mjs/system/save.js +6 -6
- package/dist/melonjs.mjs/system/timer.js +16 -12
- package/dist/melonjs.mjs/text/bitmaptext.js +20 -20
- package/dist/melonjs.mjs/text/bitmaptextdata.js +22 -22
- package/dist/melonjs.mjs/text/glyph.js +3 -3
- package/dist/melonjs.mjs/text/text.js +63 -92
- package/dist/melonjs.mjs/text/textmetrics.js +15 -15
- package/dist/melonjs.mjs/text/textstyle.js +4 -6
- package/dist/melonjs.mjs/tweens/easing.js +4 -4
- package/dist/melonjs.mjs/tweens/interpolation.js +8 -8
- package/dist/melonjs.mjs/tweens/tween.js +11 -11
- package/dist/melonjs.mjs/utils/agent.js +6 -6
- package/dist/melonjs.mjs/utils/array.js +4 -4
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +5 -5
- package/dist/melonjs.mjs/utils/string.js +3 -3
- package/dist/melonjs.mjs/utils/utils.js +16 -16
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +41 -119
- package/dist/melonjs.mjs/video/renderer.js +70 -14
- package/dist/melonjs.mjs/video/texture/atlas.js +39 -45
- package/dist/melonjs.mjs/video/texture/cache.js +9 -10
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +63 -3
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +2 -2
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +23 -19
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +80 -80
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +77 -0
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +252 -0
- package/dist/melonjs.mjs/video/webgl/compositors/webgl_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +7 -7
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +7 -7
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +4 -4
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +188 -181
- package/dist/melonjs.module.js +25040 -25193
- package/dist/types/application/application.d.ts +11 -8
- package/dist/types/audio/audio.d.ts +3 -3
- package/dist/types/entity/entity.d.ts +1 -1
- package/dist/types/index.d.ts +7 -4
- package/dist/types/input/input.d.ts +1 -1
- package/dist/types/input/keyboard.d.ts +1 -1
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/level.d.ts +2 -2
- package/dist/types/level/tiled/TMXLayer.d.ts +4 -4
- package/dist/types/level/tiled/TMXTileMap.d.ts +2 -2
- package/dist/types/level/tiled/TMXUtils.d.ts +5 -4
- package/dist/types/loader/loader.d.ts +2 -2
- package/dist/types/loader/settings.d.ts +2 -2
- package/dist/types/particles/emitter.d.ts +1 -1
- package/dist/types/physics/collision.d.ts +1 -1
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/plugin/plugin.d.ts +2 -2
- package/dist/types/renderable/container.d.ts +21 -17
- package/dist/types/renderable/renderable.d.ts +6 -0
- package/dist/types/renderable/sprite.d.ts +11 -11
- package/dist/types/renderable/trigger.d.ts +1 -1
- package/dist/types/renderable/ui/uibaseelement.d.ts +28 -6
- package/dist/types/renderable/ui/uispriteelement.d.ts +12 -14
- package/dist/types/renderable/ui/uitextbutton.d.ts +52 -12
- package/dist/types/state/stage.d.ts +1 -1
- package/dist/types/system/device.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +3 -3
- package/dist/types/system/timer.d.ts +5 -5
- package/dist/types/text/bitmaptext.d.ts +1 -1
- package/dist/types/text/text.d.ts +7 -21
- package/dist/types/text/textstyle.d.ts +1 -1
- package/dist/types/utils/array.d.ts +2 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +8 -81
- package/dist/types/video/renderer.d.ts +48 -4
- package/dist/types/video/texture/atlas.d.ts +3 -3
- package/dist/types/video/texture/canvas_texture.d.ts +40 -0
- package/dist/types/video/webgl/buffer/vertex.d.ts +3 -3
- package/dist/types/video/webgl/compositors/compositor.d.ts +38 -32
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +22 -0
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +72 -0
- package/dist/types/video/webgl/glshader.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +47 -37
- package/package.json +16 -17
- package/src/application/application.js +26 -16
- package/src/application/header.js +5 -4
- package/src/application/resize.js +19 -19
- package/src/audio/audio.js +17 -19
- package/src/camera/camera2d.js +9 -9
- package/src/entity/entity.js +3 -3
- package/src/geometries/ellipse.js +5 -5
- package/src/geometries/line.js +8 -8
- package/src/geometries/path2d.js +55 -55
- package/src/geometries/point.js +1 -1
- package/src/geometries/poly.js +28 -28
- package/src/geometries/rectangle.js +7 -7
- package/src/geometries/roundrect.js +5 -5
- package/src/index.js +9 -4
- package/src/input/gamepad.js +29 -29
- package/src/input/input.js +1 -1
- package/src/input/keyboard.js +14 -14
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +52 -52
- package/src/lang/console.js +2 -2
- package/src/lang/deprecated.js +1 -1
- package/src/level/level.js +8 -8
- package/src/level/tiled/TMXGroup.js +2 -2
- package/src/level/tiled/TMXLayer.js +30 -30
- package/src/level/tiled/TMXObject.js +7 -7
- package/src/level/tiled/TMXTile.js +7 -7
- package/src/level/tiled/TMXTileMap.js +18 -18
- package/src/level/tiled/TMXTileset.js +14 -14
- package/src/level/tiled/TMXTilesetGroup.js +2 -2
- package/src/level/tiled/TMXUtils.js +45 -40
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +29 -29
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +20 -20
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +9 -9
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +5 -5
- package/src/loader/loader.js +6 -6
- package/src/loader/loadingscreen.js +1 -1
- package/src/loader/parser.js +12 -12
- package/src/loader/settings.js +2 -2
- package/src/math/color.js +24 -23
- package/src/math/math.js +1 -1
- package/src/math/matrix2.js +21 -21
- package/src/math/matrix3.js +51 -51
- package/src/math/observable_vector2.js +11 -11
- package/src/math/observable_vector3.js +21 -21
- package/src/math/vector2.js +10 -10
- package/src/math/vector3.js +20 -20
- package/src/particles/emitter.js +4 -4
- package/src/particles/particle.js +7 -7
- package/src/particles/settings.js +2 -2
- package/src/physics/body.js +16 -16
- package/src/physics/bounds.js +11 -11
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +13 -13
- package/src/physics/quadtree.js +18 -18
- package/src/physics/sat.js +59 -59
- package/src/physics/world.js +3 -3
- package/src/plugin/plugin.js +8 -8
- package/src/polyfill/index.js +0 -2
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/container.js +76 -58
- package/src/renderable/dragndrop.js +4 -4
- package/src/renderable/imagelayer.js +6 -5
- package/src/renderable/light2d.js +5 -5
- package/src/renderable/nineslicesprite.js +11 -11
- package/src/renderable/renderable.js +34 -12
- package/src/renderable/sprite.js +24 -24
- package/src/renderable/trigger.js +10 -8
- package/src/renderable/ui/uibaseelement.js +96 -26
- package/src/renderable/ui/uispriteelement.js +24 -24
- package/src/renderable/ui/uitextbutton.js +85 -67
- package/src/state/stage.js +6 -6
- package/src/state/state.js +14 -14
- package/src/system/device.js +2 -2
- package/src/system/event.js +1 -1
- package/src/system/pooling.js +8 -8
- package/src/system/save.js +5 -5
- package/src/system/timer.js +15 -11
- package/src/text/bitmaptext.js +19 -19
- package/src/text/bitmaptextdata.js +21 -21
- package/src/text/glyph.js +2 -2
- package/src/text/text.js +62 -91
- package/src/text/textmetrics.js +14 -14
- package/src/text/textstyle.js +3 -5
- package/src/tweens/easing.js +3 -3
- package/src/tweens/interpolation.js +7 -7
- package/src/tweens/tween.js +10 -10
- package/src/utils/agent.js +5 -5
- package/src/utils/array.js +3 -3
- package/src/utils/function.js +4 -4
- package/src/utils/string.js +2 -2
- package/src/utils/utils.js +15 -15
- package/src/video/canvas/canvas_renderer.js +39 -117
- package/src/video/renderer.js +68 -12
- package/src/video/texture/atlas.js +38 -44
- package/src/video/texture/cache.js +6 -6
- package/src/video/texture/canvas_texture.js +62 -2
- package/src/video/video.js +1 -1
- package/src/video/webgl/buffer/vertex.js +22 -18
- package/src/video/webgl/compositors/compositor.js +79 -80
- package/src/video/webgl/compositors/primitive_compositor.js +68 -0
- package/src/video/webgl/compositors/{webgl_compositor.js → quad_compositor.js} +52 -109
- package/src/video/webgl/glshader.js +6 -6
- package/src/video/webgl/shaders/primitive.vert +2 -5
- package/src/video/webgl/shaders/quad.vert +3 -1
- package/src/video/webgl/utils/attributes.js +1 -1
- package/src/video/webgl/utils/program.js +6 -6
- package/src/video/webgl/utils/uniforms.js +3 -3
- package/src/video/webgl/webgl_renderer.js +186 -179
- package/dist/melonjs.mjs/_virtual/make-built-in.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-define-property.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +0 -10
- package/dist/melonjs.mjs/_virtual/shared.js +0 -10
- package/dist/melonjs.mjs/game.js +0 -29
- package/dist/melonjs.mjs/polyfill/console.js +0 -18
- package/dist/melonjs.mjs/polyfill/performance.js +0 -27
- package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +0 -46
- package/dist/melonjs.mjs/polyfill/roundrect.js +0 -242
- package/dist/melonjs.mjs/renderable/re_container.js +0 -1016
- package/dist/melonjs.mjs/video/utils/resize.js +0 -116
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +0 -494
- package/src/polyfill/performance.js +0 -20
- package/src/polyfill/requestAnimationFrame.js +0 -39
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v15.1.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -33,7 +33,7 @@ import Color from '../math/color.js';
|
|
|
33
33
|
* @param {Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] - Anchor point to draw the frame at (defaults to the center of the frame).
|
|
34
34
|
* @example
|
|
35
35
|
* // create a single sprite from a standalone image, with anchor in the center
|
|
36
|
-
*
|
|
36
|
+
* let sprite = new me.Sprite(0, 0, {
|
|
37
37
|
* image : "PlayerTexture",
|
|
38
38
|
* framewidth : 64,
|
|
39
39
|
* frameheight : 64,
|
|
@@ -41,12 +41,12 @@ import Color from '../math/color.js';
|
|
|
41
41
|
* });
|
|
42
42
|
*
|
|
43
43
|
* // create a single sprite from a packed texture
|
|
44
|
-
*
|
|
44
|
+
* mytexture = new me.TextureAtlas(
|
|
45
45
|
* me.loader.getJSON("texture"),
|
|
46
46
|
* me.loader.getImage("texture")
|
|
47
47
|
* );
|
|
48
|
-
*
|
|
49
|
-
* image :
|
|
48
|
+
* let sprite = new me.Sprite(0, 0, {
|
|
49
|
+
* image : mytexture,
|
|
50
50
|
* region : "npc2.png",
|
|
51
51
|
* });
|
|
52
52
|
*/
|
|
@@ -135,7 +135,7 @@ import Color from '../math/color.js';
|
|
|
135
135
|
// check for defined region
|
|
136
136
|
if (typeof (settings.region) !== "undefined") {
|
|
137
137
|
// use a texture atlas
|
|
138
|
-
|
|
138
|
+
let region = this.source.getRegion(settings.region);
|
|
139
139
|
if (region) {
|
|
140
140
|
// set the sprite region within the texture
|
|
141
141
|
this.setRegion(region);
|
|
@@ -230,7 +230,7 @@ import Color from '../math/color.js';
|
|
|
230
230
|
* // make the object flicker for 1 second
|
|
231
231
|
* // and then remove it
|
|
232
232
|
* this.flicker(1000, function () {
|
|
233
|
-
*
|
|
233
|
+
* world.removeChild(this);
|
|
234
234
|
* });
|
|
235
235
|
*/
|
|
236
236
|
flicker(duration, callback) {
|
|
@@ -288,7 +288,7 @@ import Color from '../math/color.js';
|
|
|
288
288
|
};
|
|
289
289
|
|
|
290
290
|
// # of frames
|
|
291
|
-
|
|
291
|
+
let counter = 0;
|
|
292
292
|
|
|
293
293
|
if (typeof (this.textureAtlas) !== "object") {
|
|
294
294
|
return 0;
|
|
@@ -304,9 +304,9 @@ import Color from '../math/color.js';
|
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
// set each frame configuration (offset, size, etc..)
|
|
307
|
-
for (
|
|
308
|
-
|
|
309
|
-
|
|
307
|
+
for (let i = 0, len = index.length; i < len; i++) {
|
|
308
|
+
let frame = index[i];
|
|
309
|
+
let frameObject;
|
|
310
310
|
if (typeof(frame) === "number" || typeof(frame) === "string") {
|
|
311
311
|
frameObject = {
|
|
312
312
|
name: frame,
|
|
@@ -316,7 +316,7 @@ import Color from '../math/color.js';
|
|
|
316
316
|
else {
|
|
317
317
|
frameObject = frame;
|
|
318
318
|
}
|
|
319
|
-
|
|
319
|
+
let frameObjectName = frameObject.name;
|
|
320
320
|
if (typeof(frameObjectName) === "number") {
|
|
321
321
|
if (typeof (this.textureAtlas[frameObjectName]) !== "undefined") {
|
|
322
322
|
// TODO: adding the cache source coordinates add undefined entries in webGL mode
|
|
@@ -369,13 +369,13 @@ import Color from '../math/color.js';
|
|
|
369
369
|
* this.setCurrentAnimation("eat", "walk");
|
|
370
370
|
*
|
|
371
371
|
* // set "die" animation, and remove the object when finished
|
|
372
|
-
* this.setCurrentAnimation("die", (
|
|
373
|
-
*
|
|
372
|
+
* this.setCurrentAnimation("die", () => {
|
|
373
|
+
* world.removeChild(this);
|
|
374
374
|
* return false; // do not reset to first frame
|
|
375
|
-
* })
|
|
375
|
+
* });
|
|
376
376
|
*
|
|
377
377
|
* // set "attack" animation, and pause for a short duration
|
|
378
|
-
* this.setCurrentAnimation("die", (
|
|
378
|
+
* this.setCurrentAnimation("die", () => {
|
|
379
379
|
* this.animationpause = true;
|
|
380
380
|
*
|
|
381
381
|
* // back to "standing" animation after 1 second
|
|
@@ -384,7 +384,7 @@ import Color from '../math/color.js';
|
|
|
384
384
|
* }, 1000);
|
|
385
385
|
*
|
|
386
386
|
* return false; // do not reset to first frame
|
|
387
|
-
* })
|
|
387
|
+
* });
|
|
388
388
|
*/
|
|
389
389
|
setCurrentAnimation(name, resetAnim, preserve_dt = false) {
|
|
390
390
|
if (typeof this.anim[name] !== "undefined") {
|
|
@@ -452,7 +452,7 @@ import Color from '../math/color.js';
|
|
|
452
452
|
* @returns {Sprite} Reference to this object for method chaining
|
|
453
453
|
* @example
|
|
454
454
|
* // change the sprite to "shadedDark13.png";
|
|
455
|
-
* mySprite.setRegion(
|
|
455
|
+
* mySprite.setRegion(mytexture.getRegion("shadedDark13.png"));
|
|
456
456
|
*/
|
|
457
457
|
setRegion(region) {
|
|
458
458
|
// set the source texture for the given region
|
|
@@ -526,13 +526,13 @@ import Color from '../math/color.js';
|
|
|
526
526
|
update(dt) {
|
|
527
527
|
// Update animation if necessary
|
|
528
528
|
if (!this.animationpause && this.current.length > 1) {
|
|
529
|
-
|
|
529
|
+
let duration = this.getAnimationFrameObjectByIndex(this.current.idx).delay;
|
|
530
530
|
this.dt += dt;
|
|
531
531
|
while (this.dt >= duration) {
|
|
532
532
|
this.isDirty = true;
|
|
533
533
|
this.dt -= duration;
|
|
534
534
|
|
|
535
|
-
|
|
535
|
+
let nextFrame = (this.current.length > 1 ? this.current.idx + 1 : this.current.idx);
|
|
536
536
|
this.setAnimationFrame(nextFrame);
|
|
537
537
|
|
|
538
538
|
// Switch animation if we reach the end of the strip and a callback is defined
|
|
@@ -595,18 +595,18 @@ import Color from '../math/color.js';
|
|
|
595
595
|
}
|
|
596
596
|
|
|
597
597
|
// the frame to draw
|
|
598
|
-
|
|
598
|
+
let frame = this.current;
|
|
599
599
|
|
|
600
600
|
// cache the current position and size
|
|
601
|
-
|
|
601
|
+
let xpos = this.pos.x,
|
|
602
602
|
ypos = this.pos.y;
|
|
603
603
|
|
|
604
|
-
|
|
604
|
+
let w = frame.width,
|
|
605
605
|
h = frame.height;
|
|
606
606
|
|
|
607
607
|
// frame offset in the texture/atlas
|
|
608
|
-
|
|
609
|
-
|
|
608
|
+
let frame_offset = frame.offset;
|
|
609
|
+
let g_offset = this.offset;
|
|
610
610
|
|
|
611
611
|
|
|
612
612
|
// remove image's TexturePacker/ShoeBox rotation
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v15.1.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -9,7 +9,6 @@ import Renderable from './renderable.js';
|
|
|
9
9
|
import collision from '../physics/collision.js';
|
|
10
10
|
import Body from '../physics/body.js';
|
|
11
11
|
import level from '../level/level.js';
|
|
12
|
-
import { game } from '../index.js';
|
|
13
12
|
import pool from '../system/pooling.js';
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -33,7 +32,7 @@ import pool from '../system/pooling.js';
|
|
|
33
32
|
* @param {boolean} [settings.flatten] - Flatten all objects into the target container. See {@link level.load}
|
|
34
33
|
* @param {boolean} [settings.setViewportBounds] - Resize the viewport to match the level. See {@link level.load}
|
|
35
34
|
* @example
|
|
36
|
-
*
|
|
35
|
+
* world.addChild(new me.Trigger(
|
|
37
36
|
* x, y, {
|
|
38
37
|
* shapes: [new me.Rect(0, 0, 100, 100)],
|
|
39
38
|
* "duration" : 250,
|
|
@@ -74,7 +73,7 @@ import pool from '../system/pooling.js';
|
|
|
74
73
|
});
|
|
75
74
|
|
|
76
75
|
// add and configure the physic body
|
|
77
|
-
|
|
76
|
+
let shape = settings.shapes;
|
|
78
77
|
if (typeof shape === "undefined") {
|
|
79
78
|
shape = pool.pull("Polygon", 0, 0, [
|
|
80
79
|
pool.pull("Vector2d", 0, 0),
|
|
@@ -94,9 +93,10 @@ import pool from '../system/pooling.js';
|
|
|
94
93
|
* @ignore
|
|
95
94
|
*/
|
|
96
95
|
getTriggerSettings() {
|
|
96
|
+
let world = this.ancestor.getRootAncestor();
|
|
97
97
|
// Lookup for the container instance
|
|
98
98
|
if (typeof(this.triggerSettings.container) === "string") {
|
|
99
|
-
this.triggerSettings.container =
|
|
99
|
+
this.triggerSettings.container = world.getChildByName(this.triggerSettings.container)[0];
|
|
100
100
|
}
|
|
101
101
|
return this.triggerSettings;
|
|
102
102
|
}
|
|
@@ -105,8 +105,9 @@ import pool from '../system/pooling.js';
|
|
|
105
105
|
* @ignore
|
|
106
106
|
*/
|
|
107
107
|
onFadeComplete() {
|
|
108
|
+
let world = this.ancestor.getRootAncestor();
|
|
108
109
|
level.load(this.gotolevel, this.getTriggerSettings());
|
|
109
|
-
|
|
110
|
+
world.app.viewport.fadeOut(this.fade, this.duration);
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
/**
|
|
@@ -116,7 +117,8 @@ import pool from '../system/pooling.js';
|
|
|
116
117
|
* @protected
|
|
117
118
|
*/
|
|
118
119
|
triggerEvent() {
|
|
119
|
-
|
|
120
|
+
let triggerSettings = this.getTriggerSettings();
|
|
121
|
+
let world = this.ancestor.getRootAncestor();
|
|
120
122
|
|
|
121
123
|
if (triggerSettings.event === "level") {
|
|
122
124
|
this.gotolevel = triggerSettings.to;
|
|
@@ -125,8 +127,8 @@ import pool from '../system/pooling.js';
|
|
|
125
127
|
if (this.fade && this.duration) {
|
|
126
128
|
if (!this.fading) {
|
|
127
129
|
this.fading = true;
|
|
128
|
-
|
|
129
|
-
this.onFadeComplete
|
|
130
|
+
world.app.viewport.fadeIn(this.fade, this.duration,
|
|
131
|
+
() => this.onFadeComplete());
|
|
130
132
|
}
|
|
131
133
|
} else {
|
|
132
134
|
level.load(this.gotolevel, triggerSettings);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v15.1.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import Container from '../container.js';
|
|
9
9
|
import timer from '../../system/timer.js';
|
|
10
|
+
import { on, POINTERMOVE, off } from '../../system/event.js';
|
|
11
|
+
import pool from '../../system/pooling.js';
|
|
10
12
|
import { registerPointerEvent, releasePointerEvent } from '../../input/pointerevent.js';
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* @classdesc
|
|
14
|
-
* This is a basic clickable container which you can use in your game UI.
|
|
15
|
-
* Use this for example if you want to display a
|
|
16
|
-
* text and images.
|
|
16
|
+
* This is a basic clickable and draggable container which you can use in your game UI.
|
|
17
|
+
* Use this for example if you want to display a panel that contains text, images or other UI elements.
|
|
17
18
|
* @augments Container
|
|
18
19
|
*/
|
|
19
20
|
class UIBaseElement extends Container {
|
|
@@ -21,17 +22,25 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
21
22
|
*
|
|
22
23
|
* @param {number} x - The x position of the container
|
|
23
24
|
* @param {number} y - The y position of the container
|
|
24
|
-
* @param {number} w - width of the container
|
|
25
|
-
* @param {number} h - height of the container
|
|
25
|
+
* @param {number} w - width of the container
|
|
26
|
+
* @param {number} h - height of the container
|
|
26
27
|
*/
|
|
27
28
|
constructor(x, y, w, h) {
|
|
28
29
|
super(x, y, w, h);
|
|
29
30
|
/**
|
|
30
31
|
* object can be clicked or not
|
|
31
32
|
* @type {boolean}
|
|
33
|
+
* @default true
|
|
32
34
|
*/
|
|
33
35
|
this.isClickable = true;
|
|
34
36
|
|
|
37
|
+
/**
|
|
38
|
+
* object can be clicked or not
|
|
39
|
+
* @type {boolean}
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
this.isDraggable = false;
|
|
43
|
+
|
|
35
44
|
/**
|
|
36
45
|
* Tap and hold threshold timeout in ms
|
|
37
46
|
* @type {number}
|
|
@@ -53,13 +62,25 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
53
62
|
*/
|
|
54
63
|
this.hover = false;
|
|
55
64
|
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
/**
|
|
66
|
+
* false if the pointer is down, or true when the pointer status is up
|
|
67
|
+
* @type {boolean}
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
58
70
|
this.released = true;
|
|
59
71
|
|
|
60
|
-
|
|
72
|
+
/**
|
|
73
|
+
* UI base elements use screen coordinates by default
|
|
74
|
+
* (Note: any child elements added to a UIBaseElement should set their floating property to false)
|
|
75
|
+
* @see Renderable.floating
|
|
76
|
+
* @type {boolean}
|
|
77
|
+
* @default true
|
|
78
|
+
*/
|
|
61
79
|
this.floating = true;
|
|
62
80
|
|
|
81
|
+
// object has been updated (clicked,etc..)
|
|
82
|
+
this.holdTimeout = -1;
|
|
83
|
+
|
|
63
84
|
// enable event detection
|
|
64
85
|
this.isKinematic = false;
|
|
65
86
|
}
|
|
@@ -74,16 +95,18 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
74
95
|
this.dirty = true;
|
|
75
96
|
this.released = false;
|
|
76
97
|
if (this.isHoldable) {
|
|
77
|
-
|
|
78
|
-
timer.clearTimeout(this.holdTimeout);
|
|
79
|
-
}
|
|
98
|
+
timer.clearTimeout(this.holdTimeout);
|
|
80
99
|
this.holdTimeout = timer.setTimeout(
|
|
81
|
-
this.hold
|
|
100
|
+
() => this.hold(),
|
|
82
101
|
this.holdThreshold,
|
|
83
102
|
false
|
|
84
103
|
);
|
|
85
104
|
this.released = false;
|
|
86
105
|
}
|
|
106
|
+
if (this.isDraggable) {
|
|
107
|
+
this.grabOffset.set(event.gameX, event.gameY);
|
|
108
|
+
this.grabOffset.sub(this.pos);
|
|
109
|
+
}
|
|
87
110
|
return this.onClick(event);
|
|
88
111
|
}
|
|
89
112
|
}
|
|
@@ -104,9 +127,37 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
104
127
|
enter(event) {
|
|
105
128
|
this.hover = true;
|
|
106
129
|
this.dirty = true;
|
|
130
|
+
if (this.isDraggable === true) {
|
|
131
|
+
on(POINTERMOVE, this.pointerMove, this);
|
|
132
|
+
// to memorize where we grab the object
|
|
133
|
+
this.grabOffset = pool.pull("Vector2d", 0, 0);
|
|
134
|
+
}
|
|
107
135
|
return this.onOver(event);
|
|
108
136
|
}
|
|
109
137
|
|
|
138
|
+
/**
|
|
139
|
+
* pointermove function
|
|
140
|
+
* @ignore
|
|
141
|
+
*/
|
|
142
|
+
pointerMove(event) {
|
|
143
|
+
if (this.hover === true && this.released === false) {
|
|
144
|
+
// follow the pointer
|
|
145
|
+
this.pos.set(event.gameX, event.gameY, this.pos.z);
|
|
146
|
+
this.pos.sub(this.grabOffset);
|
|
147
|
+
// mark the container for redraw
|
|
148
|
+
this.isDirty = true;
|
|
149
|
+
return this.onMove(event);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* function called when the pointer is moved over the object
|
|
155
|
+
* @param {Pointer} event - the event object
|
|
156
|
+
*/
|
|
157
|
+
onMove(event) { // eslint-disable-line no-unused-vars
|
|
158
|
+
// to be extended
|
|
159
|
+
}
|
|
160
|
+
|
|
110
161
|
/**
|
|
111
162
|
* function called when the pointer is over the object
|
|
112
163
|
* @param {Pointer} event - the event object
|
|
@@ -122,6 +173,12 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
122
173
|
leave(event) {
|
|
123
174
|
this.hover = false;
|
|
124
175
|
this.dirty = true;
|
|
176
|
+
if (this.isDraggable === true) {
|
|
177
|
+
// unregister on the global pointermove event
|
|
178
|
+
off(POINTERMOVE, this.pointerMove);
|
|
179
|
+
pool.push(this.grabOffset);
|
|
180
|
+
this.grabOffset = undefined;
|
|
181
|
+
}
|
|
125
182
|
this.release(event);
|
|
126
183
|
return this.onOut(event);
|
|
127
184
|
}
|
|
@@ -143,6 +200,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
143
200
|
this.released = true;
|
|
144
201
|
this.dirty = true;
|
|
145
202
|
timer.clearTimeout(this.holdTimeout);
|
|
203
|
+
this.holdTimeout = -1;
|
|
146
204
|
return this.onRelease(event);
|
|
147
205
|
}
|
|
148
206
|
}
|
|
@@ -161,6 +219,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
161
219
|
*/
|
|
162
220
|
hold() {
|
|
163
221
|
timer.clearTimeout(this.holdTimeout);
|
|
222
|
+
this.holdTimeout = -1;
|
|
164
223
|
this.dirty = true;
|
|
165
224
|
if (!this.released) {
|
|
166
225
|
this.onHold();
|
|
@@ -179,19 +238,14 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
179
238
|
*/
|
|
180
239
|
onActivateEvent() {
|
|
181
240
|
// register pointer events
|
|
182
|
-
registerPointerEvent(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
this,
|
|
191
|
-
this.release.bind(this)
|
|
192
|
-
);
|
|
193
|
-
registerPointerEvent("pointerenter", this, this.enter.bind(this));
|
|
194
|
-
registerPointerEvent("pointerleave", this, this.leave.bind(this));
|
|
241
|
+
registerPointerEvent("pointerdown", this, (e) => this.clicked(e));
|
|
242
|
+
registerPointerEvent("pointerup", this, (e) => this.release(e));
|
|
243
|
+
registerPointerEvent("pointercancel", this, (e) => this.release(e));
|
|
244
|
+
registerPointerEvent("pointerenter", this, (e) => this.enter(e));
|
|
245
|
+
registerPointerEvent("pointerleave", this, (e) => this.leave(e));
|
|
246
|
+
|
|
247
|
+
// call the parent function
|
|
248
|
+
super.onActivateEvent();
|
|
195
249
|
}
|
|
196
250
|
|
|
197
251
|
/**
|
|
@@ -200,12 +254,28 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
200
254
|
*/
|
|
201
255
|
onDeactivateEvent() {
|
|
202
256
|
// release pointer events
|
|
203
|
-
releasePointerEvent("pointerdown", this
|
|
257
|
+
releasePointerEvent("pointerdown", this);
|
|
204
258
|
releasePointerEvent("pointerup", this);
|
|
205
259
|
releasePointerEvent("pointercancel", this);
|
|
206
260
|
releasePointerEvent("pointerenter", this);
|
|
207
261
|
releasePointerEvent("pointerleave", this);
|
|
208
262
|
timer.clearTimeout(this.holdTimeout);
|
|
263
|
+
this.holdTimeout = -1;
|
|
264
|
+
|
|
265
|
+
// unregister on the global pointermove event
|
|
266
|
+
// note: this is just a precaution, in case
|
|
267
|
+
// the object is being remove from his parent
|
|
268
|
+
// container before the leave function is called
|
|
269
|
+
if (this.isDraggable === true) {
|
|
270
|
+
off(POINTERMOVE, this.pointerMove);
|
|
271
|
+
if (typeof this.grabOffset !== "undefined") {
|
|
272
|
+
pool.push(this.grabOffset);
|
|
273
|
+
this.grabOffset = undefined;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// call the parent function
|
|
278
|
+
super.onDeactivateEvent();
|
|
209
279
|
}
|
|
210
280
|
}
|
|
211
281
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v15.1.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -11,31 +11,29 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @classdesc
|
|
14
|
-
*
|
|
14
|
+
* This is a basic sprite based button which you can use in your Game UI.
|
|
15
15
|
* @augments Sprite
|
|
16
16
|
*/
|
|
17
17
|
class UISpriteElement extends Sprite {
|
|
18
18
|
/**
|
|
19
|
-
* @param {number} x - the x coordinate of the
|
|
20
|
-
* @param {number} y - the y coordinate of the
|
|
19
|
+
* @param {number} x - the x coordinate of the UISpriteElement Object
|
|
20
|
+
* @param {number} y - the y coordinate of the UISpriteElement Object
|
|
21
21
|
* @param {object} settings - See {@link Sprite}
|
|
22
22
|
* @example
|
|
23
23
|
* // create a basic GUI Object
|
|
24
24
|
* class myButton extends UISpriteElement {
|
|
25
25
|
* constructor(x, y) {
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* // define the object z order
|
|
33
|
-
* this.pos.z = 4;
|
|
26
|
+
* // call the UISpriteElement parent constructor
|
|
27
|
+
* super(x, y, {
|
|
28
|
+
* image: "button",
|
|
29
|
+
* framewidth: 100,
|
|
30
|
+
* frameheight: 50
|
|
31
|
+
* });
|
|
34
32
|
* }
|
|
35
33
|
*
|
|
36
34
|
* // output something in the console
|
|
37
35
|
* // when the object is clicked
|
|
38
|
-
* onClick
|
|
36
|
+
* onClick(event) {
|
|
39
37
|
* console.log("clicked!");
|
|
40
38
|
* // don't propagate the event
|
|
41
39
|
* return false;
|
|
@@ -43,7 +41,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
43
41
|
* });
|
|
44
42
|
*
|
|
45
43
|
* // add the object at pos (10,10)
|
|
46
|
-
*
|
|
44
|
+
* world.addChild(new myButton(10,10));
|
|
47
45
|
*/
|
|
48
46
|
constructor(x, y, settings) {
|
|
49
47
|
|
|
@@ -79,7 +77,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
79
77
|
this.hover = false;
|
|
80
78
|
|
|
81
79
|
// object has been updated (clicked,etc..)
|
|
82
|
-
this.holdTimeout =
|
|
80
|
+
this.holdTimeout = -1;
|
|
83
81
|
this.released = true;
|
|
84
82
|
|
|
85
83
|
// GUI items use screen coordinates
|
|
@@ -99,10 +97,8 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
99
97
|
this.dirty = true;
|
|
100
98
|
this.released = false;
|
|
101
99
|
if (this.isHoldable) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
this.holdTimeout = timer.setTimeout(this.hold.bind(this), this.holdThreshold, false);
|
|
100
|
+
timer.clearTimeout(this.holdTimeout);
|
|
101
|
+
this.holdTimeout = timer.setTimeout(() => this.hold(), this.holdThreshold, false);
|
|
106
102
|
this.released = false;
|
|
107
103
|
}
|
|
108
104
|
return this.onClick(event);
|
|
@@ -164,6 +160,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
164
160
|
this.released = true;
|
|
165
161
|
this.dirty = true;
|
|
166
162
|
timer.clearTimeout(this.holdTimeout);
|
|
163
|
+
this.holdTimeout = -1;
|
|
167
164
|
return this.onRelease(event);
|
|
168
165
|
}
|
|
169
166
|
}
|
|
@@ -182,6 +179,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
182
179
|
*/
|
|
183
180
|
hold() {
|
|
184
181
|
timer.clearTimeout(this.holdTimeout);
|
|
182
|
+
this.holdTimeout = -1;
|
|
185
183
|
this.dirty = true;
|
|
186
184
|
if (!this.released) {
|
|
187
185
|
this.onHold();
|
|
@@ -192,7 +190,8 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
192
190
|
* function called when the object is pressed and held<br>
|
|
193
191
|
* to be extended <br>
|
|
194
192
|
*/
|
|
195
|
-
onHold() {
|
|
193
|
+
onHold() {
|
|
194
|
+
}
|
|
196
195
|
|
|
197
196
|
/**
|
|
198
197
|
* function called when added to the game world or a container
|
|
@@ -200,11 +199,11 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
200
199
|
*/
|
|
201
200
|
onActivateEvent() {
|
|
202
201
|
// register pointer events
|
|
203
|
-
registerPointerEvent("pointerdown", this, this.clicked
|
|
204
|
-
registerPointerEvent("pointerup", this, this.release
|
|
205
|
-
registerPointerEvent("pointercancel", this, this.release
|
|
206
|
-
registerPointerEvent("pointerenter", this, this.enter
|
|
207
|
-
registerPointerEvent("pointerleave", this, this.leave
|
|
202
|
+
registerPointerEvent("pointerdown", this, (e) => this.clicked(e));
|
|
203
|
+
registerPointerEvent("pointerup", this, (e) => this.release(e));
|
|
204
|
+
registerPointerEvent("pointercancel", this, (e) => this.release(e));
|
|
205
|
+
registerPointerEvent("pointerenter", this, (e) => this.enter(e));
|
|
206
|
+
registerPointerEvent("pointerleave", this, (e) => this.leave(e));
|
|
208
207
|
}
|
|
209
208
|
|
|
210
209
|
/**
|
|
@@ -219,6 +218,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
|
|
|
219
218
|
releasePointerEvent("pointerenter", this);
|
|
220
219
|
releasePointerEvent("pointerleave", this);
|
|
221
220
|
timer.clearTimeout(this.holdTimeout);
|
|
221
|
+
this.holdTimeout = -1;
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
|