phaser-ce
phaser-ce copied to clipboard
Tinting BitmapText characters separately not working after setting anchor
Basically what in the title is. You can tint a BitmapText's characters separately, but if you set anchor (or maybe some other properties too), the tinting is not working on per character. I guess the engine overwrites all the children elements (the characters) tint values with the BitmapText's tint value.
Here is a small example demonstrating the problem: http://icedevel.com/phaser-bug/character-tinting/index.html
My opinion is that the children elements should retain tint values if the BitmapText's tint value is not modified.
And the code:
var game;
function preload() {
this.game.load.bitmapFont("font", "font_simple.png", "font_simple.fnt");
}
function create() {
var txt1 = this.game.add.bitmapText(50, 50, "font", "012345", 28);
txt1.children[0].tint = 0xFF0000;
txt1.children[1].tint = 0xFFFF00;
txt1.children[2].tint = 0xFF00FF;
txt1.children[3].tint = 0x0000FF;
txt1.children[4].tint = 0x00FFFF;
txt1.children[5].tint = 0xFF0FF0;
var txt2 = this.game.add.bitmapText(50, 250, "font", "012345", 28);
txt2.anchor.setTo(0, 1);
txt2.children[0].tint = 0xFF0000;
txt2.children[1].tint = 0xFFFF00;
txt2.children[2].tint = 0xFF00FF;
txt2.children[3].tint = 0x0000FF;
txt2.children[4].tint = 0x00FFFF;
txt2.children[5].tint = 0xFF0FF0;
}
function update() {
}
window.onload = function(){
var config = {
width: 800,
height: 600,
renderer: Phaser.AUTO,
antialias: true,
state: {
preload: preload,
create: create,
update: update
}
}
game = new Phaser.Game(config);
};
Tested it on Phaser 2.8.0
So removing txt2.anchor.setTo(0, 1) eliminates the problem?
It looks like an anchor change triggers BitmapText#updateText.