melonjs 10.2.3 → 10.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/melonjs.js +1741 -1558
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +1256 -1758
- package/dist/melonjs.module.js +1734 -1582
- package/package.json +12 -12
- package/src/audio/audio.js +3 -3
- package/src/camera/camera2d.js +26 -27
- package/src/entity/draggable.js +10 -19
- package/src/entity/droptarget.js +12 -20
- package/src/entity/entity.js +13 -13
- package/src/game.js +6 -6
- package/src/{shapes → geometries}/ellipse.js +19 -20
- package/src/{shapes → geometries}/line.js +6 -7
- package/src/{shapes → geometries}/poly.js +70 -23
- package/src/{shapes → geometries}/rectangle.js +23 -24
- package/src/index.js +8 -9
- package/src/input/gamepad.js +7 -7
- package/src/input/input.js +2 -2
- package/src/input/keyboard.js +108 -108
- package/src/input/pointer.js +61 -28
- package/src/input/pointerevent.js +79 -16
- package/src/lang/deprecated.js +26 -15
- package/src/level/level.js +10 -10
- package/src/level/tiled/TMXGroup.js +6 -7
- package/src/level/tiled/TMXLayer.js +10 -11
- package/src/level/tiled/TMXObject.js +57 -51
- package/src/level/tiled/TMXTile.js +2 -3
- package/src/level/tiled/TMXTileMap.js +3 -4
- package/src/level/tiled/TMXTileset.js +1 -2
- package/src/level/tiled/TMXTilesetGroup.js +1 -2
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +1 -2
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
- package/src/loader/loader.js +17 -15
- package/src/loader/loadingscreen.js +1 -2
- package/src/math/color.js +23 -24
- package/src/math/math.js +16 -16
- package/src/math/matrix2.js +24 -25
- package/src/math/matrix3.js +26 -27
- package/src/math/observable_vector2.js +46 -35
- package/src/math/observable_vector3.js +54 -36
- package/src/math/vector2.js +58 -47
- package/src/math/vector3.js +66 -48
- package/src/particles/emitter.js +64 -72
- package/src/particles/particle.js +3 -4
- package/src/particles/particlecontainer.js +2 -3
- package/src/physics/body.js +38 -39
- package/src/physics/bounds.js +30 -32
- package/src/physics/collision.js +6 -6
- package/src/physics/detector.js +3 -3
- package/src/physics/quadtree.js +8 -9
- package/src/physics/sat.js +4 -4
- package/src/physics/world.js +11 -12
- package/src/plugin/plugin.js +6 -7
- package/src/renderable/GUI.js +7 -8
- package/src/renderable/collectable.js +3 -4
- package/src/renderable/colorlayer.js +7 -8
- package/src/renderable/container.js +36 -37
- package/src/renderable/imagelayer.js +4 -5
- package/src/renderable/nineslicesprite.js +2 -3
- package/src/renderable/renderable.js +45 -46
- package/src/renderable/sprite.js +16 -17
- package/src/renderable/trigger.js +4 -5
- package/src/state/stage.js +8 -9
- package/src/state/state.js +24 -24
- package/src/system/device.js +41 -97
- package/src/system/event.js +45 -33
- package/src/system/pooling.js +1 -1
- package/src/system/save.js +3 -3
- package/src/system/timer.js +13 -13
- package/src/text/bitmaptext.js +12 -13
- package/src/text/bitmaptextdata.js +5 -6
- package/src/text/text.js +16 -17
- package/src/tweens/easing.js +1 -1
- package/src/tweens/interpolation.js +1 -1
- package/src/tweens/tween.js +14 -15
- package/src/utils/agent.js +3 -3
- package/src/utils/array.js +4 -4
- package/src/utils/file.js +3 -3
- package/src/utils/function.js +3 -3
- package/src/utils/string.js +7 -7
- package/src/utils/utils.js +4 -4
- package/src/video/canvas/canvas_renderer.js +39 -40
- package/src/video/renderer.js +29 -30
- package/src/video/texture.js +8 -9
- package/src/video/texture_cache.js +2 -4
- package/src/video/video.js +7 -7
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/glshader.js +11 -12
- package/src/video/webgl/webgl_compositor.js +118 -90
- package/src/video/webgl/webgl_renderer.js +95 -74
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,8 @@ 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
|
-
* @
|
|
20
|
-
* @constructor
|
|
19
|
+
* @augments me.Bounds
|
|
20
|
+
* @memberof me
|
|
21
21
|
*/
|
|
22
22
|
class Pointer extends Bounds {
|
|
23
23
|
|
|
@@ -37,7 +37,7 @@ class Pointer extends Bounds {
|
|
|
37
37
|
* @public
|
|
38
38
|
* @type {number}
|
|
39
39
|
* @name LEFT
|
|
40
|
-
* @
|
|
40
|
+
* @memberof me.Pointer
|
|
41
41
|
*/
|
|
42
42
|
this.LEFT = 0;
|
|
43
43
|
|
|
@@ -46,7 +46,7 @@ class Pointer extends Bounds {
|
|
|
46
46
|
* @public
|
|
47
47
|
* @type {number}
|
|
48
48
|
* @name MIDDLE
|
|
49
|
-
* @
|
|
49
|
+
* @memberof me.Pointer
|
|
50
50
|
*/
|
|
51
51
|
this.MIDDLE = 1;
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@ class Pointer extends Bounds {
|
|
|
55
55
|
* @public
|
|
56
56
|
* @type {number}
|
|
57
57
|
* @name RIGHT
|
|
58
|
-
* @
|
|
58
|
+
* @memberof me.Pointer
|
|
59
59
|
*/
|
|
60
60
|
this.RIGHT = 2;
|
|
61
61
|
|
|
@@ -67,7 +67,7 @@ class Pointer extends Bounds {
|
|
|
67
67
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
|
68
68
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent
|
|
69
69
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
|
|
70
|
-
* @
|
|
70
|
+
* @memberof me.Pointer
|
|
71
71
|
*/
|
|
72
72
|
this.event = undefined;
|
|
73
73
|
|
|
@@ -77,7 +77,7 @@ class Pointer extends Bounds {
|
|
|
77
77
|
* @type {string}
|
|
78
78
|
* @name type
|
|
79
79
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Event/type
|
|
80
|
-
* @
|
|
80
|
+
* @memberof me.Pointer
|
|
81
81
|
*/
|
|
82
82
|
this.type = undefined;
|
|
83
83
|
|
|
@@ -88,7 +88,7 @@ class Pointer extends Bounds {
|
|
|
88
88
|
* @type {number}
|
|
89
89
|
* @name button
|
|
90
90
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
|
|
91
|
-
* @
|
|
91
|
+
* @memberof me.Pointer
|
|
92
92
|
*/
|
|
93
93
|
this.button = 0;
|
|
94
94
|
|
|
@@ -98,7 +98,7 @@ class Pointer extends Bounds {
|
|
|
98
98
|
* @type {boolean}
|
|
99
99
|
* @name isPrimary
|
|
100
100
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/isPrimary
|
|
101
|
-
* @
|
|
101
|
+
* @memberof me.Pointer
|
|
102
102
|
*/
|
|
103
103
|
this.isPrimary = false;
|
|
104
104
|
|
|
@@ -108,7 +108,7 @@ class Pointer extends Bounds {
|
|
|
108
108
|
* @type {number}
|
|
109
109
|
* @name pageX
|
|
110
110
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
|
|
111
|
-
* @
|
|
111
|
+
* @memberof me.Pointer
|
|
112
112
|
*/
|
|
113
113
|
this.pageX = 0;
|
|
114
114
|
|
|
@@ -118,7 +118,7 @@ class Pointer extends Bounds {
|
|
|
118
118
|
* @type {number}
|
|
119
119
|
* @name pageY
|
|
120
120
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY
|
|
121
|
-
* @
|
|
121
|
+
* @memberof me.Pointer
|
|
122
122
|
*/
|
|
123
123
|
this.pageY = 0;
|
|
124
124
|
|
|
@@ -128,7 +128,7 @@ class Pointer extends Bounds {
|
|
|
128
128
|
* @type {number}
|
|
129
129
|
* @name clientX
|
|
130
130
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX
|
|
131
|
-
* @
|
|
131
|
+
* @memberof me.Pointer
|
|
132
132
|
*/
|
|
133
133
|
this.clientX = 0;
|
|
134
134
|
|
|
@@ -138,17 +138,37 @@ class Pointer extends Bounds {
|
|
|
138
138
|
* @type {number}
|
|
139
139
|
* @name clientY
|
|
140
140
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY
|
|
141
|
-
* @
|
|
141
|
+
* @memberof me.Pointer
|
|
142
142
|
*/
|
|
143
143
|
this.clientY = 0;
|
|
144
144
|
|
|
145
|
+
/**
|
|
146
|
+
* the difference in the X coordinate of the pointer since the previous move event
|
|
147
|
+
* @public
|
|
148
|
+
* @type {number}
|
|
149
|
+
* @name movementX
|
|
150
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX
|
|
151
|
+
* @memberof me.Pointer
|
|
152
|
+
*/
|
|
153
|
+
this.movementX = 0;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* the difference in the Y coordinate of the pointer since the previous move event
|
|
157
|
+
* @public
|
|
158
|
+
* @type {number}
|
|
159
|
+
* @name movementY
|
|
160
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementY
|
|
161
|
+
* @memberof me.Pointer
|
|
162
|
+
*/
|
|
163
|
+
this.movementY = 0;
|
|
164
|
+
|
|
145
165
|
/**
|
|
146
166
|
* an unsigned long representing the unit of the delta values scroll amount
|
|
147
167
|
* @public
|
|
148
168
|
* @type {number}
|
|
149
169
|
* @name deltaMode
|
|
150
170
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
|
|
151
|
-
* @
|
|
171
|
+
* @memberof me.Pointer
|
|
152
172
|
*/
|
|
153
173
|
this.deltaMode = 0;
|
|
154
174
|
|
|
@@ -158,7 +178,7 @@ class Pointer extends Bounds {
|
|
|
158
178
|
* @type {number}
|
|
159
179
|
* @name deltaX
|
|
160
180
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaX
|
|
161
|
-
* @
|
|
181
|
+
* @memberof me.Pointer
|
|
162
182
|
*/
|
|
163
183
|
this.deltaX = 0;
|
|
164
184
|
|
|
@@ -168,7 +188,7 @@ class Pointer extends Bounds {
|
|
|
168
188
|
* @type {number}
|
|
169
189
|
* @name deltaY
|
|
170
190
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaY
|
|
171
|
-
* @
|
|
191
|
+
* @memberof me.Pointer
|
|
172
192
|
*/
|
|
173
193
|
this.deltaY = 0;
|
|
174
194
|
|
|
@@ -178,7 +198,7 @@ class Pointer extends Bounds {
|
|
|
178
198
|
* @type {number}
|
|
179
199
|
* @name deltaZ
|
|
180
200
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaZ
|
|
181
|
-
* @
|
|
201
|
+
* @memberof me.Pointer
|
|
182
202
|
*/
|
|
183
203
|
this.deltaZ = 0;
|
|
184
204
|
|
|
@@ -188,7 +208,7 @@ class Pointer extends Bounds {
|
|
|
188
208
|
* @public
|
|
189
209
|
* @type {number}
|
|
190
210
|
* @name gameX
|
|
191
|
-
* @
|
|
211
|
+
* @memberof me.Pointer
|
|
192
212
|
*/
|
|
193
213
|
this.gameX = 0;
|
|
194
214
|
|
|
@@ -198,7 +218,7 @@ class Pointer extends Bounds {
|
|
|
198
218
|
* @public
|
|
199
219
|
* @type {number}
|
|
200
220
|
* @name gameY
|
|
201
|
-
* @
|
|
221
|
+
* @memberof me.Pointer
|
|
202
222
|
*/
|
|
203
223
|
this.gameY = 0;
|
|
204
224
|
|
|
@@ -207,7 +227,7 @@ class Pointer extends Bounds {
|
|
|
207
227
|
* @public
|
|
208
228
|
* @type {number}
|
|
209
229
|
* @name gameScreenX
|
|
210
|
-
* @
|
|
230
|
+
* @memberof me.Pointer
|
|
211
231
|
*/
|
|
212
232
|
this.gameScreenX = 0;
|
|
213
233
|
|
|
@@ -216,7 +236,7 @@ class Pointer extends Bounds {
|
|
|
216
236
|
* @public
|
|
217
237
|
* @type {number}
|
|
218
238
|
* @name gameScreenY
|
|
219
|
-
* @
|
|
239
|
+
* @memberof me.Pointer
|
|
220
240
|
*/
|
|
221
241
|
this.gameScreenY = 0;
|
|
222
242
|
|
|
@@ -225,7 +245,7 @@ class Pointer extends Bounds {
|
|
|
225
245
|
* @public
|
|
226
246
|
* @type {number}
|
|
227
247
|
* @name gameWorldX
|
|
228
|
-
* @
|
|
248
|
+
* @memberof me.Pointer
|
|
229
249
|
*/
|
|
230
250
|
this.gameWorldX = 0;
|
|
231
251
|
|
|
@@ -234,7 +254,7 @@ class Pointer extends Bounds {
|
|
|
234
254
|
* @public
|
|
235
255
|
* @type {number}
|
|
236
256
|
* @name gameWorldY
|
|
237
|
-
* @
|
|
257
|
+
* @memberof me.Pointer
|
|
238
258
|
*/
|
|
239
259
|
this.gameWorldY = 0;
|
|
240
260
|
|
|
@@ -243,7 +263,7 @@ class Pointer extends Bounds {
|
|
|
243
263
|
* @public
|
|
244
264
|
* @type {number}
|
|
245
265
|
* @name gameLocalX
|
|
246
|
-
* @
|
|
266
|
+
* @memberof me.Pointer
|
|
247
267
|
*/
|
|
248
268
|
this.gameLocalX = 0;
|
|
249
269
|
|
|
@@ -252,7 +272,7 @@ class Pointer extends Bounds {
|
|
|
252
272
|
* @public
|
|
253
273
|
* @type {number}
|
|
254
274
|
* @name gameLocalY
|
|
255
|
-
* @
|
|
275
|
+
* @memberof me.Pointer
|
|
256
276
|
*/
|
|
257
277
|
this.gameLocalY = 0;
|
|
258
278
|
|
|
@@ -261,7 +281,7 @@ class Pointer extends Bounds {
|
|
|
261
281
|
* @public
|
|
262
282
|
* @type {number}
|
|
263
283
|
* @name pointerId
|
|
264
|
-
* @
|
|
284
|
+
* @memberof me.Pointer
|
|
265
285
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId
|
|
266
286
|
*/
|
|
267
287
|
this.pointerId = undefined;
|
|
@@ -271,10 +291,19 @@ class Pointer extends Bounds {
|
|
|
271
291
|
* @public
|
|
272
292
|
* @type {boolean}
|
|
273
293
|
* @name isNormalized
|
|
274
|
-
* @
|
|
294
|
+
* @memberof me.Pointer
|
|
275
295
|
*/
|
|
276
296
|
this.isNormalized = false;
|
|
277
297
|
|
|
298
|
+
/**
|
|
299
|
+
* true if the pointer is currently locked
|
|
300
|
+
* @public
|
|
301
|
+
* @type {boolean}
|
|
302
|
+
* @name locked
|
|
303
|
+
* @memberof me.Pointer
|
|
304
|
+
*/
|
|
305
|
+
this.locked = false;
|
|
306
|
+
|
|
278
307
|
// bind list for mouse buttons
|
|
279
308
|
this.bind = [ 0, 0, 0 ];
|
|
280
309
|
}
|
|
@@ -308,6 +337,10 @@ class Pointer extends Bounds {
|
|
|
308
337
|
// true if not originally a pointer event
|
|
309
338
|
this.isNormalized = !device.PointerEvent || (device.PointerEvent && !(event instanceof window.PointerEvent));
|
|
310
339
|
|
|
340
|
+
this.locked = locked;
|
|
341
|
+
this.movementX = event.movementX || 0;
|
|
342
|
+
this.movementY = event.movementY || 0;
|
|
343
|
+
|
|
311
344
|
if (event.type === "wheel") {
|
|
312
345
|
this.deltaMode = event.deltaMode || 0;
|
|
313
346
|
this.deltaX = event.deltaX || 0;
|
|
@@ -1,14 +1,14 @@
|
|
|
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
|
|
|
@@ -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,7 +503,7 @@ function onPointerEvent(e) {
|
|
|
492
503
|
* @public
|
|
493
504
|
* @type {EventTarget}
|
|
494
505
|
* @name pointerEventTarget
|
|
495
|
-
* @
|
|
506
|
+
* @memberof me.input
|
|
496
507
|
*/
|
|
497
508
|
export var pointerEventTarget = null;
|
|
498
509
|
|
|
@@ -501,10 +512,20 @@ function onPointerEvent(e) {
|
|
|
501
512
|
* @public
|
|
502
513
|
* @type {me.Rect}
|
|
503
514
|
* @name pointer
|
|
504
|
-
* @
|
|
515
|
+
* @memberof me.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 me.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 me.input
|
|
516
537
|
*/
|
|
517
538
|
export var throttlingInterval;
|
|
518
539
|
|
|
@@ -520,7 +541,7 @@ 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 me.input
|
|
524
545
|
* @public
|
|
525
546
|
* @function
|
|
526
547
|
* @param {number} x the global x coordinate to be translated.
|
|
@@ -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 me.input
|
|
556
577
|
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
|
|
557
578
|
* @public
|
|
558
579
|
* @function
|
|
@@ -569,7 +590,7 @@ export function setTouchAction(element, value) {
|
|
|
569
590
|
* Middle button – 1
|
|
570
591
|
* Right button – 2
|
|
571
592
|
* @name bindPointer
|
|
572
|
-
* @
|
|
593
|
+
* @memberof me.input
|
|
573
594
|
* @public
|
|
574
595
|
* @function
|
|
575
596
|
* @param {number} [button=me.input.pointer.LEFT] (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
@@ -600,7 +621,7 @@ export function bindPointer() {
|
|
|
600
621
|
/**
|
|
601
622
|
* unbind the defined keycode
|
|
602
623
|
* @name unbindPointer
|
|
603
|
-
* @
|
|
624
|
+
* @memberof me.input
|
|
604
625
|
* @public
|
|
605
626
|
* @function
|
|
606
627
|
* @param {number} [button=me.input.pointer.LEFT] (accordingly to W3C values : 0,1,2 for left, middle and right buttons)
|
|
@@ -622,7 +643,7 @@ export function unbindPointer(button) {
|
|
|
622
643
|
* @see me.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 me.input
|
|
626
647
|
* @public
|
|
627
648
|
* @function
|
|
628
649
|
* @param {string} eventType The event type for which the object is registering <br>
|
|
@@ -694,7 +715,7 @@ 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 me.input
|
|
698
719
|
* @public
|
|
699
720
|
* @function
|
|
700
721
|
* @param {string} eventType The event type for which the object was registered. See {@link me.input.registerPointerEvent}
|
|
@@ -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,7 +760,7 @@ 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 me.input
|
|
743
764
|
* @public
|
|
744
765
|
* @function
|
|
745
766
|
* @param {me.Rect|me.Polygon|me.Line|me.Ellipse} region the registered region to release event from
|
|
@@ -754,3 +775,45 @@ export function releaseAllPointerEvents(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 me.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 me.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,13 @@
|
|
|
1
|
+
import device from "./../system/device.js";
|
|
2
|
+
import { requestPointerLock, exitPointerLock } from "./../input/input.js";
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* placeholder for all deprecated classes and corresponding alias for backward compatibility
|
|
3
|
-
* @namespace deprecated
|
|
4
|
-
* @memberOf me
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* display a deprecation warning in the console
|
|
9
|
-
* @
|
|
10
|
-
* @function
|
|
11
|
-
* @memberOf me.deprecated
|
|
12
|
-
* @name warning
|
|
10
|
+
* @ignore
|
|
13
11
|
* @param {string} deprecated deprecated class,function or property name
|
|
14
12
|
* @param {string} replacement the replacement class, function, or property name
|
|
15
13
|
* @param {string} version the version since when the lass,function or property is deprecated
|
|
@@ -42,17 +40,30 @@ export function warning(deprecated, replacement, version) {
|
|
|
42
40
|
if (console.groupCollapsed) {
|
|
43
41
|
console.groupEnd();
|
|
44
42
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
43
|
};
|
|
48
44
|
|
|
45
|
+
/**
|
|
46
|
+
* @public
|
|
47
|
+
* @type {Function}
|
|
48
|
+
* @name turnOnPointerLock
|
|
49
|
+
* @memberof me.device
|
|
50
|
+
* @deprecated since 10.3.0
|
|
51
|
+
* @see me.input.requestPointerLock
|
|
52
|
+
*/
|
|
53
|
+
device.turnOnPointerLock = function () {
|
|
54
|
+
warning("me.device.turnOnPointerLock()", "me.input.requestPointerLock()", "10.3.0");
|
|
55
|
+
return requestPointerLock();
|
|
56
|
+
};
|
|
49
57
|
|
|
50
58
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @
|
|
54
|
-
* @
|
|
59
|
+
* @public
|
|
60
|
+
* @type {Function}
|
|
61
|
+
* @name turnOffPointerLock
|
|
62
|
+
* @memberof me.device
|
|
63
|
+
* @deprecated since 10.3.0
|
|
64
|
+
* @see me.input.exitPointerLock
|
|
55
65
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
66
|
+
device.turnOffPointerLock = function () {
|
|
67
|
+
warning("me.device.turnOffPointerLock()", "me.input.exitPointerLock()", "10.3.0");
|
|
68
|
+
return exitPointerLock();
|
|
69
|
+
};
|
package/src/level/level.js
CHANGED
|
@@ -49,7 +49,7 @@ function safeLoadLevel(levelId, options, restart) {
|
|
|
49
49
|
/**
|
|
50
50
|
* Load a TMX level
|
|
51
51
|
* @name loadTMXLevel
|
|
52
|
-
* @
|
|
52
|
+
* @memberof me.level
|
|
53
53
|
* @private
|
|
54
54
|
* @param {string} levelId level id
|
|
55
55
|
* @param {me.Container} container target container
|
|
@@ -76,7 +76,7 @@ function loadTMXLevel(levelId, container, flatten, setViewportBounds) {
|
|
|
76
76
|
/**
|
|
77
77
|
* a level manager. once ressources loaded, the level manager contains all references of defined levels.
|
|
78
78
|
* @namespace level
|
|
79
|
-
* @
|
|
79
|
+
* @memberof me
|
|
80
80
|
*/
|
|
81
81
|
|
|
82
82
|
var level = {
|
|
@@ -84,7 +84,7 @@ var level = {
|
|
|
84
84
|
/**
|
|
85
85
|
* add a level into the game manager (usually called by the preloader)
|
|
86
86
|
* @name add
|
|
87
|
-
* @
|
|
87
|
+
* @memberof me.level
|
|
88
88
|
* @public
|
|
89
89
|
* @function
|
|
90
90
|
* @param {string} format level format (only "tmx" supported)
|
|
@@ -123,7 +123,7 @@ var level = {
|
|
|
123
123
|
* load a level into the game manager<br>
|
|
124
124
|
* (will also create all level defined entities, etc..)
|
|
125
125
|
* @name load
|
|
126
|
-
* @
|
|
126
|
+
* @memberof me.level
|
|
127
127
|
* @public
|
|
128
128
|
* @function
|
|
129
129
|
* @param {string} levelId level id
|
|
@@ -197,7 +197,7 @@ var level = {
|
|
|
197
197
|
/**
|
|
198
198
|
* return the current level id<br>
|
|
199
199
|
* @name getCurrentLevelId
|
|
200
|
-
* @
|
|
200
|
+
* @memberof me.level
|
|
201
201
|
* @public
|
|
202
202
|
* @function
|
|
203
203
|
* @returns {string}
|
|
@@ -211,7 +211,7 @@ var level = {
|
|
|
211
211
|
* for a reference to the live instantiated level,
|
|
212
212
|
* rather use the container in which it was loaded (e.g. me.game.world)
|
|
213
213
|
* @name getCurrentLevel
|
|
214
|
-
* @
|
|
214
|
+
* @memberof me.level
|
|
215
215
|
* @public
|
|
216
216
|
* @function
|
|
217
217
|
* @returns {me.TMXTileMap}
|
|
@@ -223,7 +223,7 @@ var level = {
|
|
|
223
223
|
/**
|
|
224
224
|
* reload the current level
|
|
225
225
|
* @name reload
|
|
226
|
-
* @
|
|
226
|
+
* @memberof me.level
|
|
227
227
|
* @public
|
|
228
228
|
* @function
|
|
229
229
|
* @param {object} [options] additional optional parameters
|
|
@@ -241,7 +241,7 @@ var level = {
|
|
|
241
241
|
/**
|
|
242
242
|
* load the next level
|
|
243
243
|
* @name next
|
|
244
|
-
* @
|
|
244
|
+
* @memberof me.level
|
|
245
245
|
* @public
|
|
246
246
|
* @function
|
|
247
247
|
* @param {object} [options] additional optional parameters
|
|
@@ -263,7 +263,7 @@ var level = {
|
|
|
263
263
|
/**
|
|
264
264
|
* load the previous level<br>
|
|
265
265
|
* @name previous
|
|
266
|
-
* @
|
|
266
|
+
* @memberof me.level
|
|
267
267
|
* @public
|
|
268
268
|
* @function
|
|
269
269
|
* @param {object} [options] additional optional parameters
|
|
@@ -285,7 +285,7 @@ var level = {
|
|
|
285
285
|
/**
|
|
286
286
|
* return the amount of level preloaded
|
|
287
287
|
* @name levelCount
|
|
288
|
-
* @
|
|
288
|
+
* @memberof me.level
|
|
289
289
|
* @public
|
|
290
290
|
* @function
|
|
291
291
|
* @returns {number} the amount of level preloaded
|
|
@@ -8,7 +8,6 @@ import { clamp } from "./../../math/math.js";
|
|
|
8
8
|
* object group definition as defined in Tiled.
|
|
9
9
|
* (group definition is translated into the virtual `me.game.world` using `me.Container`)
|
|
10
10
|
* @class TMXGroup
|
|
11
|
-
* @constructor
|
|
12
11
|
* @ignore
|
|
13
12
|
*/
|
|
14
13
|
export default class TMXGroup {
|
|
@@ -20,7 +19,7 @@ export default class TMXGroup {
|
|
|
20
19
|
* @public
|
|
21
20
|
* @type {string}
|
|
22
21
|
* @name name
|
|
23
|
-
* @
|
|
22
|
+
* @memberof me.TMXGroup
|
|
24
23
|
*/
|
|
25
24
|
this.name = data.name;
|
|
26
25
|
|
|
@@ -29,7 +28,7 @@ export default class TMXGroup {
|
|
|
29
28
|
* @public
|
|
30
29
|
* @type {number}
|
|
31
30
|
* @name width
|
|
32
|
-
* @
|
|
31
|
+
* @memberof me.TMXGroup
|
|
33
32
|
*/
|
|
34
33
|
this.width = data.width || 0;
|
|
35
34
|
|
|
@@ -38,7 +37,7 @@ export default class TMXGroup {
|
|
|
38
37
|
* @public
|
|
39
38
|
* @type {number}
|
|
40
39
|
* @name height
|
|
41
|
-
* @
|
|
40
|
+
* @memberof me.TMXGroup
|
|
42
41
|
*/
|
|
43
42
|
this.height = data.height || 0;
|
|
44
43
|
|
|
@@ -47,7 +46,7 @@ export default class TMXGroup {
|
|
|
47
46
|
* @public
|
|
48
47
|
* @type {string}
|
|
49
48
|
* @name tintcolor
|
|
50
|
-
* @
|
|
49
|
+
* @memberof me.TMXGroup
|
|
51
50
|
*/
|
|
52
51
|
this.tintcolor = data.tintcolor;
|
|
53
52
|
|
|
@@ -56,7 +55,7 @@ export default class TMXGroup {
|
|
|
56
55
|
* @public
|
|
57
56
|
* @type {number}
|
|
58
57
|
* @name z
|
|
59
|
-
* @
|
|
58
|
+
* @memberof me.TMXGroup
|
|
60
59
|
*/
|
|
61
60
|
this.z = z;
|
|
62
61
|
|
|
@@ -66,7 +65,7 @@ export default class TMXGroup {
|
|
|
66
65
|
* @public
|
|
67
66
|
* @type {object[]}
|
|
68
67
|
* @name name
|
|
69
|
-
* @
|
|
68
|
+
* @memberof me.TMXGroup
|
|
70
69
|
*/
|
|
71
70
|
this.objects = [];
|
|
72
71
|
|