melonjs 9.1.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{LICENSE → LICENSE.md} +0 -0
- package/README.md +93 -57
- package/dist/melonjs.js +10334 -11179
- package/dist/melonjs.min.js +4 -10
- package/dist/melonjs.module.d.ts +13206 -0
- package/dist/melonjs.module.js +9913 -10872
- package/package.json +19 -14
- package/src/audio/audio.js +477 -553
- package/src/camera/camera2d.js +67 -65
- package/src/entity/draggable.js +26 -35
- package/src/entity/droptarget.js +17 -14
- package/src/entity/entity.js +59 -79
- package/src/game.js +194 -204
- package/src/index.js +12 -30
- package/src/input/gamepad.js +8 -19
- package/src/input/keyboard.js +4 -4
- package/src/input/pointer.js +14 -12
- package/src/input/pointerevent.js +15 -13
- package/src/lang/deprecated.js +2 -887
- package/src/level/level.js +3 -3
- package/src/level/tiled/TMXGroup.js +7 -11
- package/src/level/tiled/TMXLayer.js +33 -32
- package/src/level/tiled/TMXTileMap.js +15 -19
- package/src/level/tiled/TMXTileset.js +5 -5
- package/src/level/tiled/TMXUtils.js +3 -3
- package/src/level/tiled/renderer/TMXRenderer.js +4 -0
- package/src/loader/loader.js +8 -23
- package/src/loader/loadingscreen.js +51 -60
- package/src/math/matrix3.js +1 -1
- package/src/particles/emitter.js +36 -39
- package/src/particles/particle.js +27 -12
- package/src/particles/particlecontainer.js +17 -16
- package/src/physics/body.js +80 -118
- package/src/physics/collision.js +5 -235
- package/src/physics/detector.js +235 -0
- package/src/physics/quadtree.js +14 -14
- package/src/physics/world.js +84 -18
- package/src/plugin/plugin.js +26 -24
- package/src/polyfill/console.js +9 -14
- package/src/renderable/GUI.js +48 -62
- package/src/renderable/collectable.js +11 -4
- package/src/renderable/colorlayer.js +28 -26
- package/src/renderable/container.js +120 -96
- package/src/renderable/imagelayer.js +94 -93
- package/src/renderable/renderable.js +164 -138
- package/src/renderable/sprite.js +42 -44
- package/src/renderable/trigger.js +24 -17
- package/src/shapes/ellipse.js +27 -27
- package/src/shapes/line.js +12 -8
- package/src/shapes/poly.js +77 -49
- package/src/shapes/rectangle.js +193 -268
- package/src/state/stage.js +23 -25
- package/src/state/state.js +35 -86
- package/src/system/device.js +233 -285
- package/src/system/event.js +485 -432
- package/src/system/pooling.js +61 -54
- package/src/system/save.js +17 -16
- package/src/system/timer.js +34 -38
- package/src/text/bitmaptext.js +44 -46
- package/src/text/text.js +39 -34
- package/src/tweens/easing.js +0 -2
- package/src/tweens/interpolation.js +3 -8
- package/src/tweens/tween.js +332 -351
- package/src/utils/function.js +6 -8
- package/src/utils/utils.js +34 -30
- package/src/video/canvas/canvas_renderer.js +13 -8
- package/src/video/renderer.js +8 -7
- package/src/video/texture.js +8 -8
- package/src/video/texture_cache.js +5 -5
- package/src/video/video.js +373 -403
- package/src/video/webgl/glshader.js +2 -2
- package/src/video/webgl/webgl_compositor.js +14 -8
- package/src/video/webgl/webgl_renderer.js +21 -19
- package/plugins/debug/debugPanel.js +0 -770
- package/plugins/debug/font/PressStart2P.fnt +0 -100
- package/plugins/debug/font/PressStart2P.ltr +0 -1
- package/plugins/debug/font/PressStart2P.png +0 -0
- package/plugins/debug/particleDebugPanel.js +0 -303
package/src/level/level.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import utils from "./../utils/utils.js";
|
|
2
|
-
import event from "./../system/event.js";
|
|
2
|
+
import * as event from "./../system/event.js";
|
|
3
3
|
import state from "./../state/state.js";
|
|
4
4
|
import loader from "./../loader/loader.js";
|
|
5
|
-
import game from "./../game.js";
|
|
5
|
+
import * as game from "./../game.js";
|
|
6
6
|
import TMXTileMap from "./tiled/TMXTileMap.js";
|
|
7
7
|
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ function safeLoadLevel(levelId, options, restart) {
|
|
|
32
32
|
loadTMXLevel(levelId, options.container, options.flatten, options.setViewportBounds);
|
|
33
33
|
|
|
34
34
|
// publish the corresponding message
|
|
35
|
-
event.
|
|
35
|
+
event.emit(event.LEVEL_LOADED, levelId);
|
|
36
36
|
|
|
37
37
|
// fire the callback
|
|
38
38
|
options.onLoaded(levelId);
|
|
@@ -77,26 +77,22 @@ export default class TMXGroup {
|
|
|
77
77
|
applyTMXProperties(this, data);
|
|
78
78
|
|
|
79
79
|
// parse all child objects/layers
|
|
80
|
-
var self = this;
|
|
81
|
-
|
|
82
80
|
if (data.objects) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
self.objects.push(new TMXObject(map, object, z));
|
|
81
|
+
data.objects.forEach((object) => {
|
|
82
|
+
object.tintcolor = this.tintcolor;
|
|
83
|
+
this.objects.push(new TMXObject(map, object, z));
|
|
87
84
|
});
|
|
88
85
|
}
|
|
89
86
|
|
|
90
87
|
if (data.layers) {
|
|
91
|
-
|
|
92
|
-
_layers.forEach(function (data) {
|
|
88
|
+
data.layers.forEach((data) => {
|
|
93
89
|
var layer = new TMXLayer(map, data, map.tilewidth, map.tileheight, map.orientation, map.tilesets, z++);
|
|
94
90
|
// set a renderer
|
|
95
91
|
layer.setRenderer(map.getRenderer());
|
|
96
92
|
// resize container accordingly
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
this.width = Math.max(this.width, layer.width);
|
|
94
|
+
this.height = Math.max(this.height, layer.height);
|
|
95
|
+
this.objects.push(layer);
|
|
100
96
|
});
|
|
101
97
|
}
|
|
102
98
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createCanvas } from "./../../video/video.js";
|
|
2
2
|
import pool from "./../../system/pooling.js";
|
|
3
3
|
import * as TMXUtils from "./TMXUtils.js";
|
|
4
4
|
import Tile from "./TMXTile.js";
|
|
5
5
|
import Renderable from "./../../renderable/renderable.js";
|
|
6
6
|
import CanvasRenderer from "./../../video/canvas/canvas_renderer";
|
|
7
|
-
import
|
|
7
|
+
import { world } from "./../../game.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Create required arrays for the given layer object
|
|
@@ -77,13 +77,13 @@ function preRenderLayer(layer, renderer) {
|
|
|
77
77
|
* @param {me.TMXTilesetGroup} tilesets tileset as defined in Tiled
|
|
78
78
|
* @param {Number} z z-index position
|
|
79
79
|
*/
|
|
80
|
-
|
|
80
|
+
class TMXLayer extends Renderable {
|
|
81
81
|
/**
|
|
82
82
|
* @ignore
|
|
83
83
|
*/
|
|
84
|
-
|
|
84
|
+
constructor(map, data, tilewidth, tileheight, orientation, tilesets, z) {
|
|
85
85
|
// super constructor
|
|
86
|
-
|
|
86
|
+
super(0, 0, 0, 0);
|
|
87
87
|
|
|
88
88
|
// tile width & height
|
|
89
89
|
this.tilewidth = data.tilewidth || tilewidth;
|
|
@@ -176,7 +176,7 @@ var TMXLayer = Renderable.extend({
|
|
|
176
176
|
|
|
177
177
|
// check for the correct rendering method
|
|
178
178
|
if (typeof (this.preRender) === "undefined") {
|
|
179
|
-
this.preRender =
|
|
179
|
+
this.preRender = world.preRender;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
// set a renderer
|
|
@@ -191,11 +191,11 @@ var TMXLayer = Renderable.extend({
|
|
|
191
191
|
data.compression
|
|
192
192
|
)
|
|
193
193
|
);
|
|
194
|
-
}
|
|
194
|
+
}
|
|
195
195
|
|
|
196
196
|
|
|
197
197
|
// called when the layer is added to the game world or a container
|
|
198
|
-
onActivateEvent
|
|
198
|
+
onActivateEvent() {
|
|
199
199
|
|
|
200
200
|
if (this.animatedTilesets === undefined) {
|
|
201
201
|
this.animatedTilesets = [];
|
|
@@ -224,21 +224,21 @@ var TMXLayer = Renderable.extend({
|
|
|
224
224
|
// if pre-rendering method is use, create an offline canvas/renderer
|
|
225
225
|
if ((this.preRender === true) && (!this.canvasRenderer)) {
|
|
226
226
|
this.canvasRenderer = new CanvasRenderer({
|
|
227
|
-
canvas :
|
|
227
|
+
canvas : createCanvas(this.width, this.height),
|
|
228
228
|
widht : this.width,
|
|
229
229
|
heigth : this.height,
|
|
230
230
|
transparent : true
|
|
231
231
|
});
|
|
232
232
|
preRenderLayer(this, this.canvasRenderer);
|
|
233
233
|
}
|
|
234
|
-
}
|
|
234
|
+
}
|
|
235
235
|
|
|
236
236
|
// called when the layer is removed from the game world or a container
|
|
237
|
-
onDeactivateEvent
|
|
237
|
+
onDeactivateEvent() {
|
|
238
238
|
// clear all allocated objects
|
|
239
239
|
//this.layerData = undefined;
|
|
240
240
|
this.animatedTilesets = undefined;
|
|
241
|
-
}
|
|
241
|
+
}
|
|
242
242
|
|
|
243
243
|
/**
|
|
244
244
|
* Set the TMX renderer for this layer object
|
|
@@ -252,9 +252,9 @@ var TMXLayer = Renderable.extend({
|
|
|
252
252
|
* var layer = new me.TMXLayer(...);
|
|
253
253
|
* layer.setRenderer(map.getRenderer());
|
|
254
254
|
*/
|
|
255
|
-
setRenderer
|
|
255
|
+
setRenderer(renderer) {
|
|
256
256
|
this.renderer = renderer;
|
|
257
|
-
}
|
|
257
|
+
}
|
|
258
258
|
|
|
259
259
|
/**
|
|
260
260
|
* Return the layer current renderer object
|
|
@@ -264,9 +264,9 @@ var TMXLayer = Renderable.extend({
|
|
|
264
264
|
* @function
|
|
265
265
|
* @return {me.TMXRenderer} renderer
|
|
266
266
|
*/
|
|
267
|
-
getRenderer
|
|
267
|
+
getRenderer() {
|
|
268
268
|
return this.renderer;
|
|
269
|
-
}
|
|
269
|
+
}
|
|
270
270
|
|
|
271
271
|
|
|
272
272
|
/**
|
|
@@ -279,10 +279,10 @@ var TMXLayer = Renderable.extend({
|
|
|
279
279
|
* @param {Number} y Y coordinate (in world/pixels coordinates)
|
|
280
280
|
* @return {Number} TileId or null if there is no Tile at the given position
|
|
281
281
|
*/
|
|
282
|
-
getTileId
|
|
282
|
+
getTileId(x, y) {
|
|
283
283
|
var tile = this.getTile(x, y);
|
|
284
284
|
return (tile ? tile.tileId : null);
|
|
285
|
-
}
|
|
285
|
+
}
|
|
286
286
|
|
|
287
287
|
/**
|
|
288
288
|
* Return the Tile object at the specified position
|
|
@@ -299,7 +299,7 @@ var TMXLayer = Renderable.extend({
|
|
|
299
299
|
* // get the tile object corresponding to the latest pointer position
|
|
300
300
|
* var tile = layer.getTile(me.input.pointer.pos.x, me.input.pointer.pos.y);
|
|
301
301
|
*/
|
|
302
|
-
getTile
|
|
302
|
+
getTile(x, y) {
|
|
303
303
|
var tile = null;
|
|
304
304
|
|
|
305
305
|
if (this.contains(x, y)) {
|
|
@@ -308,7 +308,7 @@ var TMXLayer = Renderable.extend({
|
|
|
308
308
|
pool.push(coord);
|
|
309
309
|
}
|
|
310
310
|
return tile;
|
|
311
|
-
}
|
|
311
|
+
}
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
314
|
* assign the given Tile object to the specified position
|
|
@@ -321,10 +321,10 @@ var TMXLayer = Renderable.extend({
|
|
|
321
321
|
* @param {Number} y Y coordinate (in world/pixels coordinates)
|
|
322
322
|
* @return {me.Tile} the tile object
|
|
323
323
|
*/
|
|
324
|
-
setTile
|
|
324
|
+
setTile(tile, x, y) {
|
|
325
325
|
this.layerData[x][y] = tile;
|
|
326
326
|
return tile;
|
|
327
|
-
}
|
|
327
|
+
}
|
|
328
328
|
|
|
329
329
|
/**
|
|
330
330
|
* return a new the Tile object corresponding to the given tile id
|
|
@@ -337,13 +337,13 @@ var TMXLayer = Renderable.extend({
|
|
|
337
337
|
* @param {Number} y Y coordinate (in world/pixels coordinates)
|
|
338
338
|
* @return {me.Tile} the tile object
|
|
339
339
|
*/
|
|
340
|
-
getTileById
|
|
340
|
+
getTileById(tileId, x, y) {
|
|
341
341
|
if (!this.tileset.contains(tileId)) {
|
|
342
342
|
// look for the corresponding tileset
|
|
343
343
|
this.tileset = this.tilesets.getTilesetByGid(tileId);
|
|
344
344
|
}
|
|
345
345
|
return new Tile(x, y, tileId, this.tileset);
|
|
346
|
-
}
|
|
346
|
+
}
|
|
347
347
|
|
|
348
348
|
/**
|
|
349
349
|
* Return the Tile object at the specified tile coordinates
|
|
@@ -359,7 +359,7 @@ var TMXLayer = Renderable.extend({
|
|
|
359
359
|
* // return the first tile at offset 0, 0
|
|
360
360
|
* var tile = layer.cellAt(0, 0);
|
|
361
361
|
*/
|
|
362
|
-
cellAt
|
|
362
|
+
cellAt(x, y, boundsCheck) {
|
|
363
363
|
var _x = ~~x;
|
|
364
364
|
var _y = ~~y;
|
|
365
365
|
|
|
@@ -370,7 +370,7 @@ var TMXLayer = Renderable.extend({
|
|
|
370
370
|
} else {
|
|
371
371
|
return null;
|
|
372
372
|
}
|
|
373
|
-
}
|
|
373
|
+
}
|
|
374
374
|
|
|
375
375
|
/**
|
|
376
376
|
* clear the tile at the specified position
|
|
@@ -386,20 +386,20 @@ var TMXLayer = Renderable.extend({
|
|
|
386
386
|
* layer.clearTile(x, y);
|
|
387
387
|
* });
|
|
388
388
|
*/
|
|
389
|
-
clearTile
|
|
389
|
+
clearTile(x, y) {
|
|
390
390
|
// clearing tile
|
|
391
391
|
this.layerData[x][y] = null;
|
|
392
392
|
// erase the corresponding area in the canvas
|
|
393
393
|
if (this.preRender) {
|
|
394
394
|
this.canvasRenderer.clearRect(x * this.tilewidth, y * this.tileheight, this.tilewidth, this.tileheight);
|
|
395
395
|
}
|
|
396
|
-
}
|
|
396
|
+
}
|
|
397
397
|
|
|
398
398
|
/**
|
|
399
399
|
* update animations in a tileset layer
|
|
400
400
|
* @ignore
|
|
401
401
|
*/
|
|
402
|
-
update
|
|
402
|
+
update(dt) {
|
|
403
403
|
if (this.isAnimated) {
|
|
404
404
|
var result = false;
|
|
405
405
|
for (var i = 0; i < this.animatedTilesets.length; i++) {
|
|
@@ -409,13 +409,13 @@ var TMXLayer = Renderable.extend({
|
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
return false;
|
|
412
|
-
}
|
|
412
|
+
}
|
|
413
413
|
|
|
414
414
|
/**
|
|
415
415
|
* draw a tileset layer
|
|
416
416
|
* @ignore
|
|
417
417
|
*/
|
|
418
|
-
draw
|
|
418
|
+
draw(renderer, rect) {
|
|
419
419
|
// use the offscreen canvas
|
|
420
420
|
if (this.preRender) {
|
|
421
421
|
var width = Math.min(rect.width, this.width);
|
|
@@ -436,5 +436,6 @@ var TMXLayer = Renderable.extend({
|
|
|
436
436
|
this.getRenderer().drawTileLayer(renderer, this, rect);
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
|
-
}
|
|
439
|
+
};
|
|
440
|
+
|
|
440
441
|
export default TMXLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pool from "./../../system/pooling.js";
|
|
2
|
-
import event from "./../../system/event.js";
|
|
3
|
-
import
|
|
2
|
+
import * as event from "./../../system/event.js";
|
|
3
|
+
import { viewport } from "./../../game.js";
|
|
4
4
|
import collision from "./../../physics/collision.js";
|
|
5
5
|
import Body from "./../../physics/body.js";
|
|
6
6
|
import TMXOrthogonalRenderer from "./renderer/TMXOrthogonalRenderer.js";
|
|
@@ -19,9 +19,6 @@ import Rect from "./../../shapes/rectangle.js";
|
|
|
19
19
|
// constant to identify the collision object layer
|
|
20
20
|
var COLLISION_GROUP = "collision";
|
|
21
21
|
|
|
22
|
-
// onresize handler
|
|
23
|
-
var onresize_handler = null;
|
|
24
|
-
|
|
25
22
|
/**
|
|
26
23
|
* set a compatible renderer object
|
|
27
24
|
* for the specified map
|
|
@@ -297,7 +294,6 @@ export default class TMXTileMap {
|
|
|
297
294
|
|
|
298
295
|
// to automatically increment z index
|
|
299
296
|
var zOrder = 0;
|
|
300
|
-
var self = this;
|
|
301
297
|
|
|
302
298
|
// Tileset information
|
|
303
299
|
if (!this.tilesets) {
|
|
@@ -308,9 +304,9 @@ export default class TMXTileMap {
|
|
|
308
304
|
// parse all tileset objects
|
|
309
305
|
if (typeof (data.tilesets) !== "undefined") {
|
|
310
306
|
var tilesets = data.tilesets;
|
|
311
|
-
tilesets.forEach(
|
|
307
|
+
tilesets.forEach((tileset) => {
|
|
312
308
|
// add the new tileset
|
|
313
|
-
|
|
309
|
+
this.tilesets.add(readTileset(tileset));
|
|
314
310
|
});
|
|
315
311
|
}
|
|
316
312
|
|
|
@@ -338,24 +334,24 @@ export default class TMXTileMap {
|
|
|
338
334
|
));
|
|
339
335
|
}
|
|
340
336
|
|
|
341
|
-
data.layers.forEach(
|
|
337
|
+
data.layers.forEach((layer) => {
|
|
342
338
|
switch (layer.type) {
|
|
343
339
|
case "imagelayer":
|
|
344
|
-
|
|
340
|
+
this.layers.push(readImageLayer(this, layer, zOrder++));
|
|
345
341
|
break;
|
|
346
342
|
|
|
347
343
|
case "tilelayer":
|
|
348
|
-
|
|
344
|
+
this.layers.push(readLayer(this, layer, zOrder++));
|
|
349
345
|
break;
|
|
350
346
|
|
|
351
347
|
// get the object groups information
|
|
352
348
|
case "objectgroup":
|
|
353
|
-
|
|
349
|
+
this.objectGroups.push(readObjectGroup(this, layer, zOrder++));
|
|
354
350
|
break;
|
|
355
351
|
|
|
356
352
|
// get the object groups information
|
|
357
353
|
case "group":
|
|
358
|
-
|
|
354
|
+
this.objectGroups.push(readObjectGroup(this, layer, zOrder++));
|
|
359
355
|
break;
|
|
360
356
|
|
|
361
357
|
default:
|
|
@@ -412,7 +408,7 @@ export default class TMXTileMap {
|
|
|
412
408
|
// callback funtion for the viewport resize event
|
|
413
409
|
function _setBounds(width, height) {
|
|
414
410
|
// adjust the viewport bounds if level is smaller
|
|
415
|
-
|
|
411
|
+
viewport.setBounds(
|
|
416
412
|
0, 0,
|
|
417
413
|
Math.max(levelBounds.width, width),
|
|
418
414
|
Math.max(levelBounds.height, height)
|
|
@@ -427,13 +423,11 @@ export default class TMXTileMap {
|
|
|
427
423
|
}
|
|
428
424
|
|
|
429
425
|
if (setViewportBounds === true) {
|
|
426
|
+
event.off(event.VIEWPORT_ONRESIZE, _setBounds);
|
|
430
427
|
// force viewport bounds update
|
|
431
|
-
_setBounds(
|
|
428
|
+
_setBounds(viewport.width, viewport.height);
|
|
432
429
|
// Replace the resize handler
|
|
433
|
-
|
|
434
|
-
event.unsubscribe(onresize_handler);
|
|
435
|
-
}
|
|
436
|
-
onresize_handler = event.subscribe(event.VIEWPORT_ONRESIZE, _setBounds);
|
|
430
|
+
event.on(event.VIEWPORT_ONRESIZE, _setBounds, this);
|
|
437
431
|
}
|
|
438
432
|
|
|
439
433
|
// set back auto-sort and auto-depth
|
|
@@ -523,6 +517,7 @@ export default class TMXTileMap {
|
|
|
523
517
|
// check if a me.Tile object is embedded
|
|
524
518
|
obj = settings.tile.getRenderable(settings);
|
|
525
519
|
obj.body = new Body(obj, settings.shapes || new Rect(0, 0, this.width, this.height));
|
|
520
|
+
obj.body.setStatic(true);
|
|
526
521
|
// set the obj z order
|
|
527
522
|
obj.pos.setMuted(settings.x, settings.y, settings.z);
|
|
528
523
|
} else {
|
|
@@ -545,6 +540,7 @@ export default class TMXTileMap {
|
|
|
545
540
|
obj.type = settings.type;
|
|
546
541
|
obj.id = settings.id;
|
|
547
542
|
obj.body = new Body(obj, settings.shapes || new Rect(0, 0, obj.width, obj.height));
|
|
543
|
+
obj.body.setStatic(true);
|
|
548
544
|
obj.resize(obj.body.getBounds().width, obj.body.getBounds().height);
|
|
549
545
|
}
|
|
550
546
|
// set the obj z order
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Vector2d from "./../../math/vector2.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import { renderer } from "./../../video/video.js";
|
|
3
|
+
import * as fileUtil from "./../../utils/file.js";
|
|
4
4
|
import timer from "./../../system/timer.js";
|
|
5
5
|
import loader from "./../../loader/loader.js";
|
|
6
6
|
|
|
@@ -29,10 +29,10 @@ export default class TMXTileset {
|
|
|
29
29
|
// check if an external tileset is defined
|
|
30
30
|
if (typeof(tileset.source) !== "undefined") {
|
|
31
31
|
var src = tileset.source;
|
|
32
|
-
var ext =
|
|
32
|
+
var ext = fileUtil.getExtension(src);
|
|
33
33
|
if (ext === "tsx" || ext === "json") {
|
|
34
34
|
// load the external tileset (TSX/JSON)
|
|
35
|
-
tileset = loader.getTMX(
|
|
35
|
+
tileset = loader.getTMX(fileUtil.getBasename(src));
|
|
36
36
|
if (!tileset) {
|
|
37
37
|
throw new Error(src + " external TSX/JSON tileset not found");
|
|
38
38
|
}
|
|
@@ -143,7 +143,7 @@ export default class TMXTileset {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
// create a texture atlas for the given tileset
|
|
146
|
-
this.texture =
|
|
146
|
+
this.texture = renderer.cache.get(this.image, {
|
|
147
147
|
framewidth : this.tilewidth,
|
|
148
148
|
frameheight : this.tileheight,
|
|
149
149
|
margin : this.margin,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as stringUtil from "./../../utils/string.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* set and interpret a TMX property value
|
|
@@ -25,11 +25,11 @@ function setTMXValue(name, type, value) {
|
|
|
25
25
|
|
|
26
26
|
default :
|
|
27
27
|
// try to parse it anyway
|
|
28
|
-
if (!value ||
|
|
28
|
+
if (!value || stringUtil.isBoolean(value)) {
|
|
29
29
|
// if value not defined or boolean
|
|
30
30
|
value = value ? (value === "true") : true;
|
|
31
31
|
}
|
|
32
|
-
else if (
|
|
32
|
+
else if (stringUtil.isNumeric(value)) {
|
|
33
33
|
// check if numeric
|
|
34
34
|
value = Number(value);
|
|
35
35
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
|
|
1
3
|
import pool from "./../../../system/pooling.js";
|
|
2
4
|
import TMXLayer from "./../TMXLayer.js";
|
|
3
5
|
import Bounds from "./../../../physics/Bounds.js";
|
|
@@ -118,3 +120,5 @@ class TMXRenderer {
|
|
|
118
120
|
};
|
|
119
121
|
|
|
120
122
|
export default TMXRenderer;
|
|
123
|
+
|
|
124
|
+
/* eslint-enable no-unused-vars */
|
package/src/loader/loader.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import event from "./../system/event.js";
|
|
1
|
+
import * as fileUtil from "./../utils/file.js";
|
|
2
|
+
import * as event from "./../system/event.js";
|
|
3
3
|
import device from "./../system/device.js";
|
|
4
|
-
import audio from "./../audio/audio.js";
|
|
4
|
+
import * as audio from "./../audio/audio.js";
|
|
5
5
|
import state from "./../state/state.js";
|
|
6
6
|
import level from "./../level/level.js";
|
|
7
7
|
import * as TMXUtils from "./../level/tiled/TMXUtils.js";
|
|
@@ -38,7 +38,7 @@ function checkLoadStatus(onload) {
|
|
|
38
38
|
var callback = onload || loader.onload;
|
|
39
39
|
setTimeout(function () {
|
|
40
40
|
callback();
|
|
41
|
-
event.
|
|
41
|
+
event.emit(event.LOADER_COMPLETE);
|
|
42
42
|
}, 300);
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
@@ -91,7 +91,7 @@ function preloadFontFace(data, onload, onerror) {
|
|
|
91
91
|
document.body.style.fontFamily = data.name;
|
|
92
92
|
// onloaded callback
|
|
93
93
|
onload();
|
|
94
|
-
}, function (
|
|
94
|
+
}, function () {
|
|
95
95
|
// rejected
|
|
96
96
|
onerror(data.name);
|
|
97
97
|
});
|
|
@@ -122,7 +122,7 @@ function preloadTMX(tmxData, onload, onerror) {
|
|
|
122
122
|
|
|
123
123
|
var xmlhttp = new XMLHttpRequest();
|
|
124
124
|
// check the data format ('tmx', 'json')
|
|
125
|
-
var format =
|
|
125
|
+
var format = fileUtil.getExtension(tmxData.src);
|
|
126
126
|
|
|
127
127
|
if (xmlhttp.overrideMimeType) {
|
|
128
128
|
if (format === "json") {
|
|
@@ -385,7 +385,7 @@ var loader = {
|
|
|
385
385
|
// pass the load progress in percent, as parameter
|
|
386
386
|
this.onProgress(progress, res);
|
|
387
387
|
}
|
|
388
|
-
event.
|
|
388
|
+
event.emit(event.LOADER_PROGRESS, progress, res);
|
|
389
389
|
},
|
|
390
390
|
|
|
391
391
|
/**
|
|
@@ -732,7 +732,7 @@ var loader = {
|
|
|
732
732
|
*/
|
|
733
733
|
getImage(image) {
|
|
734
734
|
// force as string and extract the base name
|
|
735
|
-
image =
|
|
735
|
+
image = fileUtil.getBasename("" + image);
|
|
736
736
|
if (image in imgList) {
|
|
737
737
|
// return the corresponding Image object
|
|
738
738
|
return imgList[image];
|
|
@@ -756,21 +756,6 @@ var loader = {
|
|
|
756
756
|
return jsonList[elt];
|
|
757
757
|
}
|
|
758
758
|
return null;
|
|
759
|
-
},
|
|
760
|
-
|
|
761
|
-
/**
|
|
762
|
-
* Return the loading progress in percent
|
|
763
|
-
* @name getLoadProgress
|
|
764
|
-
* @memberOf me.loader
|
|
765
|
-
* @public
|
|
766
|
-
* @function
|
|
767
|
-
* @deprecated use callback instead
|
|
768
|
-
* @see me.loader.onProgress
|
|
769
|
-
* @see me.event.LOADER_PROGRESS
|
|
770
|
-
* @return {Number}
|
|
771
|
-
*/
|
|
772
|
-
getLoadProgress() {
|
|
773
|
-
return loadCount / resourceCount;
|
|
774
759
|
}
|
|
775
760
|
|
|
776
761
|
};
|