2016-08-20 3 views
0

В игру слов я пытаюсь нарисовать счет в виде белых чисел выше синего (или красного) прямоугольника:Рисование прямоугольника под PIXI.Text

screenshot

Например, в приведенном выше скриншоте является номер "13".

Вот весь мой класс Score.js (с в настоящее время жёстко WIDTH и HEIGHT):

"use strict"; 

function Score(color) { 
     PIXI.Container.call(this); 

     this.interactive = false; 
     this.buttonMode = false; 
     this.visible = false; 

     this.bgGraphics = new PIXI.Graphics(); 
     this.bgGraphics.beginFill(color, 1); 
     this.bgGraphics.drawRect(0, 0, Score.WIDTH, Score.HEIGHT); 
     this.bgGraphics.endFill(); 
     this.addChild(this.bgGraphics); 

     this.text = new PIXI.Text('XXX', {font: '20px Arial', fill: 0xFFFFFF}); 
     this.text.x = 1; 
     this.text.y = 1; 
     this.addChild(this.text); 
} 

Score.prototype = Object.create(PIXI.Container.prototype); 
Score.prototype.constructor = Score; 

Score.WIDTH = 36; 
Score.HEIGHT = 24; 

Score.prototype.setText = function(str) { 
     this.text.text = str; 
} 

Интересно, как изменить свою setText() функции, так что новый прямоугольник рисуется на каждый вызов - как ограничивающие прямоугольник для аргумента str?

Я посмотрел на метод PIXI.Text.getBounds(), но он возвращает Matrix и не Rectangle ...

ответ

1

Я думаю, вы можете просто использовать this.text.width. Это исторически имело некоторый bugs associated with it, но оно должно работать в самой последней версии.

Смежные вопросы