Added phaser build and hellophaser sample
This commit is contained in:
1368
src/loader/Cache.js
Normal file
1368
src/loader/Cache.js
Normal file
File diff suppressed because it is too large
Load Diff
1517
src/loader/Loader.js
Normal file
1517
src/loader/Loader.js
Normal file
File diff suppressed because it is too large
Load Diff
70
src/loader/LoaderParser.js
Normal file
70
src/loader/LoaderParser.js
Normal file
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2014 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Phaser.LoaderParser parses data objects from Phaser.Loader that need more preparation before they can be inserted into the Cache.
|
||||
*
|
||||
* @class Phaser.LoaderParser
|
||||
*/
|
||||
Phaser.LoaderParser = {
|
||||
|
||||
/**
|
||||
* Parse a Bitmap Font from an XML file.
|
||||
* @method Phaser.LoaderParser.bitmapFont
|
||||
* @param {Phaser.Game} game - A reference to the current game.
|
||||
* @param {object} xml - XML data you want to parse.
|
||||
* @param {string} cacheKey - The key of the texture this font uses in the cache.
|
||||
*/
|
||||
bitmapFont: function (game, xml, cacheKey, xSpacing, ySpacing) {
|
||||
|
||||
var data = {};
|
||||
var info = xml.getElementsByTagName('info')[0];
|
||||
var common = xml.getElementsByTagName('common')[0];
|
||||
|
||||
data.font = info.getAttribute('face');
|
||||
data.size = parseInt(info.getAttribute('size'), 10);
|
||||
data.lineHeight = parseInt(common.getAttribute('lineHeight'), 10) + ySpacing;
|
||||
data.chars = {};
|
||||
|
||||
var letters = xml.getElementsByTagName('char');
|
||||
var texture = PIXI.TextureCache[cacheKey];
|
||||
|
||||
for (var i = 0; i < letters.length; i++)
|
||||
{
|
||||
var charCode = parseInt(letters[i].getAttribute('id'), 10);
|
||||
|
||||
var textureRect = new PIXI.Rectangle(
|
||||
parseInt(letters[i].getAttribute('x'), 10),
|
||||
parseInt(letters[i].getAttribute('y'), 10),
|
||||
parseInt(letters[i].getAttribute('width'), 10),
|
||||
parseInt(letters[i].getAttribute('height'), 10)
|
||||
);
|
||||
|
||||
data.chars[charCode] = {
|
||||
xOffset: parseInt(letters[i].getAttribute('xoffset'), 10),
|
||||
yOffset: parseInt(letters[i].getAttribute('yoffset'), 10),
|
||||
xAdvance: parseInt(letters[i].getAttribute('xadvance'), 10) + xSpacing,
|
||||
kerning: {},
|
||||
texture: PIXI.TextureCache[cacheKey] = new PIXI.Texture(texture, textureRect)
|
||||
};
|
||||
}
|
||||
|
||||
var kernings = xml.getElementsByTagName('kerning');
|
||||
|
||||
for (i = 0; i < kernings.length; i++)
|
||||
{
|
||||
var first = parseInt(kernings[i].getAttribute('first'), 10);
|
||||
var second = parseInt(kernings[i].getAttribute('second'), 10);
|
||||
var amount = parseInt(kernings[i].getAttribute('amount'), 10);
|
||||
|
||||
data.chars[second].kerning[first] = amount;
|
||||
}
|
||||
|
||||
PIXI.BitmapText.fonts[cacheKey] = data;
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user