melonjs 10.2.2 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/melonjs.js +2907 -3383
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +3620 -4528
- package/dist/melonjs.module.js +3210 -3331
- package/package.json +19 -19
- package/src/audio/audio.js +30 -31
- package/src/camera/camera2d.js +47 -58
- package/src/entity/draggable.js +11 -21
- package/src/entity/droptarget.js +12 -22
- package/src/entity/entity.js +32 -38
- package/src/game.js +21 -22
- package/src/{shapes → geometries}/ellipse.js +40 -47
- package/src/{shapes → geometries}/line.js +9 -12
- package/src/{shapes → geometries}/poly.js +100 -53
- package/src/{shapes → geometries}/rectangle.js +42 -45
- package/src/index.js +9 -20
- package/src/input/gamepad.js +11 -10
- package/src/input/input.js +2 -3
- package/src/input/keyboard.js +113 -113
- package/src/input/pointer.js +61 -29
- package/src/input/pointerevent.js +92 -29
- package/src/lang/deprecated.js +44 -14
- package/src/level/level.js +23 -24
- package/src/level/tiled/TMXGroup.js +7 -9
- package/src/level/tiled/TMXLayer.js +30 -33
- package/src/level/tiled/TMXObject.js +59 -53
- package/src/level/tiled/TMXTile.js +18 -19
- package/src/level/tiled/TMXTileMap.js +38 -46
- package/src/level/tiled/TMXTileset.js +12 -16
- package/src/level/tiled/TMXTilesetGroup.js +9 -10
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +7 -9
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +7 -9
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +4 -6
- package/src/level/tiled/renderer/TMXRenderer.js +24 -26
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -5
- package/src/loader/loader.js +17 -16
- package/src/loader/loadingscreen.js +8 -10
- package/src/math/color.js +47 -67
- package/src/math/math.js +15 -16
- package/src/math/matrix2.js +53 -59
- package/src/math/matrix3.js +56 -63
- package/src/math/observable_vector2.js +87 -77
- package/src/math/observable_vector3.js +97 -80
- package/src/math/vector2.js +107 -97
- package/src/math/vector3.js +116 -100
- package/src/particles/emitter.js +66 -76
- package/src/particles/particle.js +4 -6
- package/src/particles/particlecontainer.js +2 -4
- package/src/physics/body.js +47 -146
- package/src/physics/bounds.js +48 -50
- package/src/physics/collision.js +13 -14
- package/src/physics/detector.js +14 -14
- package/src/physics/quadtree.js +18 -21
- package/src/physics/sat.js +30 -30
- package/src/physics/world.js +24 -29
- package/src/plugin/plugin.js +11 -15
- package/src/renderable/GUI.js +41 -47
- package/src/renderable/collectable.js +5 -10
- package/src/renderable/colorlayer.js +10 -15
- package/src/renderable/container.js +87 -73
- package/src/renderable/imagelayer.js +25 -32
- package/src/renderable/nineslicesprite.js +41 -42
- package/src/renderable/renderable.js +113 -124
- package/src/renderable/sprite.js +62 -69
- package/src/renderable/trigger.js +26 -32
- package/src/state/stage.js +13 -18
- package/src/state/state.js +26 -27
- package/src/system/device.js +76 -133
- package/src/system/event.js +81 -70
- package/src/system/pooling.js +11 -12
- package/src/system/save.js +3 -4
- package/src/system/timer.js +19 -20
- package/src/text/bitmaptext.js +57 -55
- package/src/text/bitmaptextdata.js +10 -11
- package/src/text/glyph.js +3 -0
- package/src/text/text.js +49 -55
- package/src/tweens/easing.js +1 -1
- package/src/tweens/interpolation.js +1 -1
- package/src/tweens/tween.js +44 -46
- package/src/utils/agent.js +3 -4
- package/src/utils/array.js +4 -5
- package/src/utils/file.js +3 -4
- package/src/utils/function.js +4 -5
- package/src/utils/string.js +7 -9
- package/src/utils/utils.js +4 -5
- package/src/video/canvas/canvas_renderer.js +60 -62
- package/src/video/renderer.js +53 -58
- package/src/video/texture.js +98 -112
- package/src/video/texture_cache.js +4 -6
- package/src/video/video.js +16 -17
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/glshader.js +37 -39
- package/src/video/webgl/webgl_compositor.js +128 -110
- package/src/video/webgl/webgl_renderer.js +126 -106
package/src/input/pointer.js
CHANGED
|
@@ -3,6 +3,7 @@ import device from "./../system/device.js";
|
|
|
3
3
|
import Bounds from "./../physics/bounds.js";
|
|
4
4
|
import { viewport } from "./../game.js";
|
|
5
5
|
import { globalToLocal } from "./input.js";
|
|
6
|
+
import { locked } from "./pointerevent.js";
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -15,9 +16,7 @@ var tmpVec = new Vector2d();
|
|
|
15
16
|
* @classdesc
|
|
16
17
|
* a pointer object, representing a single finger on a touch enabled device.
|
|
17
18
|
* @class Pointer
|
|
18
|
-
* @
|
|
19
|
-
* @memberOf me
|
|
20
|
-
* @constructor
|
|
19
|
+
* @augments Bounds
|
|
21
20
|
*/
|
|
22
21
|
class Pointer extends Bounds {
|
|
23
22
|
|
|
@@ -37,7 +36,7 @@ class Pointer extends Bounds {
|
|
|
37
36
|
* @public
|
|
38
37
|
* @type {number}
|
|
39
38
|
* @name LEFT
|
|
40
|
-
* @
|
|
39
|
+
* @memberof Pointer
|
|
41
40
|
*/
|
|
42
41
|
this.LEFT = 0;
|
|
43
42
|
|
|
@@ -46,7 +45,7 @@ class Pointer extends Bounds {
|
|
|
46
45
|
* @public
|
|
47
46
|
* @type {number}
|
|
48
47
|
* @name MIDDLE
|
|
49
|
-
* @
|
|
48
|
+
* @memberof Pointer
|
|
50
49
|
*/
|
|
51
50
|
this.MIDDLE = 1;
|
|
52
51
|
|
|
@@ -55,7 +54,7 @@ class Pointer extends Bounds {
|
|
|
55
54
|
* @public
|
|
56
55
|
* @type {number}
|
|
57
56
|
* @name RIGHT
|
|
58
|
-
* @
|
|
57
|
+
* @memberof Pointer
|
|
59
58
|
*/
|
|
60
59
|
this.RIGHT = 2;
|
|
61
60
|
|
|
@@ -67,7 +66,7 @@ class Pointer extends Bounds {
|
|
|
67
66
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
|
68
67
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent
|
|
69
68
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
|
|
70
|
-
* @
|
|
69
|
+
* @memberof Pointer
|
|
71
70
|
*/
|
|
72
71
|
this.event = undefined;
|
|
73
72
|
|
|
@@ -77,7 +76,7 @@ class Pointer extends Bounds {
|
|
|
77
76
|
* @type {string}
|
|
78
77
|
* @name type
|
|
79
78
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Event/type
|
|
80
|
-
* @
|
|
79
|
+
* @memberof Pointer
|
|
81
80
|
*/
|
|
82
81
|
this.type = undefined;
|
|
83
82
|
|
|
@@ -88,7 +87,7 @@ class Pointer extends Bounds {
|
|
|
88
87
|
* @type {number}
|
|
89
88
|
* @name button
|
|
90
89
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
|
|
91
|
-
* @
|
|
90
|
+
* @memberof Pointer
|
|
92
91
|
*/
|
|
93
92
|
this.button = 0;
|
|
94
93
|
|
|
@@ -98,7 +97,7 @@ class Pointer extends Bounds {
|
|
|
98
97
|
* @type {boolean}
|
|
99
98
|
* @name isPrimary
|
|
100
99
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/isPrimary
|
|
101
|
-
* @
|
|
100
|
+
* @memberof Pointer
|
|
102
101
|
*/
|
|
103
102
|
this.isPrimary = false;
|
|
104
103
|
|
|
@@ -108,7 +107,7 @@ class Pointer extends Bounds {
|
|
|
108
107
|
* @type {number}
|
|
109
108
|
* @name pageX
|
|
110
109
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
|
|
111
|
-
* @
|
|
110
|
+
* @memberof Pointer
|
|
112
111
|
*/
|
|
113
112
|
this.pageX = 0;
|
|
114
113
|
|
|
@@ -118,7 +117,7 @@ class Pointer extends Bounds {
|
|
|
118
117
|
* @type {number}
|
|
119
118
|
* @name pageY
|
|
120
119
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY
|
|
121
|
-
* @
|
|
120
|
+
* @memberof Pointer
|
|
122
121
|
*/
|
|
123
122
|
this.pageY = 0;
|
|
124
123
|
|
|
@@ -128,7 +127,7 @@ class Pointer extends Bounds {
|
|
|
128
127
|
* @type {number}
|
|
129
128
|
* @name clientX
|
|
130
129
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX
|
|
131
|
-
* @
|
|
130
|
+
* @memberof Pointer
|
|
132
131
|
*/
|
|
133
132
|
this.clientX = 0;
|
|
134
133
|
|
|
@@ -138,17 +137,37 @@ class Pointer extends Bounds {
|
|
|
138
137
|
* @type {number}
|
|
139
138
|
* @name clientY
|
|
140
139
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY
|
|
141
|
-
* @
|
|
140
|
+
* @memberof Pointer
|
|
142
141
|
*/
|
|
143
142
|
this.clientY = 0;
|
|
144
143
|
|
|
144
|
+
/**
|
|
145
|
+
* the difference in the X coordinate of the pointer since the previous move event
|
|
146
|
+
* @public
|
|
147
|
+
* @type {number}
|
|
148
|
+
* @name movementX
|
|
149
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX
|
|
150
|
+
* @memberof Pointer
|
|
151
|
+
*/
|
|
152
|
+
this.movementX = 0;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* the difference in the Y coordinate of the pointer since the previous move event
|
|
156
|
+
* @public
|
|
157
|
+
* @type {number}
|
|
158
|
+
* @name movementY
|
|
159
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementY
|
|
160
|
+
* @memberof Pointer
|
|
161
|
+
*/
|
|
162
|
+
this.movementY = 0;
|
|
163
|
+
|
|
145
164
|
/**
|
|
146
165
|
* an unsigned long representing the unit of the delta values scroll amount
|
|
147
166
|
* @public
|
|
148
167
|
* @type {number}
|
|
149
168
|
* @name deltaMode
|
|
150
169
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
|
|
151
|
-
* @
|
|
170
|
+
* @memberof Pointer
|
|
152
171
|
*/
|
|
153
172
|
this.deltaMode = 0;
|
|
154
173
|
|
|
@@ -158,7 +177,7 @@ class Pointer extends Bounds {
|
|
|
158
177
|
* @type {number}
|
|
159
178
|
* @name deltaX
|
|
160
179
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaX
|
|
161
|
-
* @
|
|
180
|
+
* @memberof Pointer
|
|
162
181
|
*/
|
|
163
182
|
this.deltaX = 0;
|
|
164
183
|
|
|
@@ -168,7 +187,7 @@ class Pointer extends Bounds {
|
|
|
168
187
|
* @type {number}
|
|
169
188
|
* @name deltaY
|
|
170
189
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaY
|
|
171
|
-
* @
|
|
190
|
+
* @memberof Pointer
|
|
172
191
|
*/
|
|
173
192
|
this.deltaY = 0;
|
|
174
193
|
|
|
@@ -178,7 +197,7 @@ class Pointer extends Bounds {
|
|
|
178
197
|
* @type {number}
|
|
179
198
|
* @name deltaZ
|
|
180
199
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaZ
|
|
181
|
-
* @
|
|
200
|
+
* @memberof Pointer
|
|
182
201
|
*/
|
|
183
202
|
this.deltaZ = 0;
|
|
184
203
|
|
|
@@ -188,7 +207,7 @@ class Pointer extends Bounds {
|
|
|
188
207
|
* @public
|
|
189
208
|
* @type {number}
|
|
190
209
|
* @name gameX
|
|
191
|
-
* @
|
|
210
|
+
* @memberof Pointer
|
|
192
211
|
*/
|
|
193
212
|
this.gameX = 0;
|
|
194
213
|
|
|
@@ -198,7 +217,7 @@ class Pointer extends Bounds {
|
|
|
198
217
|
* @public
|
|
199
218
|
* @type {number}
|
|
200
219
|
* @name gameY
|
|
201
|
-
* @
|
|
220
|
+
* @memberof Pointer
|
|
202
221
|
*/
|
|
203
222
|
this.gameY = 0;
|
|
204
223
|
|
|
@@ -207,7 +226,7 @@ class Pointer extends Bounds {
|
|
|
207
226
|
* @public
|
|
208
227
|
* @type {number}
|
|
209
228
|
* @name gameScreenX
|
|
210
|
-
* @
|
|
229
|
+
* @memberof Pointer
|
|
211
230
|
*/
|
|
212
231
|
this.gameScreenX = 0;
|
|
213
232
|
|
|
@@ -216,7 +235,7 @@ class Pointer extends Bounds {
|
|
|
216
235
|
* @public
|
|
217
236
|
* @type {number}
|
|
218
237
|
* @name gameScreenY
|
|
219
|
-
* @
|
|
238
|
+
* @memberof Pointer
|
|
220
239
|
*/
|
|
221
240
|
this.gameScreenY = 0;
|
|
222
241
|
|
|
@@ -225,7 +244,7 @@ class Pointer extends Bounds {
|
|
|
225
244
|
* @public
|
|
226
245
|
* @type {number}
|
|
227
246
|
* @name gameWorldX
|
|
228
|
-
* @
|
|
247
|
+
* @memberof Pointer
|
|
229
248
|
*/
|
|
230
249
|
this.gameWorldX = 0;
|
|
231
250
|
|
|
@@ -234,7 +253,7 @@ class Pointer extends Bounds {
|
|
|
234
253
|
* @public
|
|
235
254
|
* @type {number}
|
|
236
255
|
* @name gameWorldY
|
|
237
|
-
* @
|
|
256
|
+
* @memberof Pointer
|
|
238
257
|
*/
|
|
239
258
|
this.gameWorldY = 0;
|
|
240
259
|
|
|
@@ -243,7 +262,7 @@ class Pointer extends Bounds {
|
|
|
243
262
|
* @public
|
|
244
263
|
* @type {number}
|
|
245
264
|
* @name gameLocalX
|
|
246
|
-
* @
|
|
265
|
+
* @memberof Pointer
|
|
247
266
|
*/
|
|
248
267
|
this.gameLocalX = 0;
|
|
249
268
|
|
|
@@ -252,7 +271,7 @@ class Pointer extends Bounds {
|
|
|
252
271
|
* @public
|
|
253
272
|
* @type {number}
|
|
254
273
|
* @name gameLocalY
|
|
255
|
-
* @
|
|
274
|
+
* @memberof Pointer
|
|
256
275
|
*/
|
|
257
276
|
this.gameLocalY = 0;
|
|
258
277
|
|
|
@@ -261,7 +280,7 @@ class Pointer extends Bounds {
|
|
|
261
280
|
* @public
|
|
262
281
|
* @type {number}
|
|
263
282
|
* @name pointerId
|
|
264
|
-
* @
|
|
283
|
+
* @memberof Pointer
|
|
265
284
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId
|
|
266
285
|
*/
|
|
267
286
|
this.pointerId = undefined;
|
|
@@ -271,17 +290,26 @@ class Pointer extends Bounds {
|
|
|
271
290
|
* @public
|
|
272
291
|
* @type {boolean}
|
|
273
292
|
* @name isNormalized
|
|
274
|
-
* @
|
|
293
|
+
* @memberof Pointer
|
|
275
294
|
*/
|
|
276
295
|
this.isNormalized = false;
|
|
277
296
|
|
|
297
|
+
/**
|
|
298
|
+
* true if the pointer is currently locked
|
|
299
|
+
* @public
|
|
300
|
+
* @type {boolean}
|
|
301
|
+
* @name locked
|
|
302
|
+
* @memberof Pointer
|
|
303
|
+
*/
|
|
304
|
+
this.locked = false;
|
|
305
|
+
|
|
278
306
|
// bind list for mouse buttons
|
|
279
307
|
this.bind = [ 0, 0, 0 ];
|
|
280
308
|
}
|
|
281
309
|
|
|
282
310
|
/**
|
|
283
311
|
* initialize the Pointer object using the given Event Object
|
|
284
|
-
* @name
|
|
312
|
+
* @name Pointer#set
|
|
285
313
|
* @private
|
|
286
314
|
* @function
|
|
287
315
|
* @param {Event} event the original Event object
|
|
@@ -308,6 +336,10 @@ class Pointer extends Bounds {
|
|
|
308
336
|
// true if not originally a pointer event
|
|
309
337
|
this.isNormalized = !device.PointerEvent || (device.PointerEvent && !(event instanceof window.PointerEvent));
|
|
310
338
|
|
|
339
|
+
this.locked = locked;
|
|
340
|
+
this.movementX = event.movementX || 0;
|
|
341
|
+
this.movementY = event.movementY || 0;
|
|
342
|
+
|
|
311
343
|
if (event.type === "wheel") {
|
|
312
344
|
this.deltaMode = event.deltaMode || 0;
|
|
313
345
|
this.deltaX = event.deltaX || 0;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {preventDefault} from "./input.js";
|
|
2
2
|
import {getBindingKey, triggerKeyEvent} from "./keyboard.js";
|
|
3
|
-
import { renderer, scaleRatio } from "./../video/video.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import { renderer, scaleRatio, getParent } from "./../video/video.js";
|
|
4
|
+
import { throttle } from "./../utils/function.js";
|
|
5
|
+
import { remove } from "./../utils/array.js";
|
|
6
6
|
import * as event from "./../system/event.js";
|
|
7
7
|
import timer from "./../system/timer.js";
|
|
8
8
|
import pool from "./../system/pooling.js";
|
|
9
9
|
import device from "./../system/device.js";
|
|
10
10
|
import Pointer from "./pointer.js";
|
|
11
|
-
import Rect from "./../
|
|
11
|
+
import Rect from "./../geometries/rectangle.js";
|
|
12
12
|
import Container from "./../renderable/container.js";
|
|
13
13
|
import { world, viewport } from "./../game.js";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* A pool of `Pointer` objects to cache pointer/touch event coordinates.
|
|
17
|
-
* @type {Array.<
|
|
17
|
+
* @type {Array.<Vector2d>}
|
|
18
18
|
* @ignore
|
|
19
19
|
*/
|
|
20
20
|
var T_POINTERS = [];
|
|
@@ -178,7 +178,7 @@ function enablePointerEvent() {
|
|
|
178
178
|
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
179
179
|
pointerEventTarget.addEventListener(
|
|
180
180
|
events[i],
|
|
181
|
-
|
|
181
|
+
throttle(
|
|
182
182
|
onMoveEvent,
|
|
183
183
|
throttlingInterval,
|
|
184
184
|
false
|
|
@@ -191,6 +191,17 @@ function enablePointerEvent() {
|
|
|
191
191
|
// disable all gesture by default
|
|
192
192
|
setTouchAction(pointerEventTarget);
|
|
193
193
|
|
|
194
|
+
// set a on change listener on pointerlock if supported
|
|
195
|
+
if (device.hasPointerLockSupport) {
|
|
196
|
+
document.addEventListener("pointerlockchange", () => {
|
|
197
|
+
// change the locked status accordingly
|
|
198
|
+
locked = document.pointerLockElement === getParent();
|
|
199
|
+
// emit the corresponding internal event
|
|
200
|
+
event.emit(event.POINTERLOCKCHANGE, locked);
|
|
201
|
+
}, true);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// all done !
|
|
194
205
|
pointerInitialized = true;
|
|
195
206
|
}
|
|
196
207
|
}
|
|
@@ -492,19 +503,29 @@ function onPointerEvent(e) {
|
|
|
492
503
|
* @public
|
|
493
504
|
* @type {EventTarget}
|
|
494
505
|
* @name pointerEventTarget
|
|
495
|
-
* @
|
|
506
|
+
* @memberof input
|
|
496
507
|
*/
|
|
497
508
|
export var pointerEventTarget = null;
|
|
498
509
|
|
|
499
510
|
/**
|
|
500
511
|
* Pointer information (current position and size)
|
|
501
512
|
* @public
|
|
502
|
-
* @type {
|
|
513
|
+
* @type {Rect}
|
|
503
514
|
* @name pointer
|
|
504
|
-
* @
|
|
515
|
+
* @memberof input
|
|
505
516
|
*/
|
|
506
517
|
export var pointer = new Pointer(0, 0, 1, 1);
|
|
507
518
|
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* indicates if the pointer is currently locked
|
|
522
|
+
* @public
|
|
523
|
+
* @type {boolean}
|
|
524
|
+
* @name locked
|
|
525
|
+
* @memberof input
|
|
526
|
+
*/
|
|
527
|
+
export var locked = false;
|
|
528
|
+
|
|
508
529
|
/**
|
|
509
530
|
* time interval for event throttling in milliseconds<br>
|
|
510
531
|
* default value : "1000/me.timer.maxfps" ms<br>
|
|
@@ -512,7 +533,7 @@ export var pointer = new Pointer(0, 0, 1, 1);
|
|
|
512
533
|
* @public
|
|
513
534
|
* @type {number}
|
|
514
535
|
* @name throttlingInterval
|
|
515
|
-
* @
|
|
536
|
+
* @memberof input
|
|
516
537
|
*/
|
|
517
538
|
export var throttlingInterval;
|
|
518
539
|
|
|
@@ -520,13 +541,13 @@ export var throttlingInterval;
|
|
|
520
541
|
* Translate the specified x and y values from the global (absolute)
|
|
521
542
|
* coordinate to local (viewport) relative coordinate.
|
|
522
543
|
* @name globalToLocal
|
|
523
|
-
* @
|
|
544
|
+
* @memberof input
|
|
524
545
|
* @public
|
|
525
546
|
* @function
|
|
526
547
|
* @param {number} x the global x coordinate to be translated.
|
|
527
548
|
* @param {number} y the global y coordinate to be translated.
|
|
528
|
-
* @param {
|
|
529
|
-
* @returns {
|
|
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
|
|
530
551
|
* @example
|
|
531
552
|
* onMouseEvent : function (pointer) {
|
|
532
553
|
* // convert the given into local (viewport) relative coordinates
|
|
@@ -552,7 +573,7 @@ export function globalToLocal(x, y, v) {
|
|
|
552
573
|
* enable/disable all gestures on the given element.<br>
|
|
553
574
|
* by default melonJS will disable browser handling of all panning and zooming gestures.
|
|
554
575
|
* @name setTouchAction
|
|
555
|
-
* @
|
|
576
|
+
* @memberof input
|
|
556
577
|
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
|
|
557
578
|
* @public
|
|
558
579
|
* @function
|
|
@@ -569,11 +590,11 @@ export function setTouchAction(element, value) {
|
|
|
569
590
|
* Middle button – 1
|
|
570
591
|
* Right button – 2
|
|
571
592
|
* @name bindPointer
|
|
572
|
-
* @
|
|
593
|
+
* @memberof input
|
|
573
594
|
* @public
|
|
574
595
|
* @function
|
|
575
|
-
* @param {number} [button=
|
|
576
|
-
* @param {
|
|
596
|
+
* @param {number} [button=input.pointer.LEFT] (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
597
|
+
* @param {input.KEY} keyCode
|
|
577
598
|
* @example
|
|
578
599
|
* // enable the keyboard
|
|
579
600
|
* me.input.bindKey(me.input.KEY.X, "shoot");
|
|
@@ -600,10 +621,10 @@ export function bindPointer() {
|
|
|
600
621
|
/**
|
|
601
622
|
* unbind the defined keycode
|
|
602
623
|
* @name unbindPointer
|
|
603
|
-
* @
|
|
624
|
+
* @memberof input
|
|
604
625
|
* @public
|
|
605
626
|
* @function
|
|
606
|
-
* @param {number} [button=
|
|
627
|
+
* @param {number} [button=input.pointer.LEFT] (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
607
628
|
* @example
|
|
608
629
|
* me.input.unbindPointer(me.input.pointer.LEFT);
|
|
609
630
|
*/
|
|
@@ -619,10 +640,10 @@ export function unbindPointer(button) {
|
|
|
619
640
|
/**
|
|
620
641
|
* allows registration of event listeners on the object target. <br>
|
|
621
642
|
* melonJS will pass a me.Pointer object to the defined callback.
|
|
622
|
-
* @see
|
|
643
|
+
* @see Pointer
|
|
623
644
|
* @see {@link http://www.w3.org/TR/pointerevents/#list-of-pointer-events|W3C Pointer Event list}
|
|
624
645
|
* @name registerPointerEvent
|
|
625
|
-
* @
|
|
646
|
+
* @memberof input
|
|
626
647
|
* @public
|
|
627
648
|
* @function
|
|
628
649
|
* @param {string} eventType The event type for which the object is registering <br>
|
|
@@ -637,7 +658,7 @@ export function unbindPointer(button) {
|
|
|
637
658
|
* <li><code>"pointercancel"</code></li>
|
|
638
659
|
* <li><code>"wheel"</code></li>
|
|
639
660
|
* </ul>
|
|
640
|
-
* @param {
|
|
661
|
+
* @param {Rect|Polygon|Line|Ellipse} region a shape representing the region to register on
|
|
641
662
|
* @param {Function} callback methods to be called when the event occurs.
|
|
642
663
|
* Returning `false` from the defined callback will prevent the event to be propagated to other objects
|
|
643
664
|
* @example
|
|
@@ -694,11 +715,11 @@ export function registerPointerEvent(eventType, region, callback) {
|
|
|
694
715
|
* allows the removal of event listeners from the object target.
|
|
695
716
|
* @see {@link http://www.w3.org/TR/pointerevents/#list-of-pointer-events|W3C Pointer Event list}
|
|
696
717
|
* @name releasePointerEvent
|
|
697
|
-
* @
|
|
718
|
+
* @memberof input
|
|
698
719
|
* @public
|
|
699
720
|
* @function
|
|
700
|
-
* @param {string} eventType The event type for which the object was registered. See {@link
|
|
701
|
-
* @param {
|
|
721
|
+
* @param {string} eventType The event type for which the object was registered. See {@link input.registerPointerEvent}
|
|
722
|
+
* @param {Rect|Polygon|Line|Ellipse} region the registered region to release for this event
|
|
702
723
|
* @param {Function} [callback="all"] if specified unregister the event only for the specific callback
|
|
703
724
|
* @example
|
|
704
725
|
* // release the registered region on the 'pointerdown' event
|
|
@@ -718,7 +739,7 @@ export function releasePointerEvent(eventType, region, callback) {
|
|
|
718
739
|
eventType = eventTypes[i];
|
|
719
740
|
if (handlers.callbacks[eventType]) {
|
|
720
741
|
if (typeof (callback) !== "undefined") {
|
|
721
|
-
|
|
742
|
+
remove(handlers.callbacks[eventType], callback);
|
|
722
743
|
} else {
|
|
723
744
|
while (handlers.callbacks[eventType].length > 0) {
|
|
724
745
|
handlers.callbacks[eventType].pop();
|
|
@@ -739,10 +760,10 @@ export function releasePointerEvent(eventType, region, callback) {
|
|
|
739
760
|
/**
|
|
740
761
|
* allows the removal of all registered event listeners from the object target.
|
|
741
762
|
* @name releaseAllPointerEvents
|
|
742
|
-
* @
|
|
763
|
+
* @memberof input
|
|
743
764
|
* @public
|
|
744
765
|
* @function
|
|
745
|
-
* @param {
|
|
766
|
+
* @param {Rect|Polygon|Line|Ellipse} region the registered region to release event from
|
|
746
767
|
* @example
|
|
747
768
|
* // release all registered event on the
|
|
748
769
|
* me.input.releaseAllPointerEvents(this);
|
|
@@ -750,7 +771,49 @@ export function releasePointerEvent(eventType, region, callback) {
|
|
|
750
771
|
export function releaseAllPointerEvents(region) {
|
|
751
772
|
if (eventHandlers.has(region)) {
|
|
752
773
|
for (var i = 0; i < pointerEventList.length; i++) {
|
|
753
|
-
|
|
774
|
+
releasePointerEvent(pointerEventList[i], region);
|
|
754
775
|
}
|
|
755
776
|
};
|
|
756
777
|
};
|
|
778
|
+
|
|
779
|
+
/**
|
|
780
|
+
* request for the pointer to be locked on the parent DOM element.
|
|
781
|
+
* (Must be called in a click event or an event that requires user interaction)
|
|
782
|
+
* @name requestPointerLock
|
|
783
|
+
* @memberof input
|
|
784
|
+
* @public
|
|
785
|
+
* @function
|
|
786
|
+
* @param {Function} [success] callback if the request is successful
|
|
787
|
+
* @returns {boolean} return true if the request was successfully submitted
|
|
788
|
+
* @example
|
|
789
|
+
* // register on the pointer lock change event
|
|
790
|
+
* event.on(event.POINTERLOCKCHANGE, (locked)=> {
|
|
791
|
+
* console.log("pointer lock: " + locked);
|
|
792
|
+
* });
|
|
793
|
+
* // request for pointer lock
|
|
794
|
+
* me.input.requestPointerLock();
|
|
795
|
+
*/
|
|
796
|
+
export function requestPointerLock() {
|
|
797
|
+
if (device.hasPointerLockSupport) {
|
|
798
|
+
var element = getParent();
|
|
799
|
+
element.requestPointerLock();
|
|
800
|
+
return true;
|
|
801
|
+
}
|
|
802
|
+
return false;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Initiates an exit from pointer lock state
|
|
807
|
+
* @name exitPointerLock
|
|
808
|
+
* @memberof input
|
|
809
|
+
* @public
|
|
810
|
+
* @function
|
|
811
|
+
* @returns {boolean} return true if the request was successfully submitted
|
|
812
|
+
*/
|
|
813
|
+
export function exitPointerLock() {
|
|
814
|
+
if (device.hasPointerLockSupport) {
|
|
815
|
+
document.exitPointerLock();
|
|
816
|
+
return true;
|
|
817
|
+
}
|
|
818
|
+
return false;
|
|
819
|
+
}
|
package/src/lang/deprecated.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
import device from "./../system/device.js";
|
|
2
|
+
import { requestPointerLock, exitPointerLock } from "./../input/input.js";
|
|
3
|
+
import { TextureAtlas } from "./../video/texture.js";
|
|
4
|
+
import Renderer from "./../video/renderer.js";
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* placeholder for all deprecated classes and corresponding alias for backward compatibility
|
|
3
|
-
* @namespace deprecated
|
|
4
|
-
* @memberOf me
|
|
5
8
|
*/
|
|
6
9
|
|
|
7
10
|
/**
|
|
8
11
|
* display a deprecation warning in the console
|
|
9
|
-
* @
|
|
10
|
-
* @function
|
|
11
|
-
* @memberOf me.deprecated
|
|
12
|
-
* @name warning
|
|
12
|
+
* @ignore
|
|
13
13
|
* @param {string} deprecated deprecated class,function or property name
|
|
14
14
|
* @param {string} replacement the replacement class, function, or property name
|
|
15
15
|
* @param {string} version the version since when the lass,function or property is deprecated
|
|
@@ -42,17 +42,47 @@ export function warning(deprecated, replacement, version) {
|
|
|
42
42
|
if (console.groupCollapsed) {
|
|
43
43
|
console.groupEnd();
|
|
44
44
|
}
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
/**
|
|
48
|
+
* @public
|
|
49
|
+
* @type {Function}
|
|
50
|
+
* @name turnOnPointerLock
|
|
51
|
+
* @memberof device
|
|
52
|
+
* @deprecated since 10.3.0
|
|
53
|
+
* @see input.requestPointerLock
|
|
54
|
+
*/
|
|
55
|
+
device.turnOnPointerLock = function () {
|
|
56
|
+
warning("device.turnOnPointerLock()", "input.requestPointerLock()", "10.3.0");
|
|
57
|
+
return requestPointerLock();
|
|
47
58
|
};
|
|
48
59
|
|
|
60
|
+
/**
|
|
61
|
+
* @public
|
|
62
|
+
* @type {Function}
|
|
63
|
+
* @name turnOffPointerLock
|
|
64
|
+
* @memberof device
|
|
65
|
+
* @deprecated since 10.3.0
|
|
66
|
+
* @see input.exitPointerLock
|
|
67
|
+
*/
|
|
68
|
+
device.turnOffPointerLock = function () {
|
|
69
|
+
warning("device.turnOffPointerLock()", "input.exitPointerLock()", "10.3.0");
|
|
70
|
+
return exitPointerLock();
|
|
71
|
+
};
|
|
49
72
|
|
|
50
73
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @memberof
|
|
54
|
-
* @
|
|
74
|
+
* @public
|
|
75
|
+
* @name Texture
|
|
76
|
+
* @memberof Renderer
|
|
77
|
+
* @deprecated since 10.4.0
|
|
78
|
+
* @see TextureAtlas
|
|
55
79
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
80
|
+
Object.defineProperty(Renderer.prototype, "Texture", {
|
|
81
|
+
/**
|
|
82
|
+
* @ignore
|
|
83
|
+
*/
|
|
84
|
+
get : function () {
|
|
85
|
+
warning("me.video.renderer.Texture", "me.TextureAtlas", "10.4.0");
|
|
86
|
+
return TextureAtlas;
|
|
87
|
+
}
|
|
88
|
+
});
|