mirror of
https://github.com/wassname/phaser.git
synced 2026-07-20 12:30:48 +08:00
Updated doc files.
This commit is contained in:
+264
-105
@@ -90,6 +90,10 @@
|
||||
<a href="Phaser.Device.html">Device</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.DOMSprite.html">DOMSprite</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Easing.html">Easing</a>
|
||||
</li>
|
||||
@@ -162,6 +166,14 @@
|
||||
<a href="Phaser.GameObjectFactory.html">GameObjectFactory</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Gamepad.html">Gamepad</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.GamepadButton.html">GamepadButton</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Graphics.html">Graphics</a>
|
||||
</li>
|
||||
@@ -186,6 +198,10 @@
|
||||
<a href="Phaser.Keyboard.html">Keyboard</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Line.html">Line</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.LinkedList.html">LinkedList</a>
|
||||
</li>
|
||||
@@ -278,6 +294,10 @@
|
||||
<a href="Phaser.Signal.html">Signal</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.SinglePad.html">SinglePad</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Sound.html">Sound</a>
|
||||
</li>
|
||||
@@ -342,6 +362,10 @@
|
||||
<a href="Phaser.Timer.html">Timer</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.TimerEvent.html">TimerEvent</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Phaser.Touch.html">Touch</a>
|
||||
</li>
|
||||
@@ -374,36 +398,6 @@
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b
|
||||
class="caret"></b></a>
|
||||
|
||||
<ul class="dropdown-menu ">
|
||||
|
||||
<li>
|
||||
<a href="global.html#bottom">bottom</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="global.html#HEXtoRGB">HEXtoRGB</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="global.html#render">render</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="global.html#renderXY">renderXY</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="global.html#right">right</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -423,7 +417,7 @@
|
||||
<article>
|
||||
<pre class="sunlight-highlight-javascript linenums">/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2013 Photon Storm Ltd.
|
||||
* @copyright 2014 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
@@ -438,47 +432,45 @@ Phaser.TilemapParser = {
|
||||
* Creates a Tileset object.
|
||||
* @method Phaser.TilemapParser.tileset
|
||||
* @param {Phaser.Game} game - Game reference to the currently running game.
|
||||
* @param {string} key
|
||||
* @param {number} tileWidth
|
||||
* @param {number} tileHeight
|
||||
* @param {number} tileMax
|
||||
* @param {number} tileMargin
|
||||
* @param {number} tileSpacing
|
||||
* @param {string} key - The Cache key of this tileset.
|
||||
* @param {number} tileWidth - Width of each single tile in pixels.
|
||||
* @param {number} tileHeight - Height of each single tile in pixels.
|
||||
* @param {number} [tileMargin=0] - If the tiles have been drawn with a margin, specify the amount here.
|
||||
* @param {number} [tileSpacing=0] - If the tiles have been drawn with spacing between them, specify the amount here.
|
||||
* @param {number} [rows=-1] - How many tiles are placed horizontally in each row? If -1 it will calculate rows by dividing the image width by tileWidth.
|
||||
* @param {number} [columns=-1] - How many tiles are placed vertically in each column? If -1 it will calculate columns by dividing the image height by tileHeight.
|
||||
* @param {number} [total=-1] - The maximum number of tiles to extract from the image. If -1 it will extract `rows * columns` worth. You can also set a value lower than the actual number of tiles.
|
||||
* @return {Phaser.Tileset} Generated Tileset object.
|
||||
*/
|
||||
tileset: function (game, key, tileWidth, tileHeight, tileMax, tileMargin, tileSpacing) {
|
||||
tileset: function (game, key, tileWidth, tileHeight, tileMargin, tileSpacing, rows, columns, total) {
|
||||
|
||||
// How big is our image?
|
||||
var img = game.cache.getTilesetImage(key);
|
||||
|
||||
if (img == null)
|
||||
if (img === null)
|
||||
{
|
||||
console.warn("Phaser.TilemapParser.tileSet: Invalid image key given");
|
||||
return null;
|
||||
}
|
||||
|
||||
var width = img.width;
|
||||
var height = img.height;
|
||||
|
||||
// If no tile width/height is given, try and figure it out (won't work if the tileset has margin/spacing)
|
||||
if (tileWidth <= 0)
|
||||
if (rows === -1)
|
||||
{
|
||||
tileWidth = Math.floor(-width / Math.min(-1, tileWidth));
|
||||
rows = Math.round(width / tileWidth);
|
||||
}
|
||||
|
||||
if (tileHeight <= 0)
|
||||
if (columns === -1)
|
||||
{
|
||||
tileHeight = Math.floor(-height / Math.min(-1, tileHeight));
|
||||
columns = Math.round(height / tileHeight);
|
||||
}
|
||||
|
||||
var row = Math.round(width / tileWidth);
|
||||
var column = Math.round(height / tileHeight);
|
||||
var total = row * column;
|
||||
if (total === -1)
|
||||
{
|
||||
total = rows * columns;
|
||||
}
|
||||
|
||||
if (tileMax !== -1)
|
||||
{
|
||||
total = tileMax;
|
||||
}
|
||||
|
||||
// Zero or smaller than tile sizes?
|
||||
if (width === 0 || height === 0 || width < tileWidth || height < tileHeight || total === 0)
|
||||
{
|
||||
@@ -486,26 +478,7 @@ Phaser.TilemapParser = {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Let's create some tiles
|
||||
var x = tileMargin;
|
||||
var y = tileMargin;
|
||||
|
||||
var tileset = new Phaser.Tileset(img, key, tileWidth, tileHeight, tileMargin, tileSpacing);
|
||||
|
||||
for (var i = 0; i < total; i++)
|
||||
{
|
||||
tileset.addTile(new Phaser.Tile(tileset, i, x, y, tileWidth, tileHeight));
|
||||
|
||||
x += tileWidth + tileSpacing;
|
||||
|
||||
if (x === width)
|
||||
{
|
||||
x = tileMargin;
|
||||
y += tileHeight + tileSpacing;
|
||||
}
|
||||
}
|
||||
|
||||
return tileset;
|
||||
return new Phaser.Tileset(img, key, tileWidth, tileHeight, tileMargin, tileSpacing, rows, columns, total);
|
||||
|
||||
},
|
||||
|
||||
@@ -513,19 +486,27 @@ Phaser.TilemapParser = {
|
||||
* Parse tileset data from the cache and creates a Tileset object.
|
||||
* @method Phaser.TilemapParser.parse
|
||||
* @param {Phaser.Game} game - Game reference to the currently running game.
|
||||
* @param {object} data
|
||||
* @param {string} format
|
||||
* @return {Phaser.Tileset} Generated Tileset object.
|
||||
* @param {string} key - The key of the tilemap in the Cache.
|
||||
* @return {object} The parsed map object.
|
||||
*/
|
||||
parse: function (game, data, format) {
|
||||
parse: function (game, key) {
|
||||
|
||||
if (format === Phaser.Tilemap.CSV)
|
||||
var map = game.cache.getTilemapData(key);
|
||||
|
||||
if (map)
|
||||
{
|
||||
return this.parseCSV(data);
|
||||
if (map.format === Phaser.Tilemap.CSV)
|
||||
{
|
||||
return this.parseCSV(map.data);
|
||||
}
|
||||
else if (map.format === Phaser.Tilemap.TILED_JSON)
|
||||
{
|
||||
return this.parseTiledJSON(map.data);
|
||||
}
|
||||
}
|
||||
else if (format === Phaser.Tilemap.TILED_JSON)
|
||||
else
|
||||
{
|
||||
return this.parseTiledJSON(data);
|
||||
return { layers: [], objects: [], images: [], tilesets: [] };
|
||||
}
|
||||
|
||||
},
|
||||
@@ -563,6 +544,8 @@ Phaser.TilemapParser = {
|
||||
}
|
||||
}
|
||||
|
||||
// Build collision map
|
||||
|
||||
return [{ name: 'csv', width: width, height: height, alpha: 1, visible: true, indexes: [], tileMargin: 0, tileSpacing: 0, data: output }];
|
||||
|
||||
},
|
||||
@@ -570,66 +553,242 @@ Phaser.TilemapParser = {
|
||||
/**
|
||||
* Parses a Tiled JSON file into valid map data.
|
||||
* @method Phaser.TilemapParser.parseJSON
|
||||
* @param {object} json- The Tiled JSON data.
|
||||
* @return {object} Generated map data.
|
||||
* @param {object} json - The JSON map data.
|
||||
* @return {object} Generated and parsed map data.
|
||||
*/
|
||||
parseTiledJSON: function (json) {
|
||||
|
||||
if (json.orientation !== 'orthogonal')
|
||||
{
|
||||
console.warn('TilemapParser.parseTiledJSON: Only orthogonal map types are supported in this version of Phaser');
|
||||
return null;
|
||||
}
|
||||
|
||||
// Map data will consist of: layers, objects, images, tilesets, sizes
|
||||
var map = {};
|
||||
|
||||
map.width = json.width;
|
||||
map.height = json.height;
|
||||
map.tileWidth = json.tilewidth;
|
||||
map.tileHeight = json.tileheight;
|
||||
map.orientation = json.orientation;
|
||||
map.version = json.version;
|
||||
map.properties = json.properties;
|
||||
map.widthInPixels = map.width * map.tileWidth;
|
||||
map.heightInPixels = map.height * map.tileHeight;
|
||||
|
||||
// Tile Layers
|
||||
var layers = [];
|
||||
|
||||
for (var i = 0; i < json.layers.length; i++)
|
||||
{
|
||||
// Check it's a data layer
|
||||
if (!json.layers[i].data)
|
||||
if (json.layers[i].type !== 'tilelayer')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// json.tilewidth
|
||||
// json.tileheight
|
||||
|
||||
var layer = {
|
||||
|
||||
name: json.layers[i].name,
|
||||
x: json.layers[i].x,
|
||||
y: json.layers[i].y,
|
||||
width: json.layers[i].width,
|
||||
height: json.layers[i].height,
|
||||
widthInPixels: json.layers[i].width * json.tilewidth,
|
||||
heightInPixels: json.layers[i].height * json.tileheight,
|
||||
alpha: json.layers[i].opacity,
|
||||
visible: json.layers[i].visible,
|
||||
properties: {},
|
||||
indexes: [],
|
||||
|
||||
tileMargin: json.tilesets[0].margin,
|
||||
tileSpacing: json.tilesets[0].spacing
|
||||
callbacks: []
|
||||
|
||||
};
|
||||
|
||||
var output = [];
|
||||
var c = 0;
|
||||
var row;
|
||||
|
||||
for (var t = 0; t < json.layers[i].data.length; t++)
|
||||
if (json.layers[i].properties)
|
||||
{
|
||||
if (c === 0)
|
||||
layer.properties = json.layers[i].properties;
|
||||
}
|
||||
|
||||
var x = 0;
|
||||
var row = [];
|
||||
var output = [];
|
||||
|
||||
// Loop through the data field in the JSON.
|
||||
|
||||
// This is an array containing the tile indexes, one after the other. 0 = no tile, everything else = the tile index (starting at 1)
|
||||
// If the map contains multiple tilesets then the indexes are relative to that which the set starts from.
|
||||
// Need to set which tileset in the cache = which tileset in the JSON, if you do this manually it means you can use the same map data but a new tileset.
|
||||
|
||||
for (var t = 0, len = json.layers[i].data.length; t < len; t++)
|
||||
{
|
||||
// index, x, y, width, height
|
||||
if (json.layers[i].data[t] > 0)
|
||||
{
|
||||
row = [];
|
||||
row.push(new Phaser.Tile(layer, json.layers[i].data[t], x, output.length, json.tilewidth, json.tileheight));
|
||||
}
|
||||
else
|
||||
{
|
||||
row.push(null);
|
||||
}
|
||||
|
||||
row.push(json.layers[i].data[t]);
|
||||
c++;
|
||||
x++;
|
||||
|
||||
if (c == json.layers[i].width)
|
||||
if (x === json.layers[i].width)
|
||||
{
|
||||
output.push(row);
|
||||
c = 0;
|
||||
x = 0;
|
||||
row = [];
|
||||
}
|
||||
}
|
||||
|
||||
layer.data = output;
|
||||
|
||||
|
||||
layers.push(layer);
|
||||
|
||||
}
|
||||
|
||||
return layers;
|
||||
map.layers = layers;
|
||||
|
||||
// Images
|
||||
var images = [];
|
||||
|
||||
for (var i = 0; i < json.layers.length; i++)
|
||||
{
|
||||
if (json.layers[i].type !== 'imagelayer')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var image = {
|
||||
|
||||
name: json.layers[i].name,
|
||||
image: json.layers[i].image,
|
||||
x: json.layers[i].x,
|
||||
y: json.layers[i].y,
|
||||
alpha: json.layers[i].opacity,
|
||||
visible: json.layers[i].visible,
|
||||
properties: {}
|
||||
|
||||
};
|
||||
|
||||
if (json.layers[i].properties)
|
||||
{
|
||||
image.properties = json.layers[i].properties;
|
||||
}
|
||||
|
||||
images.push(image);
|
||||
|
||||
}
|
||||
|
||||
map.images = images;
|
||||
|
||||
// Objects
|
||||
var objects = {};
|
||||
|
||||
for (var i = 0; i < json.layers.length; i++)
|
||||
{
|
||||
if (json.layers[i].type !== 'objectgroup')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
objects[json.layers[i].name] = [];
|
||||
|
||||
for (var v = 0, len = json.layers[i].objects.length; v < len; v++)
|
||||
{
|
||||
// For now we'll just support object tiles
|
||||
if (json.layers[i].objects[v].gid)
|
||||
{
|
||||
var object = {
|
||||
|
||||
gid: json.layers[i].objects[v].gid,
|
||||
name: json.layers[i].objects[v].name,
|
||||
x: json.layers[i].objects[v].x,
|
||||
y: json.layers[i].objects[v].y,
|
||||
visible: json.layers[i].objects[v].visible,
|
||||
properties: json.layers[i].objects[v].properties
|
||||
|
||||
};
|
||||
|
||||
objects[json.layers[i].name].push(object);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
map.objects = objects;
|
||||
|
||||
// Tilesets
|
||||
var tilesets = [];
|
||||
|
||||
for (var i = 0; i < json.tilesets.length; i++)
|
||||
{
|
||||
// name, firstgid, width, height, margin, spacing, properties
|
||||
var set = json.tilesets[i];
|
||||
var newSet = new Phaser.Tileset(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties);
|
||||
|
||||
if (set.tileproperties)
|
||||
{
|
||||
newSet.tileProperties = set.tileproperties;
|
||||
}
|
||||
|
||||
newSet.rows = (set.imageheight - set.margin) / (set.tileheight + set.spacing);
|
||||
newSet.columns = (set.imagewidth - set.margin) / (set.tilewidth + set.spacing);
|
||||
newSet.total = newSet.rows * newSet.columns;
|
||||
|
||||
tilesets.push(newSet);
|
||||
}
|
||||
|
||||
map.tilesets = tilesets;
|
||||
|
||||
map.tiles = [];
|
||||
|
||||
// Finally lets build our super tileset index
|
||||
for (var i = 0; i < map.tilesets.length; i++)
|
||||
{
|
||||
var set = map.tilesets[i];
|
||||
|
||||
var x = set.tileMargin;
|
||||
var y = set.tileMargin;
|
||||
|
||||
var count = 0;
|
||||
var countX = 0;
|
||||
var countY = 0;
|
||||
|
||||
for (var t = set.firstgid; t < set.firstgid + set.total; t++)
|
||||
{
|
||||
// Can add extra properties here as needed
|
||||
map.tiles[t] = [x, y, i];
|
||||
|
||||
x += set.tileWidth + set.tileSpacing;
|
||||
|
||||
count++;
|
||||
|
||||
if (count === set.total)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
countX++;
|
||||
|
||||
if (countX === set.columns)
|
||||
{
|
||||
x = set.tileMargin;
|
||||
y += set.tileHeight + set.tileSpacing;
|
||||
|
||||
countX = 0;
|
||||
countY++;
|
||||
|
||||
if (countY === set.rows)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return map;
|
||||
|
||||
}
|
||||
|
||||
@@ -649,13 +808,13 @@ Phaser.TilemapParser = {
|
||||
|
||||
|
||||
<span class="copyright">
|
||||
Phaser Copyright © 2012-2013 Photon Storm Ltd.
|
||||
Phaser Copyright © 2012-2014 Photon Storm Ltd.
|
||||
</span>
|
||||
<br />
|
||||
|
||||
<span class="jsdoc-message">
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-dev</a>
|
||||
on Thu Nov 28 2013 15:56:25 GMT-0000 (GMT) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
|
||||
on Wed Feb 05 2014 06:28:24 GMT-0000 (GMT) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user