0

我正在尝试在 create() 中加载和添加图像。看来我需要开始新的加载,所以我的代码是:

    this.load.image('sky', 'ASSETS/IMAGES/from_phaser/space3.png');
    this.load.start();
    this.add.image(width/2, height/2, 'sky'); 

正如我在 Chrome 的检查器中看到的那样,加载有效,但图像未显示……为什么this.add.image(width/2, height/2, ‘sky’);不显示任何内容或至少抛出错误?

4

2 回答 2

0

虽然您可以在任何时候加载资产,包括 in create,但该过程是异步的。因此,您需要等待文件完成事件才能使用该资产。下一行代码绝对不能使用它。

您可以使用几个事件,最简单的可能是this.load.on('complete'). 但是,您也可以收听filecomplete以了解何时加载了单个文件。

于 2019-09-04T11:48:39.373 回答
0

您将希望在预加载功能中加载所有图像。Phaser 在开始时调用此函数。您将需要预加载所有资产,以便以后以不同的方式使用它们。预加载后,您可以在创建功能中将其添加到默认场景中。

function preload () {
    this.load.image('sky', 'ASSETS/IMAGES/from_phaser/space3.png');
}

function create () {
    this.add.image(width/2, height/2, 'sky');
}
于 2019-09-03T14:58:43.297 回答