我有一堆带有物理体 json 的精灵(由物理编辑器创建),我想在上面添加文本,我认为最好的方法是使用带有物质物理的容器:
preload(){
this.load.atlas('ballSheet', '/media/ballsGreen.png', '/media/ballsGreen.json');
this.load.json('ballShapes', '/media/ballsGreenPhy.json');
}
并在创建函数中创建精灵:
var ballShapes = this.cache.json.get('ballShapes');
for (i ; i< init_words.length;i++){
var tempBall = this.add.sprite((canvasWidth)/2, -100*i, 'ballSheet', 'ballGreen100.png', {shape: ballShapes.ballGreen100 });
var temp = this.add.text(canvasWidth/2, -100*i, init_words[i], { font: '34px Arial', fill: '#00ffff' });
var container = this.add.container(0,0,[tempBall,temp]);
this.matter.add.gameObject(container).setFrictionAir(0.001).setBounce(0.20);
}
labs.phaser 有一个类似的例子: phaser 3 example ,但它不能正常工作,主要是在添加容器作为游戏对象时:
this.matter.add.gameObject(container)