Skip to content

Commit 26404bb

Browse files
committed
Working through adding trimmed frame support to Bitmap Text
1 parent 140ed6b commit 26404bb

5 files changed

Lines changed: 56 additions & 14 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var ParseXMLBitmapFont = require('./ParseXMLBitmapFont');
2+
3+
var ParseFromAtlas = function (state, fontName, textureKey, frameKey, xmlKey, xSpacing, ySpacing)
4+
{
5+
var frame = state.sys.textures.getFrame(textureKey, frameKey);
6+
var xml = state.sys.cache.xml.get(xmlKey);
7+
8+
if (frame && xml)
9+
{
10+
var data = ParseXMLBitmapFont(xml, xSpacing, ySpacing, frame);
11+
12+
state.sys.cache.bitmapFont.add(fontName, { data: data, texture: textureKey, frame: frameKey });
13+
14+
return true;
15+
}
16+
else
17+
{
18+
return false;
19+
}
20+
};
21+
22+
module.exports = ParseFromAtlas;

v3/src/gameobjects/bitmaptext/ParseXMLBitmapFont.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ function getValue (node, attribute)
33
return parseInt(node.getAttribute(attribute), 10);
44
}
55

6+
// "azo-fire":
7+
// {
8+
// "frame": {"x":2,"y":2,"w":1020,"h":376},
9+
// "rotated": false,
10+
// "trimmed": true,
11+
// "spriteSourceSize": {"x":1,"y":1,"w":1020,"h":376},
12+
// "sourceSize": {"w":1024,"h":512},
13+
// "pivot": {"x":0.5,"y":0.5}
14+
// },
15+
616
var ParseXMLBitmapFont = function (xml, xSpacing, ySpacing, frame)
717
{
818
if (xSpacing === undefined) { xSpacing = 0; }
@@ -19,8 +29,13 @@ var ParseXMLBitmapFont = function (xml, xSpacing, ySpacing, frame)
1929

2030
var letters = xml.getElementsByTagName('char');
2131

22-
var x = (frame) ? frame.x : 0;
23-
var y = (frame) ? frame.y : 0;
32+
var x = 0;
33+
var y = 0;
34+
35+
if (frame && frame.trim)
36+
{
37+
38+
}
2439

2540
for (var i = 0; i < letters.length; i++)
2641
{

v3/src/gameobjects/bitmaptext/static/BitmapText.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
var Class = require('../../../utils/Class');
2-
var GameObject = require('../../GameObject');
32
var Components = require('../../components');
4-
var Render = require('./BitmapTextRender');
3+
var GameObject = require('../../GameObject');
54
var GetBitmapTextSize = require('../GetBitmapTextSize');
5+
var ParseFromAtlas = require('../ParseFromAtlas');
66
var ParseRetroFont = require('../ParseRetroFont');
7+
var Render = require('./BitmapTextRender');
78

89
var BitmapText = new Class({
910

@@ -25,21 +26,23 @@ var BitmapText = new Class({
2526

2627
initialize:
2728

28-
function BitmapText (state, x, y, font, text, size, align)
29+
function BitmapText (state, x, y, font, text, size)
2930
{
3031
if (text === undefined) { text = ''; }
31-
if (align === undefined) { align = 'left'; }
3232

3333
GameObject.call(this, state, 'BitmapText');
3434

3535
this.font = font;
36-
this.fontData = this.state.sys.cache.bitmapFont.get(font);
36+
37+
var entry = this.state.sys.cache.bitmapFont.get(font);
38+
39+
this.fontData = entry.data;
3740

3841
this.text = (Array.isArray(text)) ? text.join('\n') : text;
3942

4043
this.fontSize = size || this.fontData.size;
4144

42-
this.setTexture(font);
45+
this.setTexture(entry.texture, entry.frame);
4346
this.setPosition(x, y);
4447
this.setOrigin(0, 0);
4548
},
@@ -101,5 +104,6 @@ var BitmapText = new Class({
101104
});
102105

103106
BitmapText.ParseRetroFont = ParseRetroFont;
107+
BitmapText.ParseFromAtlas = ParseFromAtlas;
104108

105109
module.exports = BitmapText;

v3/src/gameobjects/bitmaptext/static/BitmapTextCreator.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
var BitmapText = require('./BitmapText');
2-
var GetAdvancedValue = require('../../../utils/object/GetAdvancedValue');
32
var BuildGameObject = require('../../BuildGameObject');
3+
var GetAdvancedValue = require('../../../utils/object/GetAdvancedValue');
4+
var GetValue = require('../../../utils/object/GetValue');
45

56
var BitmapTextCreator = function (state, config)
67
{
7-
var font = GetAdvancedValue(config, 'font', '');
8+
var font = GetValue(config, 'font', '');
89
var text = GetAdvancedValue(config, 'text', '');
910
var size = GetAdvancedValue(config, 'size', false);
10-
var align = GetAdvancedValue(config, 'align', 'left');
11+
var align = GetValue(config, 'align', 'left');
1112

12-
var bitmapText = new BitmapText(state, 0, 0, font, text, size, align);
13+
var bitmapText = new BitmapText(state, 0, 0, font, text, size);
1314

1415
BuildGameObject(state, bitmapText, config);
1516

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
var BitmapText = require('./BitmapText');
22

3-
var BitmapTextFactory = function (state, x, y, font, text, size, align)
3+
var BitmapTextFactory = function (state, x, y, font, text, size)
44
{
5-
return new BitmapText(state, x, y, font, text, size, align);
5+
return new BitmapText(state, x, y, font, text, size);
66
};
77

88
module.exports = BitmapTextFactory;

0 commit comments

Comments
 (0)