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.
Files changed (95) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.js +4435 -4283
  3. package/dist/melonjs.min.js +4 -4
  4. package/dist/melonjs.module.d.ts +3348 -3833
  5. package/dist/melonjs.module.js +4025 -3920
  6. package/package.json +13 -14
  7. package/src/audio/audio.js +45 -45
  8. package/src/camera/camera2d.js +78 -101
  9. package/src/entity/draggable.js +21 -29
  10. package/src/entity/droptarget.js +24 -31
  11. package/src/entity/entity.js +34 -38
  12. package/src/game.js +8 -8
  13. package/src/{shapes → geometries}/ellipse.js +46 -46
  14. package/src/{shapes → geometries}/line.js +14 -14
  15. package/src/{shapes → geometries}/poly.js +103 -54
  16. package/src/{shapes → geometries}/rectangle.js +73 -120
  17. package/src/index.js +18 -19
  18. package/src/input/gamepad.js +20 -20
  19. package/src/input/input.js +3 -3
  20. package/src/input/keyboard.js +122 -124
  21. package/src/input/pointer.js +102 -62
  22. package/src/input/pointerevent.js +97 -42
  23. package/src/lang/deprecated.js +29 -18
  24. package/src/level/level.js +34 -26
  25. package/src/level/tiled/TMXGroup.js +12 -13
  26. package/src/level/tiled/TMXLayer.js +41 -42
  27. package/src/level/tiled/TMXObject.js +76 -70
  28. package/src/level/tiled/TMXTile.js +13 -15
  29. package/src/level/tiled/TMXTileMap.js +26 -25
  30. package/src/level/tiled/TMXTileset.js +14 -15
  31. package/src/level/tiled/TMXTilesetGroup.js +5 -6
  32. package/src/level/tiled/TMXUtils.js +13 -11
  33. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
  34. package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
  35. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
  36. package/src/level/tiled/renderer/TMXRenderer.js +18 -19
  37. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
  38. package/src/loader/loader.js +46 -40
  39. package/src/loader/loadingscreen.js +7 -7
  40. package/src/math/color.js +68 -88
  41. package/src/math/math.js +33 -33
  42. package/src/math/matrix2.js +70 -71
  43. package/src/math/matrix3.js +90 -91
  44. package/src/math/observable_vector2.js +91 -92
  45. package/src/math/observable_vector3.js +110 -106
  46. package/src/math/vector2.js +116 -104
  47. package/src/math/vector3.js +129 -110
  48. package/src/particles/emitter.js +116 -126
  49. package/src/particles/particle.js +4 -5
  50. package/src/particles/particlecontainer.js +2 -3
  51. package/src/physics/body.js +82 -83
  52. package/src/physics/bounds.js +64 -66
  53. package/src/physics/collision.js +21 -22
  54. package/src/physics/detector.js +13 -13
  55. package/src/physics/quadtree.js +26 -25
  56. package/src/physics/sat.js +21 -21
  57. package/src/physics/world.js +23 -22
  58. package/src/plugin/plugin.js +12 -13
  59. package/src/renderable/GUI.js +20 -26
  60. package/src/renderable/collectable.js +6 -7
  61. package/src/renderable/colorlayer.js +11 -12
  62. package/src/renderable/container.js +98 -81
  63. package/src/renderable/imagelayer.js +33 -35
  64. package/src/renderable/nineslicesprite.js +15 -16
  65. package/src/renderable/renderable.js +112 -111
  66. package/src/renderable/sprite.js +71 -58
  67. package/src/renderable/trigger.js +17 -19
  68. package/src/state/stage.js +14 -15
  69. package/src/state/state.js +78 -78
  70. package/src/system/device.js +137 -180
  71. package/src/system/event.js +116 -104
  72. package/src/system/pooling.js +15 -15
  73. package/src/system/save.js +9 -6
  74. package/src/system/timer.js +33 -33
  75. package/src/text/bitmaptext.js +39 -46
  76. package/src/text/bitmaptextdata.js +14 -15
  77. package/src/text/text.js +55 -58
  78. package/src/tweens/easing.js +5 -5
  79. package/src/tweens/interpolation.js +5 -5
  80. package/src/tweens/tween.js +49 -40
  81. package/src/utils/agent.js +12 -11
  82. package/src/utils/array.js +8 -8
  83. package/src/utils/file.js +7 -7
  84. package/src/utils/function.js +8 -8
  85. package/src/utils/string.js +19 -19
  86. package/src/utils/utils.js +23 -23
  87. package/src/video/canvas/canvas_renderer.js +127 -128
  88. package/src/video/renderer.js +69 -69
  89. package/src/video/texture.js +80 -82
  90. package/src/video/texture_cache.js +2 -4
  91. package/src/video/video.js +38 -38
  92. package/src/video/webgl/buffer/vertex.js +11 -3
  93. package/src/video/webgl/glshader.js +31 -32
  94. package/src/video/webgl/webgl_compositor.js +145 -127
  95. package/src/video/webgl/webgl_renderer.js +196 -175
@@ -98,9 +98,9 @@ var keyUpEvent = function (e, keyCode, mouseButton) {
98
98
  /**
99
99
  * the default target element for keyboard events (usually the window element in which the game is running)
100
100
  * @public
101
- * @type EventTarget
101
+ * @type {EventTarget}
102
102
  * @name keyBoardEventTarget
103
- * @memberOf me.input
103
+ * @memberof me.input
104
104
  */
105
105
  export var keyBoardEventTarget = null;
106
106
 
@@ -109,206 +109,206 @@ var keyUpEvent = function (e, keyCode, mouseButton) {
109
109
  * @public
110
110
  * @enum {number}
111
111
  * @namespace KEY
112
- * @memberOf me.input
112
+ * @memberof me.input
113
113
  */
114
114
  export var KEY = {
115
- /** @memberOf me.input.KEY */
115
+ /** @memberof me.input.KEY */
116
116
  "BACKSPACE" : 8,
117
- /** @memberOf me.input.KEY */
117
+ /** @memberof me.input.KEY */
118
118
  "TAB" : 9,
119
- /** @memberOf me.input.KEY */
119
+ /** @memberof me.input.KEY */
120
120
  "ENTER" : 13,
121
- /** @memberOf me.input.KEY */
121
+ /** @memberof me.input.KEY */
122
122
  "SHIFT" : 16,
123
- /** @memberOf me.input.KEY */
123
+ /** @memberof me.input.KEY */
124
124
  "CTRL" : 17,
125
- /** @memberOf me.input.KEY */
125
+ /** @memberof me.input.KEY */
126
126
  "ALT" : 18,
127
- /** @memberOf me.input.KEY */
127
+ /** @memberof me.input.KEY */
128
128
  "PAUSE" : 19,
129
- /** @memberOf me.input.KEY */
129
+ /** @memberof me.input.KEY */
130
130
  "CAPS_LOCK" : 20,
131
- /** @memberOf me.input.KEY */
131
+ /** @memberof me.input.KEY */
132
132
  "ESC" : 27,
133
- /** @memberOf me.input.KEY */
133
+ /** @memberof me.input.KEY */
134
134
  "SPACE" : 32,
135
- /** @memberOf me.input.KEY */
135
+ /** @memberof me.input.KEY */
136
136
  "PAGE_UP" : 33,
137
- /** @memberOf me.input.KEY */
137
+ /** @memberof me.input.KEY */
138
138
  "PAGE_DOWN" : 34,
139
- /** @memberOf me.input.KEY */
139
+ /** @memberof me.input.KEY */
140
140
  "END" : 35,
141
- /** @memberOf me.input.KEY */
141
+ /** @memberof me.input.KEY */
142
142
  "HOME" : 36,
143
- /** @memberOf me.input.KEY */
143
+ /** @memberof me.input.KEY */
144
144
  "LEFT" : 37,
145
- /** @memberOf me.input.KEY */
145
+ /** @memberof me.input.KEY */
146
146
  "UP" : 38,
147
- /** @memberOf me.input.KEY */
147
+ /** @memberof me.input.KEY */
148
148
  "RIGHT" : 39,
149
- /** @memberOf me.input.KEY */
149
+ /** @memberof me.input.KEY */
150
150
  "DOWN" : 40,
151
- /** @memberOf me.input.KEY */
151
+ /** @memberof me.input.KEY */
152
152
  "PRINT_SCREEN" : 42,
153
- /** @memberOf me.input.KEY */
153
+ /** @memberof me.input.KEY */
154
154
  "INSERT" : 45,
155
- /** @memberOf me.input.KEY */
155
+ /** @memberof me.input.KEY */
156
156
  "DELETE" : 46,
157
- /** @memberOf me.input.KEY */
157
+ /** @memberof me.input.KEY */
158
158
  "NUM0" : 48,
159
- /** @memberOf me.input.KEY */
159
+ /** @memberof me.input.KEY */
160
160
  "NUM1" : 49,
161
- /** @memberOf me.input.KEY */
161
+ /** @memberof me.input.KEY */
162
162
  "NUM2" : 50,
163
- /** @memberOf me.input.KEY */
163
+ /** @memberof me.input.KEY */
164
164
  "NUM3" : 51,
165
- /** @memberOf me.input.KEY */
165
+ /** @memberof me.input.KEY */
166
166
  "NUM4" : 52,
167
- /** @memberOf me.input.KEY */
167
+ /** @memberof me.input.KEY */
168
168
  "NUM5" : 53,
169
- /** @memberOf me.input.KEY */
169
+ /** @memberof me.input.KEY */
170
170
  "NUM6" : 54,
171
- /** @memberOf me.input.KEY */
171
+ /** @memberof me.input.KEY */
172
172
  "NUM7" : 55,
173
- /** @memberOf me.input.KEY */
173
+ /** @memberof me.input.KEY */
174
174
  "NUM8" : 56,
175
- /** @memberOf me.input.KEY */
175
+ /** @memberof me.input.KEY */
176
176
  "NUM9" : 57,
177
- /** @memberOf me.input.KEY */
177
+ /** @memberof me.input.KEY */
178
178
  "A" : 65,
179
- /** @memberOf me.input.KEY */
179
+ /** @memberof me.input.KEY */
180
180
  "B" : 66,
181
- /** @memberOf me.input.KEY */
181
+ /** @memberof me.input.KEY */
182
182
  "C" : 67,
183
- /** @memberOf me.input.KEY */
183
+ /** @memberof me.input.KEY */
184
184
  "D" : 68,
185
- /** @memberOf me.input.KEY */
185
+ /** @memberof me.input.KEY */
186
186
  "E" : 69,
187
- /** @memberOf me.input.KEY */
187
+ /** @memberof me.input.KEY */
188
188
  "F" : 70,
189
- /** @memberOf me.input.KEY */
189
+ /** @memberof me.input.KEY */
190
190
  "G" : 71,
191
- /** @memberOf me.input.KEY */
191
+ /** @memberof me.input.KEY */
192
192
  "H" : 72,
193
- /** @memberOf me.input.KEY */
193
+ /** @memberof me.input.KEY */
194
194
  "I" : 73,
195
- /** @memberOf me.input.KEY */
195
+ /** @memberof me.input.KEY */
196
196
  "J" : 74,
197
- /** @memberOf me.input.KEY */
197
+ /** @memberof me.input.KEY */
198
198
  "K" : 75,
199
- /** @memberOf me.input.KEY */
199
+ /** @memberof me.input.KEY */
200
200
  "L" : 76,
201
- /** @memberOf me.input.KEY */
201
+ /** @memberof me.input.KEY */
202
202
  "M" : 77,
203
- /** @memberOf me.input.KEY */
203
+ /** @memberof me.input.KEY */
204
204
  "N" : 78,
205
- /** @memberOf me.input.KEY */
205
+ /** @memberof me.input.KEY */
206
206
  "O" : 79,
207
- /** @memberOf me.input.KEY */
207
+ /** @memberof me.input.KEY */
208
208
  "P" : 80,
209
- /** @memberOf me.input.KEY */
209
+ /** @memberof me.input.KEY */
210
210
  "Q" : 81,
211
- /** @memberOf me.input.KEY */
211
+ /** @memberof me.input.KEY */
212
212
  "R" : 82,
213
- /** @memberOf me.input.KEY */
213
+ /** @memberof me.input.KEY */
214
214
  "S" : 83,
215
- /** @memberOf me.input.KEY */
215
+ /** @memberof me.input.KEY */
216
216
  "T" : 84,
217
- /** @memberOf me.input.KEY */
217
+ /** @memberof me.input.KEY */
218
218
  "U" : 85,
219
- /** @memberOf me.input.KEY */
219
+ /** @memberof me.input.KEY */
220
220
  "V" : 86,
221
- /** @memberOf me.input.KEY */
221
+ /** @memberof me.input.KEY */
222
222
  "W" : 87,
223
- /** @memberOf me.input.KEY */
223
+ /** @memberof me.input.KEY */
224
224
  "X" : 88,
225
- /** @memberOf me.input.KEY */
225
+ /** @memberof me.input.KEY */
226
226
  "Y" : 89,
227
- /** @memberOf me.input.KEY */
227
+ /** @memberof me.input.KEY */
228
228
  "Z" : 90,
229
- /** @memberOf me.input.KEY */
229
+ /** @memberof me.input.KEY */
230
230
  "WINDOW_KEY" : 91,
231
- /** @memberOf me.input.KEY */
231
+ /** @memberof me.input.KEY */
232
232
  "NUMPAD0" : 96,
233
- /** @memberOf me.input.KEY */
233
+ /** @memberof me.input.KEY */
234
234
  "NUMPAD1" : 97,
235
- /** @memberOf me.input.KEY */
235
+ /** @memberof me.input.KEY */
236
236
  "NUMPAD2" : 98,
237
- /** @memberOf me.input.KEY */
237
+ /** @memberof me.input.KEY */
238
238
  "NUMPAD3" : 99,
239
- /** @memberOf me.input.KEY */
239
+ /** @memberof me.input.KEY */
240
240
  "NUMPAD4" : 100,
241
- /** @memberOf me.input.KEY */
241
+ /** @memberof me.input.KEY */
242
242
  "NUMPAD5" : 101,
243
- /** @memberOf me.input.KEY */
243
+ /** @memberof me.input.KEY */
244
244
  "NUMPAD6" : 102,
245
- /** @memberOf me.input.KEY */
245
+ /** @memberof me.input.KEY */
246
246
  "NUMPAD7" : 103,
247
- /** @memberOf me.input.KEY */
247
+ /** @memberof me.input.KEY */
248
248
  "NUMPAD8" : 104,
249
- /** @memberOf me.input.KEY */
249
+ /** @memberof me.input.KEY */
250
250
  "NUMPAD9" : 105,
251
- /** @memberOf me.input.KEY */
251
+ /** @memberof me.input.KEY */
252
252
  "MULTIPLY" : 106,
253
- /** @memberOf me.input.KEY */
253
+ /** @memberof me.input.KEY */
254
254
  "ADD" : 107,
255
- /** @memberOf me.input.KEY */
255
+ /** @memberof me.input.KEY */
256
256
  "SUBSTRACT" : 109,
257
- /** @memberOf me.input.KEY */
257
+ /** @memberof me.input.KEY */
258
258
  "DECIMAL" : 110,
259
- /** @memberOf me.input.KEY */
259
+ /** @memberof me.input.KEY */
260
260
  "DIVIDE" : 111,
261
- /** @memberOf me.input.KEY */
261
+ /** @memberof me.input.KEY */
262
262
  "F1" : 112,
263
- /** @memberOf me.input.KEY */
263
+ /** @memberof me.input.KEY */
264
264
  "F2" : 113,
265
- /** @memberOf me.input.KEY */
265
+ /** @memberof me.input.KEY */
266
266
  "F3" : 114,
267
- /** @memberOf me.input.KEY */
267
+ /** @memberof me.input.KEY */
268
268
  "F4" : 115,
269
- /** @memberOf me.input.KEY */
269
+ /** @memberof me.input.KEY */
270
270
  "F5" : 116,
271
- /** @memberOf me.input.KEY */
271
+ /** @memberof me.input.KEY */
272
272
  "F6" : 117,
273
- /** @memberOf me.input.KEY */
273
+ /** @memberof me.input.KEY */
274
274
  "F7" : 118,
275
- /** @memberOf me.input.KEY */
275
+ /** @memberof me.input.KEY */
276
276
  "F8" : 119,
277
- /** @memberOf me.input.KEY */
277
+ /** @memberof me.input.KEY */
278
278
  "F9" : 120,
279
- /** @memberOf me.input.KEY */
279
+ /** @memberof me.input.KEY */
280
280
  "F10" : 121,
281
- /** @memberOf me.input.KEY */
281
+ /** @memberof me.input.KEY */
282
282
  "F11" : 122,
283
- /** @memberOf me.input.KEY */
283
+ /** @memberof me.input.KEY */
284
284
  "F12" : 123,
285
- /** @memberOf me.input.KEY */
285
+ /** @memberof me.input.KEY */
286
286
  "TILDE" : 126,
287
- /** @memberOf me.input.KEY */
287
+ /** @memberof me.input.KEY */
288
288
  "NUM_LOCK" : 144,
289
- /** @memberOf me.input.KEY */
289
+ /** @memberof me.input.KEY */
290
290
  "SCROLL_LOCK" : 145,
291
- /** @memberOf me.input.KEY */
291
+ /** @memberof me.input.KEY */
292
292
  "SEMICOLON" : 186,
293
- /** @memberOf me.input.KEY */
293
+ /** @memberof me.input.KEY */
294
294
  "PLUS" : 187,
295
- /** @memberOf me.input.KEY */
295
+ /** @memberof me.input.KEY */
296
296
  "COMMA" : 188,
297
- /** @memberOf me.input.KEY */
297
+ /** @memberof me.input.KEY */
298
298
  "MINUS" : 189,
299
- /** @memberOf me.input.KEY */
299
+ /** @memberof me.input.KEY */
300
300
  "PERIOD" : 190,
301
- /** @memberOf me.input.KEY */
301
+ /** @memberof me.input.KEY */
302
302
  "FORWAND_SLASH" : 191,
303
- /** @memberOf me.input.KEY */
303
+ /** @memberof me.input.KEY */
304
304
  "GRAVE_ACCENT" : 192,
305
- /** @memberOf me.input.KEY */
305
+ /** @memberof me.input.KEY */
306
306
  "OPEN_BRACKET" : 219,
307
- /** @memberOf me.input.KEY */
307
+ /** @memberof me.input.KEY */
308
308
  "BACK_SLASH" : 220,
309
- /** @memberOf me.input.KEY */
309
+ /** @memberof me.input.KEY */
310
310
  "CLOSE_BRACKET" : 221,
311
- /** @memberOf me.input.KEY */
311
+ /** @memberof me.input.KEY */
312
312
  "SINGLE_QUOTE" : 222
313
313
  };
314
314
 
@@ -328,21 +328,18 @@ export function initKeyboardEvent() {
328
328
  /**
329
329
  * return the key press status of the specified action
330
330
  * @name isKeyPressed
331
- * @memberOf me.input
331
+ * @memberof me.input
332
332
  * @public
333
333
  * @function
334
- * @param {String} action user defined corresponding action
335
- * @return {Boolean} true if pressed
334
+ * @param {string} action user defined corresponding action
335
+ * @returns {boolean} true if pressed
336
336
  * @example
337
- * if (me.input.isKeyPressed('left'))
338
- * {
337
+ * if (me.input.isKeyPressed('left')) {
339
338
  * //do something
340
339
  * }
341
- * else if (me.input.isKeyPressed('right'))
342
- * {
340
+ * else if (me.input.isKeyPressed('right')) {
343
341
  * //do something else...
344
342
  * }
345
- *
346
343
  */
347
344
  export function isKeyPressed(action) {
348
345
  if (_keyStatus[action] && !_keyLocked[action]) {
@@ -357,11 +354,11 @@ export function isKeyPressed(action) {
357
354
  /**
358
355
  * return the key status of the specified action
359
356
  * @name keyStatus
360
- * @memberOf me.input
357
+ * @memberof me.input
361
358
  * @public
362
359
  * @function
363
- * @param {String} action user defined corresponding action
364
- * @return {Boolean} down (true) or up(false)
360
+ * @param {string} action user defined corresponding action
361
+ * @returns {boolean} down (true) or up(false)
365
362
  */
366
363
  export function keyStatus(action) {
367
364
  return (_keyStatus[action] > 0);
@@ -371,11 +368,12 @@ export function keyStatus(action) {
371
368
  /**
372
369
  * trigger the specified key (simulated) event <br>
373
370
  * @name triggerKeyEvent
374
- * @memberOf me.input
371
+ * @memberof me.input
375
372
  * @public
376
373
  * @function
377
374
  * @param {me.input.KEY} keycode
378
- * @param {Boolean} [status=false] true to trigger a key down event, or false for key up event
375
+ * @param {boolean} [status=false] true to trigger a key down event, or false for key up event
376
+ * @param {number} [mouseButton] the mouse button to trigger
379
377
  * @example
380
378
  * // trigger a key press
381
379
  * me.input.triggerKeyEvent(me.input.KEY.LEFT, true);
@@ -393,13 +391,13 @@ export function triggerKeyEvent(keycode, status, mouseButton) {
393
391
  /**
394
392
  * associate a user defined action to a keycode
395
393
  * @name bindKey
396
- * @memberOf me.input
394
+ * @memberof me.input
397
395
  * @public
398
396
  * @function
399
397
  * @param {me.input.KEY} keycode
400
- * @param {String} action user defined corresponding action
401
- * @param {Boolean} [lock=false] cancel the keypress event once read
402
- * @param {Boolean} [preventDefault=me.input.preventDefault] prevent default browser action
398
+ * @param {string} action user defined corresponding action
399
+ * @param {boolean} [lock=false] cancel the keypress event once read
400
+ * @param {boolean} [preventDefault=me.input.preventDefault] prevent default browser action
403
401
  * @example
404
402
  * // enable the keyboard
405
403
  * me.input.bindKey(me.input.KEY.LEFT, "left");
@@ -420,11 +418,11 @@ export function bindKey(keycode, action, lock, preventDefault = preventDefaultAc
420
418
  /**
421
419
  * return the action associated with the given keycode
422
420
  * @name getBindingKey
423
- * @memberOf me.input
421
+ * @memberof me.input
424
422
  * @public
425
423
  * @function
426
424
  * @param {me.input.KEY} keycode
427
- * @return {String} user defined associated action
425
+ * @returns {string} user defined associated action
428
426
  */
429
427
  export function getBindingKey(keycode) {
430
428
  return _keyBindings[keycode];
@@ -433,10 +431,10 @@ export function getBindingKey(keycode) {
433
431
  /**
434
432
  * unlock a key manually
435
433
  * @name unlockKey
436
- * @memberOf me.input
434
+ * @memberof me.input
437
435
  * @public
438
436
  * @function
439
- * @param {String} action user defined corresponding action
437
+ * @param {string} action user defined corresponding action
440
438
  * @example
441
439
  * // Unlock jump when touching the ground
442
440
  * if (!this.falling && !this.jumping) {
@@ -450,7 +448,7 @@ export function unlockKey(action) {
450
448
  /**
451
449
  * unbind the defined keycode
452
450
  * @name unbindKey
453
- * @memberOf me.input
451
+ * @memberof me.input
454
452
  * @public
455
453
  * @function
456
454
  * @param {me.input.KEY} keycode