melonjs 10.2.0 → 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/README.md +1 -1
- package/dist/melonjs.js +4435 -4283
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +3348 -3833
- package/dist/melonjs.module.js +4025 -3920
- package/package.json +13 -14
- package/src/audio/audio.js +45 -45
- package/src/camera/camera2d.js +78 -101
- package/src/entity/draggable.js +21 -29
- package/src/entity/droptarget.js +24 -31
- package/src/entity/entity.js +34 -38
- package/src/game.js +8 -8
- package/src/{shapes → geometries}/ellipse.js +46 -46
- package/src/{shapes → geometries}/line.js +14 -14
- package/src/{shapes → geometries}/poly.js +103 -54
- package/src/{shapes → geometries}/rectangle.js +73 -120
- package/src/index.js +18 -19
- package/src/input/gamepad.js +20 -20
- package/src/input/input.js +3 -3
- package/src/input/keyboard.js +122 -124
- package/src/input/pointer.js +102 -62
- package/src/input/pointerevent.js +97 -42
- package/src/lang/deprecated.js +29 -18
- package/src/level/level.js +34 -26
- package/src/level/tiled/TMXGroup.js +12 -13
- package/src/level/tiled/TMXLayer.js +41 -42
- package/src/level/tiled/TMXObject.js +76 -70
- package/src/level/tiled/TMXTile.js +13 -15
- package/src/level/tiled/TMXTileMap.js +26 -25
- package/src/level/tiled/TMXTileset.js +14 -15
- package/src/level/tiled/TMXTilesetGroup.js +5 -6
- package/src/level/tiled/TMXUtils.js +13 -11
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +18 -19
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
- package/src/loader/loader.js +46 -40
- package/src/loader/loadingscreen.js +7 -7
- package/src/math/color.js +68 -88
- package/src/math/math.js +33 -33
- package/src/math/matrix2.js +70 -71
- package/src/math/matrix3.js +90 -91
- package/src/math/observable_vector2.js +91 -92
- package/src/math/observable_vector3.js +110 -106
- package/src/math/vector2.js +116 -104
- package/src/math/vector3.js +129 -110
- package/src/particles/emitter.js +116 -126
- package/src/particles/particle.js +4 -5
- package/src/particles/particlecontainer.js +2 -3
- package/src/physics/body.js +82 -83
- package/src/physics/bounds.js +64 -66
- package/src/physics/collision.js +21 -22
- package/src/physics/detector.js +13 -13
- package/src/physics/quadtree.js +26 -25
- package/src/physics/sat.js +21 -21
- package/src/physics/world.js +23 -22
- package/src/plugin/plugin.js +12 -13
- package/src/renderable/GUI.js +20 -26
- package/src/renderable/collectable.js +6 -7
- package/src/renderable/colorlayer.js +11 -12
- package/src/renderable/container.js +98 -81
- package/src/renderable/imagelayer.js +33 -35
- package/src/renderable/nineslicesprite.js +15 -16
- package/src/renderable/renderable.js +112 -111
- package/src/renderable/sprite.js +71 -58
- package/src/renderable/trigger.js +17 -19
- package/src/state/stage.js +14 -15
- package/src/state/state.js +78 -78
- package/src/system/device.js +137 -180
- package/src/system/event.js +116 -104
- package/src/system/pooling.js +15 -15
- package/src/system/save.js +9 -6
- package/src/system/timer.js +33 -33
- package/src/text/bitmaptext.js +39 -46
- package/src/text/bitmaptextdata.js +14 -15
- package/src/text/text.js +55 -58
- package/src/tweens/easing.js +5 -5
- package/src/tweens/interpolation.js +5 -5
- package/src/tweens/tween.js +49 -40
- package/src/utils/agent.js +12 -11
- package/src/utils/array.js +8 -8
- package/src/utils/file.js +7 -7
- package/src/utils/function.js +8 -8
- package/src/utils/string.js +19 -19
- package/src/utils/utils.js +23 -23
- package/src/video/canvas/canvas_renderer.js +127 -128
- package/src/video/renderer.js +69 -69
- package/src/video/texture.js +80 -82
- package/src/video/texture_cache.js +2 -4
- package/src/video/video.js +38 -38
- package/src/video/webgl/buffer/vertex.js +11 -3
- package/src/video/webgl/glshader.js +31 -32
- package/src/video/webgl/webgl_compositor.js +145 -127
- package/src/video/webgl/webgl_renderer.js +196 -175
package/src/system/event.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import EventEmitter from "eventemitter3";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* an event system based on nodeJS EventEmitter interface
|
|
5
|
-
* @namespace event
|
|
6
|
-
* @
|
|
7
|
-
*/
|
|
4
|
+
* an event system based on nodeJS EventEmitter interface
|
|
5
|
+
* @namespace event
|
|
6
|
+
* @memberof me
|
|
7
|
+
*/
|
|
8
8
|
|
|
9
9
|
// internal instance of the event emiter
|
|
10
10
|
var eventEmitter = new EventEmitter();
|
|
@@ -13,9 +13,9 @@ var eventEmitter = new EventEmitter();
|
|
|
13
13
|
* event when the system is booting
|
|
14
14
|
* @public
|
|
15
15
|
* @constant
|
|
16
|
-
* @type
|
|
16
|
+
* @type {string}
|
|
17
17
|
* @name BOOT
|
|
18
|
-
* @
|
|
18
|
+
* @memberof me.event
|
|
19
19
|
* @see me.event.on
|
|
20
20
|
*/
|
|
21
21
|
export const BOOT = "me.boot";
|
|
@@ -25,21 +25,21 @@ export const BOOT = "me.boot";
|
|
|
25
25
|
* Data passed : none <br>
|
|
26
26
|
* @public
|
|
27
27
|
* @constant
|
|
28
|
-
* @type
|
|
28
|
+
* @type {string}
|
|
29
29
|
* @name STATE_PAUSE
|
|
30
|
-
* @
|
|
30
|
+
* @memberof me.event
|
|
31
31
|
* @see me.event.on
|
|
32
32
|
*/
|
|
33
33
|
export const STATE_PAUSE = "me.state.onPause";
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* event for when the game is resumed <br>
|
|
37
|
-
* Data passed : {
|
|
37
|
+
* Data passed : {number} time in ms the game was paused
|
|
38
38
|
* @public
|
|
39
39
|
* @constant
|
|
40
|
-
* @type
|
|
40
|
+
* @type {string}
|
|
41
41
|
* @name STATE_RESUME
|
|
42
|
-
* @
|
|
42
|
+
* @memberof me.event
|
|
43
43
|
* @see me.event.on
|
|
44
44
|
*/
|
|
45
45
|
export const STATE_RESUME = "me.state.onResume";
|
|
@@ -49,21 +49,21 @@ export const STATE_RESUME = "me.state.onResume";
|
|
|
49
49
|
* Data passed : none <br>
|
|
50
50
|
* @public
|
|
51
51
|
* @constant
|
|
52
|
-
* @type
|
|
52
|
+
* @type {string}
|
|
53
53
|
* @name STATE_STOP
|
|
54
|
-
* @
|
|
54
|
+
* @memberof me.event
|
|
55
55
|
* @see me.event.on
|
|
56
56
|
*/
|
|
57
57
|
export const STATE_STOP = "me.state.onStop";
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* event for when the game is restarted <br>
|
|
61
|
-
* Data passed : {
|
|
61
|
+
* Data passed : {number} time in ms the game was stopped
|
|
62
62
|
* @public
|
|
63
63
|
* @constant
|
|
64
|
-
* @type
|
|
64
|
+
* @type {string}
|
|
65
65
|
* @name STATE_RESTART
|
|
66
|
-
* @
|
|
66
|
+
* @memberof me.event
|
|
67
67
|
* @see me.event.on
|
|
68
68
|
*/
|
|
69
69
|
export const STATE_RESTART = "me.state.onRestart";
|
|
@@ -73,9 +73,9 @@ export const STATE_RESTART = "me.state.onRestart";
|
|
|
73
73
|
* Data passed : none <br>
|
|
74
74
|
* @public
|
|
75
75
|
* @constant
|
|
76
|
-
* @type
|
|
76
|
+
* @type {string}
|
|
77
77
|
* @name VIDEO_INIT
|
|
78
|
-
* @
|
|
78
|
+
* @memberof me.event
|
|
79
79
|
* @see me.video.init
|
|
80
80
|
* @see me.event.on
|
|
81
81
|
*/
|
|
@@ -86,9 +86,9 @@ export const VIDEO_INIT = "me.video.onInit";
|
|
|
86
86
|
* Data passed : none <br>
|
|
87
87
|
* @public
|
|
88
88
|
* @constant
|
|
89
|
-
* @type
|
|
89
|
+
* @type {string}
|
|
90
90
|
* @name GAME_INIT
|
|
91
|
-
* @
|
|
91
|
+
* @memberof me.event
|
|
92
92
|
* @see me.event.on
|
|
93
93
|
*/
|
|
94
94
|
export const GAME_INIT = "me.game.onInit";
|
|
@@ -98,81 +98,81 @@ export const GAME_INIT = "me.game.onInit";
|
|
|
98
98
|
* Data passed : none <br>
|
|
99
99
|
* @public
|
|
100
100
|
* @constant
|
|
101
|
-
* @type
|
|
101
|
+
* @type {string}
|
|
102
102
|
* @name GAME_RESET
|
|
103
|
-
* @
|
|
103
|
+
* @memberof me.event
|
|
104
104
|
* @see me.event.on
|
|
105
105
|
*/
|
|
106
106
|
export const GAME_RESET = "me.game.onReset";
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
109
|
* event for when the engine is about to start a new game loop
|
|
110
|
-
* Data passed : {
|
|
110
|
+
* Data passed : {number} time the current time stamp
|
|
111
111
|
* @public
|
|
112
112
|
* @constant
|
|
113
|
-
* @type
|
|
113
|
+
* @type {string}
|
|
114
114
|
* @name GAME_BEFORE_UPDATE
|
|
115
|
-
* @
|
|
115
|
+
* @memberof me.event
|
|
116
116
|
* @see me.event.on
|
|
117
117
|
*/
|
|
118
118
|
export const GAME_BEFORE_UPDATE = "me.game.beforeUpdate";
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
121
|
* event for the end of the update loop
|
|
122
|
-
* Data passed : {
|
|
122
|
+
* Data passed : {number} time the current time stamp
|
|
123
123
|
* @public
|
|
124
124
|
* @constant
|
|
125
|
-
* @type
|
|
125
|
+
* @type {string}
|
|
126
126
|
* @name GAME_AFTER_UPDATE
|
|
127
|
-
* @
|
|
127
|
+
* @memberof me.event
|
|
128
128
|
* @see me.event.on
|
|
129
129
|
*/
|
|
130
130
|
export const GAME_AFTER_UPDATE = "me.game.afterUpdate";
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
133
|
* Event for when the game is updated (will be impacted by frame skip, frame interpolation and pause/resume state) <br>
|
|
134
|
-
* Data passed : {
|
|
134
|
+
* Data passed : {number} time the current time stamp
|
|
135
135
|
* @public
|
|
136
136
|
* @constant
|
|
137
|
-
* @type
|
|
137
|
+
* @type {string}
|
|
138
138
|
* @name GAME_UPDATE
|
|
139
|
-
* @
|
|
139
|
+
* @memberof me.event
|
|
140
140
|
* @see me.event.on
|
|
141
141
|
*/
|
|
142
142
|
export const GAME_UPDATE = "me.game.onUpdate";
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
145
|
* Event for the end of the draw loop
|
|
146
|
-
* Data passed : {
|
|
146
|
+
* Data passed : {number} time the current time stamp
|
|
147
147
|
* @public
|
|
148
148
|
* @constant
|
|
149
|
-
* @type
|
|
149
|
+
* @type {string}
|
|
150
150
|
* @name GAME_BEFORE_DRAW
|
|
151
|
-
* @
|
|
151
|
+
* @memberof me.event
|
|
152
152
|
* @see me.event.on
|
|
153
153
|
*/
|
|
154
154
|
export const GAME_BEFORE_DRAW = "me.game.beforeDraw";
|
|
155
155
|
|
|
156
156
|
/**
|
|
157
157
|
* Event for the start of the draw loop
|
|
158
|
-
* Data passed : {
|
|
158
|
+
* Data passed : {number} time the current time stamp
|
|
159
159
|
* @public
|
|
160
160
|
* @constant
|
|
161
|
-
* @type
|
|
161
|
+
* @type {string}
|
|
162
162
|
* @name GAME_AFTER_DRAW
|
|
163
|
-
* @
|
|
163
|
+
* @memberof me.event
|
|
164
164
|
* @see me.event.on
|
|
165
165
|
*/
|
|
166
166
|
export const GAME_AFTER_DRAW = "me.game.afterDraw";
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* Event for when a level is loaded <br>
|
|
170
|
-
* Data passed : {
|
|
170
|
+
* Data passed : {string} Level Name
|
|
171
171
|
* @public
|
|
172
172
|
* @constant
|
|
173
|
-
* @type
|
|
173
|
+
* @type {string}
|
|
174
174
|
* @name LEVEL_LOADED
|
|
175
|
-
* @
|
|
175
|
+
* @memberof me.event
|
|
176
176
|
* @see me.event.on
|
|
177
177
|
*/
|
|
178
178
|
export const LEVEL_LOADED = "me.game.onLevelLoaded";
|
|
@@ -182,38 +182,38 @@ export const LEVEL_LOADED = "me.game.onLevelLoaded";
|
|
|
182
182
|
* Data passed : none <br>
|
|
183
183
|
* @public
|
|
184
184
|
* @constant
|
|
185
|
-
* @type
|
|
185
|
+
* @type {string}
|
|
186
186
|
* @name LOADER_COMPLETE
|
|
187
|
-
* @
|
|
187
|
+
* @memberof me.event
|
|
188
188
|
* @see me.event.on
|
|
189
189
|
*/
|
|
190
190
|
export const LOADER_COMPLETE = "me.loader.onload";
|
|
191
191
|
|
|
192
192
|
/**
|
|
193
193
|
* Event for displaying a load progress indicator <br>
|
|
194
|
-
* Data passed : {
|
|
194
|
+
* Data passed : {number} [0 .. 1], {Resource} resource object<br>
|
|
195
195
|
* @public
|
|
196
196
|
* @constant
|
|
197
|
-
* @type
|
|
197
|
+
* @type {string}
|
|
198
198
|
* @name LOADER_PROGRESS
|
|
199
|
-
* @
|
|
199
|
+
* @memberof me.event
|
|
200
200
|
* @see me.event.on
|
|
201
201
|
*/
|
|
202
202
|
export const LOADER_PROGRESS = "me.loader.onProgress";
|
|
203
203
|
|
|
204
204
|
/**
|
|
205
205
|
* Event for pressing a binded key <br>
|
|
206
|
-
* Data passed : {
|
|
207
|
-
* {
|
|
206
|
+
* Data passed : {string} user-defined action, {number} keyCode,
|
|
207
|
+
* {boolean} edge state <br>
|
|
208
208
|
* Edge-state is for detecting "locked" key bindings. When a locked key
|
|
209
209
|
* is pressed and held, the first event will have the third argument
|
|
210
210
|
* set true. Subsequent events will continue firing with the third
|
|
211
211
|
* argument set false.
|
|
212
212
|
* @public
|
|
213
213
|
* @constant
|
|
214
|
-
* @type
|
|
214
|
+
* @type {string}
|
|
215
215
|
* @name KEYDOWN
|
|
216
|
-
* @
|
|
216
|
+
* @memberof me.event
|
|
217
217
|
* @see me.event.on
|
|
218
218
|
* @example
|
|
219
219
|
* me.input.bindKey(me.input.KEY.X, "jump", true); // Edge-triggered
|
|
@@ -234,12 +234,12 @@ export const KEYDOWN = "me.input.keydown";
|
|
|
234
234
|
|
|
235
235
|
/**
|
|
236
236
|
* Event for releasing a binded key <br>
|
|
237
|
-
* Data passed : {
|
|
237
|
+
* Data passed : {string} user-defined action, {number} keyCode
|
|
238
238
|
* @public
|
|
239
239
|
* @constant
|
|
240
|
-
* @type
|
|
240
|
+
* @type {string}
|
|
241
241
|
* @name KEYUP
|
|
242
|
-
* @
|
|
242
|
+
* @memberof me.event
|
|
243
243
|
* @see me.event.on
|
|
244
244
|
* @example
|
|
245
245
|
* me.event.on(me.event.KEYUP, (action, keyCode) => {
|
|
@@ -258,40 +258,40 @@ export const KEYUP = "me.input.keyup";
|
|
|
258
258
|
|
|
259
259
|
/**
|
|
260
260
|
* Event for when a gamepad is connected <br>
|
|
261
|
-
* Data passed : {
|
|
261
|
+
* Data passed : {object} gamepad object
|
|
262
262
|
* @public
|
|
263
263
|
* @constant
|
|
264
|
-
* @type
|
|
264
|
+
* @type {string}
|
|
265
265
|
* @name GAMEPAD_CONNECTED
|
|
266
|
-
* @
|
|
266
|
+
* @memberof me.event
|
|
267
267
|
* @see me.event.on
|
|
268
268
|
*/
|
|
269
269
|
export const GAMEPAD_CONNECTED = "gamepad.connected";
|
|
270
270
|
|
|
271
271
|
/**
|
|
272
272
|
* Event for when a gamepad is disconnected <br>
|
|
273
|
-
* Data passed : {
|
|
273
|
+
* Data passed : {object} gamepad object
|
|
274
274
|
* @public
|
|
275
275
|
* @constant
|
|
276
|
-
* @type
|
|
276
|
+
* @type {string}
|
|
277
277
|
* @name GAMEPAD_DISCONNECTED
|
|
278
|
-
* @
|
|
278
|
+
* @memberof me.event
|
|
279
279
|
* @see me.event.on
|
|
280
280
|
*/
|
|
281
281
|
export const GAMEPAD_DISCONNECTED = "gamepad.disconnected";
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
284
|
* Event for when gamepad button/axis state is updated <br>
|
|
285
|
-
* Data passed : {
|
|
286
|
-
* Data passed : {
|
|
287
|
-
* Data passed : {
|
|
288
|
-
* Data passed : {
|
|
289
|
-
* Data passed : {
|
|
285
|
+
* Data passed : {number} index <br>
|
|
286
|
+
* Data passed : {string} type : "axes" or "buttons" <br>
|
|
287
|
+
* Data passed : {number} button <br>
|
|
288
|
+
* Data passed : {number} current.value <br>
|
|
289
|
+
* Data passed : {boolean} current.pressed
|
|
290
290
|
* @public
|
|
291
291
|
* @constant
|
|
292
|
-
* @type
|
|
292
|
+
* @type {string}
|
|
293
293
|
* @name GAMEPAD_UPDATE
|
|
294
|
-
* @
|
|
294
|
+
* @memberof me.event
|
|
295
295
|
* @see me.event.on
|
|
296
296
|
*/
|
|
297
297
|
export const GAMEPAD_UPDATE = "gamepad.update";
|
|
@@ -301,23 +301,35 @@ export const GAMEPAD_UPDATE = "gamepad.update";
|
|
|
301
301
|
* Data passed : {me.Pointer} a Pointer object
|
|
302
302
|
* @public
|
|
303
303
|
* @constant
|
|
304
|
-
* @type
|
|
304
|
+
* @type {string}
|
|
305
305
|
* @name POINTERMOVE
|
|
306
|
-
* @
|
|
306
|
+
* @memberof me.event
|
|
307
307
|
* @see me.event.on
|
|
308
308
|
*/
|
|
309
309
|
export const POINTERMOVE = "me.event.pointermove";
|
|
310
310
|
|
|
311
|
+
/**
|
|
312
|
+
* Event for onPointerLockChange event <br>
|
|
313
|
+
* Data passed : {boolean} pointer lock status (true/false)
|
|
314
|
+
* @public
|
|
315
|
+
* @constant
|
|
316
|
+
* @type {string}
|
|
317
|
+
* @name POINTERLOCKCHANGE
|
|
318
|
+
* @memberof me.event
|
|
319
|
+
* @see me.event.on
|
|
320
|
+
*/
|
|
321
|
+
export const POINTERLOCKCHANGE = "me.event.pointerlockChange";
|
|
322
|
+
|
|
311
323
|
/**
|
|
312
324
|
* Event for dragstart events on a Draggable entity <br>
|
|
313
325
|
* Data passed:
|
|
314
|
-
* {
|
|
315
|
-
* {
|
|
326
|
+
* {object} the drag event <br>
|
|
327
|
+
* {object} the Draggable entity
|
|
316
328
|
* @public
|
|
317
329
|
* @constant
|
|
318
|
-
* @type
|
|
330
|
+
* @type {string}
|
|
319
331
|
* @name DRAGSTART
|
|
320
|
-
* @
|
|
332
|
+
* @memberof me.event
|
|
321
333
|
* @see me.event.on
|
|
322
334
|
*/
|
|
323
335
|
export const DRAGSTART = "me.game.dragstart";
|
|
@@ -325,13 +337,13 @@ export const DRAGSTART = "me.game.dragstart";
|
|
|
325
337
|
/**
|
|
326
338
|
* Event for dragend events on a Draggable entity <br>
|
|
327
339
|
* Data passed:
|
|
328
|
-
* {
|
|
329
|
-
* {
|
|
340
|
+
* {object} the drag event <br>
|
|
341
|
+
* {object} the Draggable entity
|
|
330
342
|
* @public
|
|
331
343
|
* @constant
|
|
332
|
-
* @type
|
|
344
|
+
* @type {string}
|
|
333
345
|
* @name DRAGEND
|
|
334
|
-
* @
|
|
346
|
+
* @memberof me.event
|
|
335
347
|
* @see me.event.on
|
|
336
348
|
*/
|
|
337
349
|
export const DRAGEND = "me.game.dragend";
|
|
@@ -341,9 +353,9 @@ export const DRAGEND = "me.game.dragend";
|
|
|
341
353
|
* Data passed : {Event} Event object
|
|
342
354
|
* @public
|
|
343
355
|
* @constant
|
|
344
|
-
* @type
|
|
356
|
+
* @type {string}
|
|
345
357
|
* @name WINDOW_ONRESIZE
|
|
346
|
-
* @
|
|
358
|
+
* @memberof me.event
|
|
347
359
|
* @see me.event.on
|
|
348
360
|
*/
|
|
349
361
|
export const WINDOW_ONRESIZE = "window.onresize";
|
|
@@ -351,13 +363,13 @@ export const WINDOW_ONRESIZE = "window.onresize";
|
|
|
351
363
|
/**
|
|
352
364
|
* Event for when the canvas is resized <br>
|
|
353
365
|
* (this usually follows a WINDOW_ONRESIZE event).<br>
|
|
354
|
-
* Data passed : {
|
|
355
|
-
* Data passed : {
|
|
366
|
+
* Data passed : {number} canvas width <br>
|
|
367
|
+
* Data passed : {number} canvas height
|
|
356
368
|
* @public
|
|
357
369
|
* @constant
|
|
358
|
-
* @type
|
|
370
|
+
* @type {string}
|
|
359
371
|
* @name CANVAS_ONRESIZE
|
|
360
|
-
* @
|
|
372
|
+
* @memberof me.event
|
|
361
373
|
* @see me.event.on
|
|
362
374
|
*/
|
|
363
375
|
export const CANVAS_ONRESIZE = "canvas.onresize";
|
|
@@ -365,13 +377,13 @@ export const CANVAS_ONRESIZE = "canvas.onresize";
|
|
|
365
377
|
/**
|
|
366
378
|
* Event for when the viewport is resized <br>
|
|
367
379
|
* (this usually follows a WINDOW_ONRESIZE event, when using the `flex` scaling mode is used and after the viewport was updated).<br>
|
|
368
|
-
* Data passed : {
|
|
369
|
-
* Data passed : {
|
|
380
|
+
* Data passed : {number} viewport width <br>
|
|
381
|
+
* Data passed : {number} viewport height
|
|
370
382
|
* @public
|
|
371
383
|
* @constant
|
|
372
|
-
* @type
|
|
384
|
+
* @type {string}
|
|
373
385
|
* @name VIEWPORT_ONRESIZE
|
|
374
|
-
* @
|
|
386
|
+
* @memberof me.event
|
|
375
387
|
* @see me.event.on
|
|
376
388
|
*/
|
|
377
389
|
export const VIEWPORT_ONRESIZE = "viewport.onresize";
|
|
@@ -381,9 +393,9 @@ export const VIEWPORT_ONRESIZE = "viewport.onresize";
|
|
|
381
393
|
* Data passed : {Event} Event object <br>
|
|
382
394
|
* @public
|
|
383
395
|
* @constant
|
|
384
|
-
* @type
|
|
396
|
+
* @type {string}
|
|
385
397
|
* @name WINDOW_ONORIENTATION_CHANGE
|
|
386
|
-
* @
|
|
398
|
+
* @memberof me.event
|
|
387
399
|
* @see me.event.on
|
|
388
400
|
*/
|
|
389
401
|
export const WINDOW_ONORIENTATION_CHANGE = "window.orientationchange";
|
|
@@ -393,9 +405,9 @@ export const WINDOW_ONORIENTATION_CHANGE = "window.orientationchange";
|
|
|
393
405
|
* Data passed : {Event} Event object
|
|
394
406
|
* @public
|
|
395
407
|
* @constant
|
|
396
|
-
* @type
|
|
408
|
+
* @type {string}
|
|
397
409
|
* @name WINDOW_ONSCROLL
|
|
398
|
-
* @
|
|
410
|
+
* @memberof me.event
|
|
399
411
|
* @see me.event.on
|
|
400
412
|
*/
|
|
401
413
|
export const WINDOW_ONSCROLL = "window.onscroll";
|
|
@@ -405,9 +417,9 @@ export const WINDOW_ONSCROLL = "window.onscroll";
|
|
|
405
417
|
* Data passed : {me.Vector2d} viewport position vector
|
|
406
418
|
* @public
|
|
407
419
|
* @constant
|
|
408
|
-
* @type
|
|
420
|
+
* @type {string}
|
|
409
421
|
* @name VIEWPORT_ONCHANGE
|
|
410
|
-
* @
|
|
422
|
+
* @memberof me.event
|
|
411
423
|
* @see me.event.on
|
|
412
424
|
*/
|
|
413
425
|
export const VIEWPORT_ONCHANGE = "viewport.onchange";
|
|
@@ -417,9 +429,9 @@ export const VIEWPORT_ONCHANGE = "viewport.onchange";
|
|
|
417
429
|
* Data passed : {me.WebGLRenderer} the current webgl renderer instance`
|
|
418
430
|
* @public
|
|
419
431
|
* @constant
|
|
420
|
-
* @type
|
|
432
|
+
* @type {string}
|
|
421
433
|
* @name WEBGL_ONCONTEXT_LOST
|
|
422
|
-
* @
|
|
434
|
+
* @memberof me.event
|
|
423
435
|
* @see me.event.on
|
|
424
436
|
*/
|
|
425
437
|
export const WEBGL_ONCONTEXT_LOST = "renderer.webglcontextlost";
|
|
@@ -429,9 +441,9 @@ export const WEBGL_ONCONTEXT_LOST = "renderer.webglcontextlost";
|
|
|
429
441
|
* Data passed : {me.WebGLRenderer} the current webgl renderer instance`
|
|
430
442
|
* @public
|
|
431
443
|
* @constant
|
|
432
|
-
* @type
|
|
444
|
+
* @type {string}
|
|
433
445
|
* @name WEBGL_ONCONTEXT_RESTORED
|
|
434
|
-
* @
|
|
446
|
+
* @memberof me.event
|
|
435
447
|
* @see me.event.on
|
|
436
448
|
*/
|
|
437
449
|
export const WEBGL_ONCONTEXT_RESTORED = "renderer.webglcontextrestored";
|
|
@@ -439,9 +451,9 @@ export const WEBGL_ONCONTEXT_RESTORED = "renderer.webglcontextrestored";
|
|
|
439
451
|
/**
|
|
440
452
|
* calls each of the listeners registered for a given event.
|
|
441
453
|
* @function me.event.emit
|
|
442
|
-
* @param {
|
|
443
|
-
* @param {
|
|
444
|
-
* @
|
|
454
|
+
* @param {string|symbol} eventName The event name.
|
|
455
|
+
* @param {object} [...arguments] arguments to be passed to all listeners
|
|
456
|
+
* @returns {boolean} true if the event had listeners, false otherwise.
|
|
445
457
|
* @example
|
|
446
458
|
* me.event.emit("event-name", a, b, c);
|
|
447
459
|
*/
|
|
@@ -452,8 +464,8 @@ export function emit(eventName, ...args) {
|
|
|
452
464
|
/**
|
|
453
465
|
* Add a listener for a given event.
|
|
454
466
|
* @function me.event.on
|
|
455
|
-
* @param {
|
|
456
|
-
* @param {Function}
|
|
467
|
+
* @param {string|symbol} eventName The event name.
|
|
468
|
+
* @param {Function} listener The listener function.
|
|
457
469
|
* @param {*} [context=this] The context to invoke the listener with.
|
|
458
470
|
* @returns {EventEmitter} `this`.
|
|
459
471
|
* @public
|
|
@@ -467,8 +479,8 @@ export function on(eventName, listener, context) {
|
|
|
467
479
|
/**
|
|
468
480
|
* Add a one-time listener for a given event.
|
|
469
481
|
* @function me.event.once
|
|
470
|
-
* @param {
|
|
471
|
-
* @param {Function}
|
|
482
|
+
* @param {string|symbol} eventName The event name.
|
|
483
|
+
* @param {Function} listener The listener function.
|
|
472
484
|
* @param {*} [context=this] The context to invoke the listener with.
|
|
473
485
|
* @returns {EventEmitter} `this`.
|
|
474
486
|
* @public
|
|
@@ -482,8 +494,8 @@ export function once(eventName, listener, context) {
|
|
|
482
494
|
/**
|
|
483
495
|
* remove the given listener for a given event.
|
|
484
496
|
* @function me.event.off
|
|
485
|
-
* @param {
|
|
486
|
-
* @param {Function}
|
|
497
|
+
* @param {string|symbol} eventName The event name.
|
|
498
|
+
* @param {Function} listener The listener function.
|
|
487
499
|
* @returns {EventEmitter} `this`.
|
|
488
500
|
* @public
|
|
489
501
|
* @example
|
package/src/system/pooling.js
CHANGED
|
@@ -13,7 +13,7 @@ var instance_counter = 0;
|
|
|
13
13
|
* found in the map, based on the user defined name in each Object Properties<br>
|
|
14
14
|
* <img src="images/object_properties.png"/><br>
|
|
15
15
|
* @namespace me.pool
|
|
16
|
-
* @
|
|
16
|
+
* @memberof me
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
var pool = {
|
|
@@ -23,9 +23,9 @@ var pool = {
|
|
|
23
23
|
* Pooling must be set to true if more than one such objects will be created. <br>
|
|
24
24
|
* (Note: for an object to be poolable, it must implements a `onResetEvent` method)
|
|
25
25
|
* @function me.pool.register
|
|
26
|
-
* @param {
|
|
27
|
-
* @param {
|
|
28
|
-
* @param {
|
|
26
|
+
* @param {string} className as defined in the Name field of the Object Properties (in Tiled)
|
|
27
|
+
* @param {object} classObj corresponding Class to be instantiated
|
|
28
|
+
* @param {boolean} [recycling=false] enables object recycling for the specified class
|
|
29
29
|
* @example
|
|
30
30
|
* // implement CherryEntity
|
|
31
31
|
* class CherryEntity extends Spritesheet {
|
|
@@ -51,9 +51,9 @@ var pool = {
|
|
|
51
51
|
/**
|
|
52
52
|
* Pull a new instance of the requested object (if added into the object pool)
|
|
53
53
|
* @function me.pool.pull
|
|
54
|
-
* @param {
|
|
55
|
-
* @param {} [arguments
|
|
56
|
-
* @
|
|
54
|
+
* @param {string} name as used in {@link me.pool.register}
|
|
55
|
+
* @param {object} [...arguments] arguments to be passed when instantiating/reinitializing the object
|
|
56
|
+
* @returns {object} the instance of the requested object
|
|
57
57
|
* @example
|
|
58
58
|
* me.pool.register("bullet", BulletEntity, true);
|
|
59
59
|
* me.pool.register("enemy", EnemyEntity, true);
|
|
@@ -125,9 +125,9 @@ var pool = {
|
|
|
125
125
|
* otherwise this function won't work
|
|
126
126
|
* @function me.pool.push
|
|
127
127
|
* @throws will throw an error if the object cannot be recycled
|
|
128
|
-
* @param {
|
|
129
|
-
* @param {
|
|
130
|
-
* @
|
|
128
|
+
* @param {object} obj instance to be recycled
|
|
129
|
+
* @param {boolean} [throwOnError=true] throw an exception if the object cannot be recycled
|
|
130
|
+
* @returns {boolean} true if the object was successfully recycled in the object pool
|
|
131
131
|
*/
|
|
132
132
|
push(obj, throwOnError = true) {
|
|
133
133
|
if (!this.poolable(obj)) {
|
|
@@ -148,8 +148,8 @@ var pool = {
|
|
|
148
148
|
/**
|
|
149
149
|
* Check if an object with the provided name is registered
|
|
150
150
|
* @function me.pool.exists
|
|
151
|
-
* @param {
|
|
152
|
-
* @
|
|
151
|
+
* @param {string} name of the registered object class
|
|
152
|
+
* @returns {boolean} true if the classname is registered
|
|
153
153
|
*/
|
|
154
154
|
exists(name) {
|
|
155
155
|
return name in objectClass;
|
|
@@ -160,8 +160,8 @@ var pool = {
|
|
|
160
160
|
* (was properly registered with the recycling feature enable)
|
|
161
161
|
* @function me.pool.poolable
|
|
162
162
|
* @see me.pool.register
|
|
163
|
-
* @param {
|
|
164
|
-
* @
|
|
163
|
+
* @param {object} obj object to be checked
|
|
164
|
+
* @returns {boolean} true if the object is poolable
|
|
165
165
|
* @example
|
|
166
166
|
* if (!me.pool.poolable(myCherryEntity)) {
|
|
167
167
|
* // object was not properly registered
|
|
@@ -179,7 +179,7 @@ var pool = {
|
|
|
179
179
|
/**
|
|
180
180
|
* returns the amount of object instance currently in the pool
|
|
181
181
|
* @function me.pool.getInstanceCount
|
|
182
|
-
* @
|
|
182
|
+
* @returns {number} amount of object instance
|
|
183
183
|
*/
|
|
184
184
|
getInstanceCount() {
|
|
185
185
|
return instance_counter;
|
package/src/system/save.js
CHANGED
|
@@ -30,13 +30,16 @@ import * as event from "./../system/event.js";
|
|
|
30
30
|
* // Remove "lives" from localStorage
|
|
31
31
|
* me.save.remove("lives");
|
|
32
32
|
* @namespace me.save
|
|
33
|
-
* @
|
|
33
|
+
* @memberof me
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
// Variable to hold the object data
|
|
37
37
|
var data = {};
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
/**
|
|
40
|
+
* a function to check if the given key is a reserved word
|
|
41
|
+
* @ignore
|
|
42
|
+
*/
|
|
40
43
|
function isReserved(key) {
|
|
41
44
|
return (key === "add" || key === "remove");
|
|
42
45
|
}
|
|
@@ -62,9 +65,9 @@ var save = {
|
|
|
62
65
|
/**
|
|
63
66
|
* Add new keys to localStorage and set them to the given default values if they do not exist
|
|
64
67
|
* @name add
|
|
65
|
-
* @
|
|
68
|
+
* @memberof me.save
|
|
66
69
|
* @function
|
|
67
|
-
* @param {
|
|
70
|
+
* @param {object} props key and corresponding values
|
|
68
71
|
* @example
|
|
69
72
|
* // Initialize "score" and "lives" with default values
|
|
70
73
|
* me.save.add({ score : 0, lives : 3 });
|
|
@@ -116,9 +119,9 @@ var save = {
|
|
|
116
119
|
/**
|
|
117
120
|
* Remove a key from localStorage
|
|
118
121
|
* @name remove
|
|
119
|
-
* @
|
|
122
|
+
* @memberof me.save
|
|
120
123
|
* @function
|
|
121
|
-
* @param {
|
|
124
|
+
* @param {string} key key to be removed
|
|
122
125
|
* @example
|
|
123
126
|
* // Remove the "score" key from localStorage
|
|
124
127
|
* me.save.remove("score");
|