首页 > 解决方案 > Phaser 3 物质物理容器,用于自定义形状的精灵

问题描述

我有一堆带有物理体 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)

标签: phaser-frameworktexture-atlasmatter.js

解决方案


推荐阅读