Please review the following JSFiddle: https://jsfiddle.net/r4yfozsw/1/
var stage = new PIXI.Container(),
renderer = PIXI.autoDetectRenderer(640, 480),
loader = PIXI.loader,
resources = loader.resources;
var menu = createMenu();
document.body.appendChild(renderer.view);
stage.addChild(menu);
//Render the stage
loop();
function loop(){
setInterval(() => {
renderer.render(stage);
}, 1000/10 );
}
function createMenu(){
var buttons = new PIXI.Container();
buttons.addChild(createButtonEndTurn());
return buttons;
}
function createButtonEndTurn(){
var buttonText = new PIXI.Text("End Turn",
{
fontFamily : 'Arial',
fontSize: 24,
fill : "white",
align : 'right'
});
var buttonEndTurn = new PIXI.Graphics();
buttonEndTurn.beginFill(0xFF2342);
buttonEndTurn.drawRect(400,300,150,100);
buttonEndTurn.endFill();
buttonEndTurn.interactive = true;
buttonEndTurn.on('mousedown', endTurnEvent);
buttonEndTurn.addChild(buttonText);
return buttonEndTurn;
}
function endTurnEvent(eventData){
eventData.target.children[0].setText("End Turn" + turn);
turn++;
console.log("Turn " + turn + " finished!");
}
I added the Text object to my button rectangle as a child. I also added the option align
for the text. I therefore expected the text to be centered within the buttons local - but it has been rendered to an arbitrary position in the canvas. Can you tell me what I'm not understand with the container system of PIXI.js here?