Skip to content

Commit 5cf7ed4

Browse files
committed
More TypeScript updates.
1 parent f991f9c commit 5cf7ed4

6 files changed

Lines changed: 200 additions & 109 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ Updates:
9191
* ArcadePhysics.overlap and collide now recognise TileSprites in the collision checks.
9292
* Lots of documentation fixes in the Tween class.
9393
* Tweens fire an onLoop event if they are set to repeat. onComplete is now only fired for the final repeat (or never if the repeat is infinite)
94+
* Pointer used to un-pause a paused game every time it was clicked/touched (this avoided some rogue browser plugins). Now only happens if Stage.disableVisibilityChange is true.
9495

9596

9697
Bug Fixes:

build/phaser.d.ts

Lines changed: 57 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ declare module Phaser {
9393
onPausedCallback(): void;
9494
onShutDownCallback(): void;
9595
boot(): void;
96-
add(key: string, state: Phaser.State, autoStart?: boolean): void;
96+
add(key: string, state: any, autoStart?: boolean): void;
9797
remove(key: string): void;
9898
start(key: string, clearWorld?: boolean, clearCache?: boolean): void;
9999
dummy(): void;
@@ -677,57 +677,60 @@ declare module Phaser {
677677
renderTexture(key: string, width: number, height: number): Phaser.RenderTexture;
678678
}
679679

680-
class Sprite {
681-
constructor(game: Phaser.Game, x: number, y: number, key: string, frame: number);
682-
game: Phaser.Game;
683-
exists: boolean;
684-
alive: boolean;
685-
group: Phaser.Group;
686-
name: string;
687-
type: number;
688-
renderOrderID: number;
689-
lifespan: number;
690-
events: Phaser.Events;
691-
animations: Phaser.AnimationManager;
692-
input: Phaser.InputHandler;
693-
key: string;
694-
currentFrame: number;
695-
anchor: Phaser.Point;
696-
x: number;
697-
y: number;
698-
position: Phaser.Point;
699-
autoCull: boolean;
700-
scale: Phaser.Point;
701-
scrollFactor: Phaser.Point;
702-
offset: Phaser.Point;
703-
center: Phaser.Point;
704-
topLeft: Phaser.Point;
705-
topRight: Phaser.Point;
706-
bottomRight: Phaser.Point;
707-
bottomLeft: Phaser.Point;
708-
bounds: Phaser.Rectangle;
709-
body: Phaser.Physics.Arcade.Body;
710-
inWorld: boolean;
711-
inWorldThreshold: number;
712-
angle: number;
713-
frame: number;
714-
frameName: string;
715-
inCamera: boolean;
716-
crop: boolean;
717-
cropEnabled: boolean;
718-
inputEnabled: boolean;
719-
preUpdate(): void;
720-
postUpdate(): void;
721-
centerOn(x: number, y: number): void;
722-
revive(): void;
723-
kill(): void;
724-
reset(x: number, y: number): void;
725-
updateBounds(): void;
726-
getLocalPosition(p: Phaser.Point, x: number, y: number): Phaser.Point;
727-
getLocalUnmodifiedPosition(p: Phaser.Point, x: number, y: number): Phaser.Point;
728-
bringToTop(): void;
729-
getBounds(rect: Phaser.Rectangle): Phaser.Rectangle;
730-
}
680+
class Sprite {
681+
constructor(game: Phaser.Game, x: number, y: number, key: string, frame: number);
682+
game: Phaser.Game;
683+
exists: boolean;
684+
alive: boolean;
685+
group: Phaser.Group;
686+
name: string;
687+
type: number;
688+
renderOrderID: number;
689+
lifespan: number;
690+
events: Phaser.Events;
691+
animations: Phaser.AnimationManager;
692+
input: Phaser.InputHandler;
693+
key: string;
694+
currentFrame: number;
695+
anchor: Phaser.Point;
696+
x: number;
697+
y: number;
698+
position: Phaser.Point;
699+
autoCull: boolean;
700+
scale: Phaser.Point;
701+
scrollFactor: Phaser.Point;
702+
offset: Phaser.Point;
703+
center: Phaser.Point;
704+
topLeft: Phaser.Point;
705+
topRight: Phaser.Point;
706+
bottomRight: Phaser.Point;
707+
bottomLeft: Phaser.Point;
708+
bounds: Phaser.Rectangle;
709+
body: Phaser.Physics.Arcade.Body;
710+
inWorld: boolean;
711+
inWorldThreshold: number;
712+
angle: number;
713+
frame: number;
714+
frameName: string;
715+
inCamera: boolean;
716+
crop: boolean;
717+
cropEnabled: boolean;
718+
inputEnabled: boolean;
719+
preUpdate(): void;
720+
postUpdate(): void;
721+
centerOn(x: number, y: number): void;
722+
revive(): void;
723+
kill(): void;
724+
reset(x: number, y: number): void;
725+
updateBounds(): void;
726+
getLocalPosition(p: Phaser.Point, x: number, y: number): Phaser.Point;
727+
getLocalUnmodifiedPosition(p: Phaser.Point, x: number, y: number): Phaser.Point;
728+
bringToTop(): void;
729+
getBounds(rect: Phaser.Rectangle): Phaser.Rectangle;
730+
alpha: number;
731+
visible: boolean;
732+
renderable: boolean;
733+
}
731734

732735
class Events {
733736
parent: Phaser.Sprite;
@@ -1424,8 +1427,8 @@ declare module Phaser {
14241427
addToFileList(type: string, key: string, url: string, properties: Array<any>): void;
14251428
image(key: string, url: string, overwrite?: boolean): void;
14261429
text(key: string, url: string, overwrite?: boolean): void;
1427-
spritesheet(key: string, url: string, frameWidth: number, frameHeight: number, frameMax?: number, margin?: number, spacing?: number): void;
1428-
audio(key: string, urls: string[], autoDecode?: boolean): void;
1430+
spritesheet(key: string, url: string, frameWidth: number, frameHeight: number, frameMax: number): void;
1431+
audio(key: string, urls: any, autoDecode?: boolean): void;
14291432
tilemap(key: string, tilesetURL: string, mapDataURL?: string, mapData?: Object, format?: string): void;
14301433
tileset(key: string, url: string, tileWidth: number, tileHeight: number, tileMargin?: number, tileSpacing?: number, rows?: number, columns?: number, limit?: number): void;
14311434
bitmapFont(key: string, textureURL: string, xmlURL?: string, xmlData?: Object): void;

src/loader/Cache.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,15 +179,13 @@ Phaser.Cache.prototype = {
179179
* @method Phaser.Cache#addTilemap
180180
* @param {string} key - The unique key by which you will reference this object.
181181
* @param {string} url - URL of the tilemap image.
182-
* @param {object} mapData - The tilemap data object.
182+
* @param {object} mapData - The tilemap data object (either a CSV or JSON file).
183183
* @param {number} format - The format of the tilemap data.
184184
*/
185185
addTilemap: function (key, url, mapData, format) {
186186

187187
this._tilemaps[key] = { url: url, data: mapData, format: format };
188188

189-
this._tilemaps[key].layers = Phaser.TilemapParser.parse(this.game, mapData, format);
190-
191189
},
192190

193191
/**

src/tilemap/Tilemap.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,37 @@ Phaser.Tilemap = function (game, key, tilesets) {
2121
*/
2222
this.game = game;
2323

24+
/**
25+
* @property {string} key - The key of this map data in the Phaser.Cache.
26+
*/
27+
this.key = key;
28+
29+
var data = Phaser.TilemapParser.parse(this.game, key);
30+
2431
/**
2532
* @property {array} layers - An array of Tilemap layer data.
2633
*/
27-
this.layers = [];
34+
this.layers = data.layers;
2835

29-
if (typeof key === 'string')
30-
{
31-
this.key = key;
36+
/**
37+
* @property {array} tilesets - An array of Tilesets.
38+
*/
39+
this.tilesets = data.tilesets;
3240

33-
this.layers = game.cache.getTilemapData(key).layers;
34-
}
41+
/**
42+
* @property {array} objects - An array of Tiled Object Layers.
43+
*/
44+
this.objects = data.objects;
3545

3646
/**
37-
* @property {number} currentLayer - The current layer.
47+
* @property {array} images - An array of Tiled Image Layers.
3848
*/
39-
this.currentLayer = 0;
49+
this.images = data.images;
4050

4151
/**
42-
* @property {array} tilesets - An array of Tilesets.
52+
* @property {number} currentLayer - The current layer.
4353
*/
44-
this.tilesets = [];
54+
this.currentLayer = 0;
4555

4656
/**
4757
* @property {array} debugMap - Map data used for debug values only.
@@ -66,11 +76,6 @@ Phaser.Tilemap = function (game, key, tilesets) {
6676
*/
6777
this._tempB = 0;
6878

69-
if (this.layers.length > 0)
70-
{
71-
this.addTilesets(tilesets);
72-
}
73-
7479
};
7580

7681
/**
@@ -87,6 +92,8 @@ Phaser.Tilemap.TILED_JSON = 1;
8792

8893
Phaser.Tilemap.prototype = {
8994

95+
96+
9097
addTilesets: function (tilesets) {
9198

9299
// { "TiledKey": "TilesetKey" }
@@ -128,7 +135,6 @@ Phaser.Tilemap.prototype = {
128135

129136
},
130137

131-
132138
/**
133139
* Creates an empty map of the given dimensions.
134140
*

src/tilemap/TilemapParser.js

Lines changed: 77 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,27 @@ Phaser.TilemapParser = {
6969
* Parse tileset data from the cache and creates a Tileset object.
7070
* @method Phaser.TilemapParser.parse
7171
* @param {Phaser.Game} game - Game reference to the currently running game.
72-
* @param {object} data
73-
* @param {string} format
74-
* @return {Phaser.Tileset} Generated Tileset object.
72+
* @param {string} key - The key of the tilemap in the Cache.
73+
* @return {object} The parsed map object.
7574
*/
76-
parse: function (game, data, format) {
75+
parse: function (game, key) {
76+
77+
var map = game.cache.getTilemapData(key);
7778

78-
if (format === Phaser.Tilemap.CSV)
79+
if (map)
7980
{
80-
return this.parseCSV(data);
81+
if (map.format === Phaser.Tilemap.CSV)
82+
{
83+
return this.parseCSV(map.data);
84+
}
85+
else if (map.format === Phaser.Tilemap.TILED_JSON)
86+
{
87+
return this.parseTiledJSON(map.data);
88+
}
8189
}
82-
else if (format === Phaser.Tilemap.TILED_JSON)
90+
else
8391
{
84-
return this.parseTiledJSON(data);
92+
return { layers: [], objects: [], images: [], tilesets: [] };
8593
}
8694

8795
},
@@ -128,8 +136,8 @@ Phaser.TilemapParser = {
128136
/**
129137
* Parses a Tiled JSON file into valid map data.
130138
* @method Phaser.TilemapParser.parseJSON
131-
* @param {object} json - The Tiled JSON data.
132-
* @return {object} Generated map data.
139+
* @param {object} json - The JSON map data.
140+
* @return {object} Generated and parsed map data.
133141
*/
134142
parseTiledJSON: function (json) {
135143

@@ -278,6 +286,41 @@ Phaser.TilemapParser = {
278286
// Tilesets
279287
var tilesets = [];
280288

289+
290+
/*
291+
// for (var i = this.firstgid; i < this.firstgid + this.total; i++)
292+
for (var i = 0; i < this.total; i++)
293+
{
294+
// Can add extra properties here as needed
295+
this.tiles[i] = [x, y];
296+
297+
x += this.tileWidth + this.tileSpacing;
298+
299+
count++;
300+
301+
if (count === this.total)
302+
{
303+
break;
304+
}
305+
306+
countX++;
307+
308+
if (countX === this.rows)
309+
{
310+
x = this.tileMargin;
311+
y += this.tileHeight + this.tileSpacing;
312+
313+
countX = 0;
314+
countY++;
315+
316+
if (countY === this.columns)
317+
{
318+
break;
319+
}
320+
}
321+
}
322+
323+
*/
281324
/*
282325
{
283326
"firstgid":1,
@@ -302,10 +345,34 @@ Phaser.TilemapParser = {
302345
"tilewidth":32
303346
},
304347
348+
349+
Create 1 Tileset object that contains the above, but NOT the actual tile indexes
350+
Put the tile indexes into a global array (tiles?) - just need x,y + img - a drawImage look-up table
351+
305352
*/
306353

307354
for (var i = 0; i < json.tilesets.length; i++)
308355
{
356+
// name, firstgid, width, height, margin, spacing, properties
357+
var set = json.tilesets[i];
358+
var newSet = new Phaser.Tileset(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties);
359+
360+
if (set.tileproperties)
361+
{
362+
newSet.tileProperties = set.tileproperties;
363+
}
364+
365+
// rows, columns, total
366+
var rows = set.imageheight / set.tileheight;
367+
var columns = set.imagewidth / set.tilewidth;
368+
var total = rows * columns;
369+
370+
newSet.rows = rows;
371+
newSet.columns = columns;
372+
newSet.total = total;
373+
374+
tilesets.push(newSet);
375+
309376
}
310377

311378
// Lets build our super tileset index

0 commit comments

Comments
 (0)