melonjs 15.0.0 → 15.1.1
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/README.md +4 -4
- 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 +17 -17
- 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 +53 -53
- 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 +5 -5
- 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 +58 -58
- 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 +21 -21
- 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 +107 -63
- 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 +11 -11
- 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 -63
- 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 +2 -2
- 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 +10 -9
- package/dist/melonjs.mjs/text/textmetrics.js +15 -15
- package/dist/melonjs.mjs/text/textstyle.js +1 -1
- 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 +35 -109
- package/dist/melonjs.mjs/video/renderer.js +74 -7
- package/dist/melonjs.mjs/video/texture/atlas.js +37 -37
- 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 +3 -3
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +18 -15
- 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 +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- 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 +55 -38
- package/dist/melonjs.module.js +1777 -1813
- package/dist/types/application/application.d.ts +11 -8
- package/dist/types/audio/audio.d.ts +3 -3
- package/dist/types/index.d.ts +4 -3
- 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/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 -11
- 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 +1 -1
- package/dist/types/utils/array.d.ts +2 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +8 -76
- package/dist/types/video/renderer.d.ts +48 -0
- 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/glshader.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +13 -9
- package/package.json +14 -14
- 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 +16 -16
- 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 +52 -52
- 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 +3 -2
- 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 +20 -20
- 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/renderable/collectable.js +1 -1
- package/src/renderable/container.js +106 -62
- 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 +10 -10
- 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 -65
- package/src/state/stage.js +6 -6
- package/src/state/state.js +14 -14
- package/src/system/device.js +1 -1
- 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 +9 -8
- package/src/text/textmetrics.js +14 -14
- 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 +34 -108
- package/src/video/renderer.js +72 -5
- package/src/video/texture/atlas.js +36 -36
- 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 +2 -2
- package/src/video/webgl/compositors/compositor.js +4 -4
- package/src/video/webgl/compositors/primitive_compositor.js +4 -4
- package/src/video/webgl/compositors/quad_compositor.js +17 -14
- package/src/video/webgl/glshader.js +6 -6
- 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 +54 -37
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
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,7 @@ import { getBindingKey, triggerKeyEvent } from './keyboard.js';
|
|
|
9
9
|
import { emit, GAMEPAD_CONNECTED, GAMEPAD_DISCONNECTED, on, GAME_BEFORE_UPDATE, GAMEPAD_UPDATE } from '../system/event.js';
|
|
10
10
|
|
|
11
11
|
// Analog deadzone
|
|
12
|
-
|
|
12
|
+
let deadzone = 0.1;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Normalize axis values for wired Xbox 360
|
|
@@ -47,10 +47,10 @@ function ouyaNormalizeFn(value, axis, button) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
// Match vendor and product codes for Firefox
|
|
50
|
-
|
|
50
|
+
const vendorProductRE = /^([0-9a-f]{1,4})-([0-9a-f]{1,4})-/i;
|
|
51
51
|
|
|
52
52
|
// Match leading zeros
|
|
53
|
-
|
|
53
|
+
const leadingZeroRE = /^0+/;
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* Firefox reports different ids for gamepads depending on the platform:
|
|
@@ -61,11 +61,11 @@ var leadingZeroRE = /^0+/;
|
|
|
61
61
|
* @ignore
|
|
62
62
|
*/
|
|
63
63
|
function addMapping(id, mapping) {
|
|
64
|
-
|
|
64
|
+
const expanded_id = id.replace(vendorProductRE, (_, a, b) =>
|
|
65
65
|
"000".slice(a.length - 1) + a + "-" +
|
|
66
66
|
"000".slice(b.length - 1) + b + "-"
|
|
67
67
|
);
|
|
68
|
-
|
|
68
|
+
const sparse_id = id.replace(vendorProductRE, (_, a, b) =>
|
|
69
69
|
a.replace(leadingZeroRE, "") + "-" +
|
|
70
70
|
b.replace(leadingZeroRE, "") + "-"
|
|
71
71
|
);
|
|
@@ -79,12 +79,12 @@ function addMapping(id, mapping) {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
// binding list
|
|
82
|
-
|
|
82
|
+
let bindings = {};
|
|
83
83
|
|
|
84
84
|
// mapping list
|
|
85
|
-
|
|
85
|
+
let remap = new Map();
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
let updateEventHandler;
|
|
88
88
|
|
|
89
89
|
// Default gamepad mappings
|
|
90
90
|
[
|
|
@@ -140,28 +140,28 @@ var updateEventHandler;
|
|
|
140
140
|
* Update gamepad status
|
|
141
141
|
* @ignore
|
|
142
142
|
*/
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
let updateGamepads = function () {
|
|
144
|
+
let gamepads = navigator.getGamepads();
|
|
145
145
|
|
|
146
146
|
// Trigger button bindings
|
|
147
147
|
Object.keys(bindings).forEach((index) => {
|
|
148
|
-
|
|
148
|
+
let gamepad = gamepads[index];
|
|
149
149
|
if (!gamepad) {
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
let mapping = null;
|
|
154
154
|
if (gamepad.mapping !== "standard") {
|
|
155
155
|
mapping = remap.get(gamepad.id);
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
let binding = bindings[index];
|
|
159
159
|
|
|
160
160
|
// Iterate all buttons that have active bindings
|
|
161
161
|
Object.keys(binding.buttons).forEach((button) => {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
let last = binding.buttons[button];
|
|
163
|
+
let mapped_button = button;
|
|
164
|
+
let mapped_axis = -1;
|
|
165
165
|
|
|
166
166
|
// Remap buttons if necessary
|
|
167
167
|
if (mapping) {
|
|
@@ -174,12 +174,12 @@ var updateGamepads = function () {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
// Get mapped button
|
|
177
|
-
|
|
177
|
+
let current = gamepad.buttons[mapped_button] || {};
|
|
178
178
|
|
|
179
179
|
// Remap an axis to an analog button
|
|
180
180
|
if (mapping) {
|
|
181
181
|
if (mapped_axis >= 0) {
|
|
182
|
-
|
|
182
|
+
let value = mapping.normalize_fn(gamepad.axes[mapped_axis], -1, +button);
|
|
183
183
|
|
|
184
184
|
// Create a new object, because GamepadButton is read-only
|
|
185
185
|
current = {
|
|
@@ -206,8 +206,8 @@ var updateGamepads = function () {
|
|
|
206
206
|
|
|
207
207
|
// Iterate all axes that have active bindings
|
|
208
208
|
Object.keys(binding.axes).forEach((axis) => {
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
let last = binding.axes[axis];
|
|
210
|
+
let mapped_axis = axis;
|
|
211
211
|
|
|
212
212
|
// Remap buttons if necessary
|
|
213
213
|
if (mapping) {
|
|
@@ -219,7 +219,7 @@ var updateGamepads = function () {
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
// retrieve the current value and normalize if necessary
|
|
222
|
-
|
|
222
|
+
let value = gamepad.axes[mapped_axis];
|
|
223
223
|
if (typeof(value) === "undefined") {
|
|
224
224
|
return;
|
|
225
225
|
}
|
|
@@ -227,11 +227,11 @@ var updateGamepads = function () {
|
|
|
227
227
|
value = mapping.normalize_fn(value, +axis, -1);
|
|
228
228
|
}
|
|
229
229
|
// normalize value into a [-1, 1] range value (treat 0 as positive)
|
|
230
|
-
|
|
230
|
+
let range = Math.sign(value) || 1;
|
|
231
231
|
if (last[range].keyCode === 0) {
|
|
232
232
|
return;
|
|
233
233
|
}
|
|
234
|
-
|
|
234
|
+
let pressed = (Math.abs(value) >= (deadzone + Math.abs(last[range].threshold)));
|
|
235
235
|
|
|
236
236
|
emit(GAMEPAD_UPDATE, index, "axes", +axis, value);
|
|
237
237
|
|
|
@@ -282,7 +282,7 @@ if (globalThis.navigator && typeof globalThis.navigator.getGamepads === "functio
|
|
|
282
282
|
* @namespace GAMEPAD
|
|
283
283
|
* @memberof input
|
|
284
284
|
*/
|
|
285
|
-
|
|
285
|
+
let GAMEPAD = {
|
|
286
286
|
/**
|
|
287
287
|
* Standard gamepad mapping information for axes<br>
|
|
288
288
|
* <ul>
|
|
@@ -390,13 +390,13 @@ function bindGamepad(index, button, keyCode) {
|
|
|
390
390
|
};
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
-
|
|
393
|
+
let mapping = {
|
|
394
394
|
"keyCode" : keyCode,
|
|
395
395
|
"value" : 0,
|
|
396
396
|
"pressed" : false,
|
|
397
397
|
"threshold" : button.threshold // can be undefined
|
|
398
398
|
};
|
|
399
|
-
|
|
399
|
+
let binding = bindings[index][button.type];
|
|
400
400
|
|
|
401
401
|
// Map the gamepad button or axis to the keycode
|
|
402
402
|
if (button.type === "buttons") {
|
|
@@ -404,12 +404,12 @@ function bindGamepad(index, button, keyCode) {
|
|
|
404
404
|
binding[button.code] = mapping;
|
|
405
405
|
} else if (button.type === "axes") {
|
|
406
406
|
// normalize threshold into a value that can represent both side of the axis
|
|
407
|
-
|
|
407
|
+
let range = (Math.sign(button.threshold) || 1);
|
|
408
408
|
// axes are defined using two objects; one for negative and one for positive
|
|
409
409
|
if (!binding[button.code]) {
|
|
410
410
|
binding[button.code] = {};
|
|
411
411
|
}
|
|
412
|
-
|
|
412
|
+
let axes = binding[button.code];
|
|
413
413
|
axes[range] = mapping;
|
|
414
414
|
|
|
415
415
|
// Ensure the opposite axis exists
|
|
@@ -490,6 +490,6 @@ function setGamepadDeadzone(value) {
|
|
|
490
490
|
* }
|
|
491
491
|
* });
|
|
492
492
|
*/
|
|
493
|
-
|
|
493
|
+
let setGamepadMapping = addMapping;
|
|
494
494
|
|
|
495
495
|
export { GAMEPAD, bindGamepad, setGamepadDeadzone, setGamepadMapping, unbindGamepad };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -21,6 +21,6 @@ export { GAMEPAD, bindGamepad, setGamepadDeadzone, setGamepadMapping, unbindGame
|
|
|
21
21
|
* @name preventDefault
|
|
22
22
|
* @memberof input
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
let preventDefault = true;
|
|
25
25
|
|
|
26
26
|
export { preventDefault };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -10,30 +10,30 @@ import { emit, KEYDOWN, KEYUP } from '../system/event.js';
|
|
|
10
10
|
import { isMobile } from '../system/platform.js';
|
|
11
11
|
|
|
12
12
|
// corresponding actions
|
|
13
|
-
|
|
13
|
+
let _keyStatus = {};
|
|
14
14
|
|
|
15
15
|
// lock enable flag for keys
|
|
16
|
-
|
|
16
|
+
let _keyLock = {};
|
|
17
17
|
// actual lock status of each key
|
|
18
|
-
|
|
18
|
+
let _keyLocked = {};
|
|
19
19
|
|
|
20
20
|
// List of binded keys being held
|
|
21
|
-
|
|
21
|
+
let _keyRefs = {};
|
|
22
22
|
|
|
23
23
|
// whether default event should be prevented for a given keypress
|
|
24
|
-
|
|
24
|
+
let _preventDefaultForKeys = {};
|
|
25
25
|
|
|
26
26
|
// list of binded keys
|
|
27
|
-
|
|
27
|
+
let _keyBindings = {};
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* key down event
|
|
31
31
|
* @ignore
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
let keyDownEvent = function (e, keyCode, mouseButton) {
|
|
34
34
|
|
|
35
35
|
keyCode = keyCode || e.keyCode || e.button;
|
|
36
|
-
|
|
36
|
+
let action = _keyBindings[keyCode];
|
|
37
37
|
|
|
38
38
|
// publish a message for keydown event
|
|
39
39
|
emit(KEYDOWN,
|
|
@@ -44,7 +44,7 @@ var keyDownEvent = function (e, keyCode, mouseButton) {
|
|
|
44
44
|
|
|
45
45
|
if (action) {
|
|
46
46
|
if (!_keyLocked[action]) {
|
|
47
|
-
|
|
47
|
+
let trigger = (typeof mouseButton !== "undefined") ? mouseButton : keyCode;
|
|
48
48
|
if (!_keyRefs[action][trigger]) {
|
|
49
49
|
_keyStatus[action]++;
|
|
50
50
|
_keyRefs[action][trigger] = true;
|
|
@@ -68,15 +68,15 @@ var keyDownEvent = function (e, keyCode, mouseButton) {
|
|
|
68
68
|
* key up event
|
|
69
69
|
* @ignore
|
|
70
70
|
*/
|
|
71
|
-
|
|
71
|
+
let keyUpEvent = function (e, keyCode, mouseButton) {
|
|
72
72
|
keyCode = keyCode || e.keyCode || e.button;
|
|
73
|
-
|
|
73
|
+
let action = _keyBindings[keyCode];
|
|
74
74
|
|
|
75
75
|
// publish a message for keydown event
|
|
76
76
|
emit(KEYUP, action, keyCode);
|
|
77
77
|
|
|
78
78
|
if (action) {
|
|
79
|
-
|
|
79
|
+
let trigger = (typeof mouseButton !== "undefined") ? mouseButton : keyCode;
|
|
80
80
|
_keyRefs[action][trigger] = undefined;
|
|
81
81
|
|
|
82
82
|
if (_keyStatus[action] > 0) {
|
|
@@ -109,7 +109,7 @@ var keyUpEvent = function (e, keyCode, mouseButton) {
|
|
|
109
109
|
* @name keyBoardEventTarget
|
|
110
110
|
* @memberof input
|
|
111
111
|
*/
|
|
112
|
-
|
|
112
|
+
let keyBoardEventTarget = null;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* standard keyboard constants
|
|
@@ -458,7 +458,7 @@ function unlockKey(action) {
|
|
|
458
458
|
*/
|
|
459
459
|
function unbindKey(keycode) {
|
|
460
460
|
// clear the event status
|
|
461
|
-
|
|
461
|
+
let keybinding = _keyBindings[keycode];
|
|
462
462
|
_keyStatus[keybinding] = 0;
|
|
463
463
|
_keyLock[keybinding] = false;
|
|
464
464
|
_keyRefs[keybinding] = {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -14,7 +14,7 @@ import { globalToLocal, locked } from './pointerevent.js';
|
|
|
14
14
|
* a temporary vector object
|
|
15
15
|
* @ignore
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
let tmpVec = new Vector2d();
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @classdesc
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -23,22 +23,22 @@ import { game } from '../index.js';
|
|
|
23
23
|
* @type {Array.<Vector2d>}
|
|
24
24
|
* @ignore
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
let T_POINTERS = [];
|
|
27
27
|
|
|
28
28
|
// list of registered Event handlers
|
|
29
|
-
|
|
29
|
+
let eventHandlers = new Map();
|
|
30
30
|
|
|
31
31
|
// a cache rect represeting the current pointer area
|
|
32
|
-
|
|
32
|
+
let currentPointer;
|
|
33
33
|
|
|
34
34
|
// some useful flags
|
|
35
|
-
|
|
35
|
+
let pointerInitialized = false;
|
|
36
36
|
|
|
37
37
|
// Track last event timestamp to prevent firing events out of order
|
|
38
|
-
|
|
38
|
+
let lastTimeStamp = 0;
|
|
39
39
|
|
|
40
40
|
// "active" list of supported events
|
|
41
|
-
|
|
41
|
+
let activeEventList = [];
|
|
42
42
|
|
|
43
43
|
// internal constants
|
|
44
44
|
const WHEEL = ["wheel"];
|
|
@@ -100,14 +100,14 @@ const pointerEventMap = {
|
|
|
100
100
|
* Array of normalized events (mouse, touch, pointer)
|
|
101
101
|
* @ignore
|
|
102
102
|
*/
|
|
103
|
-
|
|
103
|
+
let normalizedEvents = [];
|
|
104
104
|
|
|
105
105
|
/**
|
|
106
106
|
* addEventListerner for the specified event list and callback
|
|
107
107
|
* @ignore
|
|
108
108
|
*/
|
|
109
109
|
function registerEventListener(eventList, callback) {
|
|
110
|
-
for (
|
|
110
|
+
for (let x = 0; x < eventList.length; x++) {
|
|
111
111
|
if (POINTER_MOVE.indexOf(eventList[x]) === -1) {
|
|
112
112
|
pointerEventTarget.addEventListener(eventList[x], callback, { passive: (preventDefault === false) });
|
|
113
113
|
}
|
|
@@ -125,7 +125,7 @@ function enablePointerEvent() {
|
|
|
125
125
|
currentPointer = new Rect(0, 0, 1, 1);
|
|
126
126
|
|
|
127
127
|
// instantiate a pool of pointer catched
|
|
128
|
-
for (
|
|
128
|
+
for (let v = 0; v < maxTouchPoints; v++) {
|
|
129
129
|
T_POINTERS.push(new Pointer());
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -165,8 +165,8 @@ function enablePointerEvent() {
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
// if time interval <= 16, disable the feature
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
let i;
|
|
169
|
+
let events = findAllActiveEvents(activeEventList, POINTER_MOVE);
|
|
170
170
|
if (throttlingInterval < 17) {
|
|
171
171
|
for (i = 0; i < events.length; i++) {
|
|
172
172
|
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
@@ -216,8 +216,8 @@ function enablePointerEvent() {
|
|
|
216
216
|
* @ignore
|
|
217
217
|
*/
|
|
218
218
|
function findActiveEvent(activeEventList, eventTypes) {
|
|
219
|
-
for (
|
|
220
|
-
|
|
219
|
+
for (let i = 0; i < eventTypes.length; i++) {
|
|
220
|
+
let event = activeEventList.indexOf(eventTypes[i]);
|
|
221
221
|
if (event !== -1) {
|
|
222
222
|
return eventTypes[i];
|
|
223
223
|
}
|
|
@@ -228,9 +228,9 @@ function findActiveEvent(activeEventList, eventTypes) {
|
|
|
228
228
|
* @ignore
|
|
229
229
|
*/
|
|
230
230
|
function findAllActiveEvents(activeEventList, eventTypes) {
|
|
231
|
-
|
|
232
|
-
for (
|
|
233
|
-
|
|
231
|
+
let events = [];
|
|
232
|
+
for (let i = 0; i < eventTypes.length; i++) {
|
|
233
|
+
let event = activeEventList.indexOf(eventTypes[i]);
|
|
234
234
|
if (event !== -1) {
|
|
235
235
|
events.push(eventTypes[i]);
|
|
236
236
|
}
|
|
@@ -243,10 +243,10 @@ function findAllActiveEvents(activeEventList, eventTypes) {
|
|
|
243
243
|
* @ignore
|
|
244
244
|
*/
|
|
245
245
|
function triggerEvent(handlers, type, pointer, pointerId) {
|
|
246
|
-
|
|
246
|
+
let callback;
|
|
247
247
|
if (handlers.callbacks[type]) {
|
|
248
248
|
handlers.pointerId = pointerId;
|
|
249
|
-
for (
|
|
249
|
+
for (let i = handlers.callbacks[type].length - 1; (i >= 0) && (callback = handlers.callbacks[type][i]); i--) {
|
|
250
250
|
if (callback(pointer) === false) {
|
|
251
251
|
// stop propagating the event if return false
|
|
252
252
|
return true;
|
|
@@ -261,12 +261,12 @@ function triggerEvent(handlers, type, pointer, pointerId) {
|
|
|
261
261
|
* @ignore
|
|
262
262
|
*/
|
|
263
263
|
function dispatchEvent(normalizedEvents) {
|
|
264
|
-
|
|
264
|
+
let handled = false;
|
|
265
265
|
|
|
266
266
|
while (normalizedEvents.length > 0) {
|
|
267
267
|
|
|
268
268
|
// keep a reference to the last item
|
|
269
|
-
|
|
269
|
+
let pointer = normalizedEvents.pop();
|
|
270
270
|
// and put it back into our cache
|
|
271
271
|
T_POINTERS.push(pointer);
|
|
272
272
|
|
|
@@ -293,18 +293,18 @@ function dispatchEvent(normalizedEvents) {
|
|
|
293
293
|
}
|
|
294
294
|
|
|
295
295
|
// fetch valid candiates from the game world container
|
|
296
|
-
|
|
296
|
+
let candidates = game.world.broadphase.retrieve(currentPointer, game.world._sortReverseZ);
|
|
297
297
|
|
|
298
298
|
// add the main game viewport to the list of candidates
|
|
299
299
|
candidates = candidates.concat([ game.viewport ]);
|
|
300
300
|
|
|
301
|
-
for (
|
|
301
|
+
for (let c = candidates.length, candidate; c--, (candidate = candidates[c]);) {
|
|
302
302
|
if (eventHandlers.has(candidate) && (candidate.isKinematic !== true)) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
303
|
+
let handlers = eventHandlers.get(candidate);
|
|
304
|
+
let region = handlers.region;
|
|
305
|
+
let ancestor = region.ancestor;
|
|
306
|
+
let bounds = region.getBounds();
|
|
307
|
+
let eventInBounds = false;
|
|
308
308
|
|
|
309
309
|
if (region.isFloating === true) {
|
|
310
310
|
pointer.gameX = pointer.gameLocalX = pointer.gameScreenX;
|
|
@@ -317,7 +317,7 @@ function dispatchEvent(normalizedEvents) {
|
|
|
317
317
|
// adjust gameLocalX to specify coordinates
|
|
318
318
|
// within the region ancestor container
|
|
319
319
|
if (typeof ancestor !== "undefined") {
|
|
320
|
-
|
|
320
|
+
let parentBounds = ancestor.getBounds();
|
|
321
321
|
pointer.gameLocalX = pointer.gameX - parentBounds.x;
|
|
322
322
|
pointer.gameLocalY = pointer.gameY - parentBounds.y;
|
|
323
323
|
}
|
|
@@ -405,21 +405,21 @@ function dispatchEvent(normalizedEvents) {
|
|
|
405
405
|
* @ignore
|
|
406
406
|
*/
|
|
407
407
|
function normalizeEvent(originalEvent) {
|
|
408
|
-
|
|
408
|
+
let _pointer;
|
|
409
409
|
|
|
410
410
|
// PointerEvent or standard Mouse event
|
|
411
411
|
if (touchEvent && originalEvent.changedTouches) {
|
|
412
412
|
// iOS/Android Touch event
|
|
413
|
-
for (
|
|
414
|
-
|
|
413
|
+
for (let i = 0, l = originalEvent.changedTouches.length; i < l; i++) {
|
|
414
|
+
let touchEvent = originalEvent.changedTouches[i];
|
|
415
415
|
_pointer = T_POINTERS.pop();
|
|
416
416
|
_pointer.setEvent(
|
|
417
417
|
originalEvent,
|
|
418
|
-
touchEvent
|
|
419
|
-
touchEvent
|
|
420
|
-
touchEvent
|
|
421
|
-
touchEvent
|
|
422
|
-
touchEvent
|
|
418
|
+
touchEvent.pageX,
|
|
419
|
+
touchEvent.pageY,
|
|
420
|
+
touchEvent.clientX,
|
|
421
|
+
touchEvent.clientY,
|
|
422
|
+
touchEvent.identifier
|
|
423
423
|
);
|
|
424
424
|
normalizedEvents.push(_pointer);
|
|
425
425
|
}
|
|
@@ -468,7 +468,7 @@ function onPointerEvent(e) {
|
|
|
468
468
|
normalizeEvent(e);
|
|
469
469
|
|
|
470
470
|
// remember/use the first "primary" normalized event for pointer.bind
|
|
471
|
-
|
|
471
|
+
let button = normalizedEvents[0].button;
|
|
472
472
|
|
|
473
473
|
// dispatch event to registered objects
|
|
474
474
|
if (dispatchEvent(normalizedEvents) || e.type === "wheel") {
|
|
@@ -478,7 +478,7 @@ function onPointerEvent(e) {
|
|
|
478
478
|
}
|
|
479
479
|
}
|
|
480
480
|
|
|
481
|
-
|
|
481
|
+
let keycode = pointer.bind[button];
|
|
482
482
|
|
|
483
483
|
// check if mapped to a key
|
|
484
484
|
if (keycode) {
|
|
@@ -497,7 +497,7 @@ function onPointerEvent(e) {
|
|
|
497
497
|
* @name pointerEventTarget
|
|
498
498
|
* @memberof input
|
|
499
499
|
*/
|
|
500
|
-
|
|
500
|
+
let pointerEventTarget = null;
|
|
501
501
|
|
|
502
502
|
/**
|
|
503
503
|
* Pointer information (current position and size)
|
|
@@ -506,7 +506,7 @@ function onPointerEvent(e) {
|
|
|
506
506
|
* @name pointer
|
|
507
507
|
* @memberof input
|
|
508
508
|
*/
|
|
509
|
-
|
|
509
|
+
let pointer = new Pointer(0, 0, 1, 1);
|
|
510
510
|
|
|
511
511
|
|
|
512
512
|
/**
|
|
@@ -516,7 +516,7 @@ var pointer = new Pointer(0, 0, 1, 1);
|
|
|
516
516
|
* @name locked
|
|
517
517
|
* @memberof input
|
|
518
518
|
*/
|
|
519
|
-
|
|
519
|
+
let locked = false;
|
|
520
520
|
|
|
521
521
|
/**
|
|
522
522
|
* time interval for event throttling in milliseconds<br>
|
|
@@ -527,7 +527,7 @@ var locked = false;
|
|
|
527
527
|
* @name throttlingInterval
|
|
528
528
|
* @memberof input
|
|
529
529
|
*/
|
|
530
|
-
|
|
530
|
+
let throttlingInterval;
|
|
531
531
|
|
|
532
532
|
/**
|
|
533
533
|
* Translate the specified x and y values from the global (absolute)
|
|
@@ -542,17 +542,17 @@ var throttlingInterval;
|
|
|
542
542
|
* @example
|
|
543
543
|
* onMouseEvent : function (pointer) {
|
|
544
544
|
* // convert the given into local (viewport) relative coordinates
|
|
545
|
-
*
|
|
545
|
+
* let pos = me.input.globalToLocal(pointer.clientX, pointer.clientY);
|
|
546
546
|
* // do something with pos !
|
|
547
547
|
* };
|
|
548
548
|
*/
|
|
549
549
|
function globalToLocal(x, y, v) {
|
|
550
550
|
v = v || pool.pull("Vector2d");
|
|
551
|
-
|
|
552
|
-
|
|
551
|
+
let rect = getElementBounds(renderer.getCanvas());
|
|
552
|
+
let pixelRatio = globalThis.devicePixelRatio || 1;
|
|
553
553
|
x -= rect.left + (globalThis.pageXOffset || 0);
|
|
554
554
|
y -= rect.top + (globalThis.pageYOffset || 0);
|
|
555
|
-
|
|
555
|
+
let scale = renderer.scaleRatio;
|
|
556
556
|
if (scale.x !== 1.0 || scale.y !== 1.0) {
|
|
557
557
|
x /= scale.x;
|
|
558
558
|
y /= scale.y;
|
|
@@ -593,8 +593,8 @@ function setTouchAction(element, value) {
|
|
|
593
593
|
* me.input.bindPointer(me.input.pointer.RIGHT, me.input.KEY.X);
|
|
594
594
|
*/
|
|
595
595
|
function bindPointer() {
|
|
596
|
-
|
|
597
|
-
|
|
596
|
+
let button = (arguments.length < 2) ? pointer.LEFT : arguments[0];
|
|
597
|
+
let keyCode = (arguments.length < 2) ? arguments[0] : arguments[1];
|
|
598
598
|
|
|
599
599
|
// make sure the mouse is initialized
|
|
600
600
|
enablePointerEvent();
|
|
@@ -652,7 +652,7 @@ function unbindPointer(button) {
|
|
|
652
652
|
* // onActivate function
|
|
653
653
|
* onActivateEvent: function () {
|
|
654
654
|
* // register on the 'pointerdown' event
|
|
655
|
-
* me.input.registerPointerEvent('pointerdown', this, this.pointerDown
|
|
655
|
+
* me.input.registerPointerEvent('pointerdown', this, (e) => this.pointerDown(e));
|
|
656
656
|
* },
|
|
657
657
|
*
|
|
658
658
|
* // pointerDown event callback
|
|
@@ -675,7 +675,7 @@ function registerPointerEvent(eventType, region, callback) {
|
|
|
675
675
|
throw new Error("registerPointerEvent: region for " + toString(region) + " event is undefined ");
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
|
|
678
|
+
let eventTypes = findAllActiveEvents(activeEventList, pointerEventMap[eventType]);
|
|
679
679
|
|
|
680
680
|
// register the event
|
|
681
681
|
if (!eventHandlers.has(region)) {
|
|
@@ -687,8 +687,8 @@ function registerPointerEvent(eventType, region, callback) {
|
|
|
687
687
|
}
|
|
688
688
|
|
|
689
689
|
// allocate array if not defined
|
|
690
|
-
|
|
691
|
-
for (
|
|
690
|
+
let handlers = eventHandlers.get(region);
|
|
691
|
+
for (let i = 0; i < eventTypes.length; i++) {
|
|
692
692
|
eventType = eventTypes[i];
|
|
693
693
|
if (handlers.callbacks[eventType]) {
|
|
694
694
|
handlers.callbacks[eventType].push(callback);
|
|
@@ -717,11 +717,11 @@ function releasePointerEvent(eventType, region, callback) {
|
|
|
717
717
|
}
|
|
718
718
|
|
|
719
719
|
// convert to supported event type if pointerEvent not natively supported
|
|
720
|
-
|
|
720
|
+
let eventTypes = findAllActiveEvents(activeEventList, pointerEventMap[eventType]);
|
|
721
721
|
|
|
722
|
-
|
|
722
|
+
let handlers = eventHandlers.get(region);
|
|
723
723
|
if (typeof (handlers) !== "undefined") {
|
|
724
|
-
for (
|
|
724
|
+
for (let i = 0; i < eventTypes.length; i++) {
|
|
725
725
|
eventType = eventTypes[i];
|
|
726
726
|
if (handlers.callbacks[eventType]) {
|
|
727
727
|
if (typeof (callback) !== "undefined") {
|
|
@@ -755,7 +755,7 @@ function releasePointerEvent(eventType, region, callback) {
|
|
|
755
755
|
*/
|
|
756
756
|
function releaseAllPointerEvents(region) {
|
|
757
757
|
if (eventHandlers.has(region)) {
|
|
758
|
-
for (
|
|
758
|
+
for (let i = 0; i < pointerEventList.length; i++) {
|
|
759
759
|
releasePointerEvent(pointerEventList[i], region);
|
|
760
760
|
}
|
|
761
761
|
}
|
|
@@ -778,7 +778,7 @@ function releaseAllPointerEvents(region) {
|
|
|
778
778
|
*/
|
|
779
779
|
function requestPointerLock() {
|
|
780
780
|
if (hasPointerLockSupport) {
|
|
781
|
-
|
|
781
|
+
let element = game.getParentElement();
|
|
782
782
|
element.requestPointerLock();
|
|
783
783
|
return true;
|
|
784
784
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
* @param {string} version - the version since when the lass,function or property is deprecated
|
|
13
13
|
*/
|
|
14
14
|
function warning(deprecated, replacement, version) {
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
const msg = "melonJS: %s is deprecated since version %s, please use %s";
|
|
16
|
+
let stack = new Error().stack;
|
|
17
17
|
|
|
18
18
|
if (console.groupCollapsed) {
|
|
19
19
|
console.groupCollapsed(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -113,7 +113,7 @@ Renderer.prototype.getScreenContext = function() {
|
|
|
113
113
|
* @param {object} settings - See {@link Sprite}
|
|
114
114
|
*/
|
|
115
115
|
constructor(x, y, settings) {
|
|
116
|
-
warning("GUI_Object", "UISpriteElement", "14.0.0");
|
|
116
|
+
warning("GUI_Object", "UISpriteElement or UITextButton", "14.0.0");
|
|
117
117
|
super(x, y, settings);
|
|
118
118
|
}
|
|
119
119
|
}
|