图像未添加到场景 -Phaser 3.5
Image is not getting added to the scene -Phaser 3.5
我正在尝试学习 Phaser JS,但一直无法弄清楚为什么我的背景图像没有显示到场景中。我试过将图像文件移动到不同的位置,还尝试做函数声明而不是方法,但结果相同。预先感谢您提供的任何指导!顺便说一句,我正在使用 parcel-bundler 代码和截图
Screenshot
首先是main.js
import Phaser, { Physics } from "phaser"
import { TitleScene } from "./scenes"
const GameConfig = {
width: 800,
height: 500,
type: Phaser.AUTO,
physics: {
default: "arcade",
arcade: {
gravity: {
y: 0,
},
},
},
};
const game = new Phaser.Game(GameConfig);
game.scene.add("title", TitleScene);
game.scene.start("title");
这是我的 scenes.js 个文件:
import Phaser, { Textures } from "phaser"
export class TitleScene extends Phaser.Scene {
preload() {
this.load.image("sky", "sky.png");
}
create() {
this.add.image(400, 250, "sky");
const titleText = this.add.text(400, 250, "Hello World!");
titleText.setOrigin(0.5,0.5);
//this.add.arc(400, 250, 128, 0, 360, false, 0xff0000);
}
};
export class GameScene extends Phaser.Scene {
preload() {
}
create() {
}
}
您可能需要调整为图像 url 提供的相对于 scenes.js
的路径
例如,
// __rootDir__/js/scenes.js
import Phaser from 'phaser'
export class TitleScene extends Phaser.Scene {
preload() {
this.load.image("sky", "../images/sky.jpg") // path relative to scenes.js
}
create() {
const image = this.add.image(200, 200, "sky")
image.setScale(1.0)
const titleText = this.add.text(200, 200, "Hello World!")
titleText.setOrigin(0.5, 0.5)
}
}
export class GameScene extends Phaser.Scene {
preload() {}
create() {}
}
https://codesandbox.io/s/Whosebug-66878947-qhevi?file=/js/scenes.js
对于遇到类似问题的任何人,我可以通过直接导入图像来解决 2 方法 1:import bg0 from "./assets/bg0.png"
或使用 require() 这样: this.load.image("bg0", require("./assets/bg0.png"))
我怀疑这些是由于某些 macos 设置问题或包裹捆绑程序问题而需要。
我正在尝试学习 Phaser JS,但一直无法弄清楚为什么我的背景图像没有显示到场景中。我试过将图像文件移动到不同的位置,还尝试做函数声明而不是方法,但结果相同。预先感谢您提供的任何指导!顺便说一句,我正在使用 parcel-bundler 代码和截图
Screenshot
首先是main.js
import Phaser, { Physics } from "phaser"
import { TitleScene } from "./scenes"
const GameConfig = {
width: 800,
height: 500,
type: Phaser.AUTO,
physics: {
default: "arcade",
arcade: {
gravity: {
y: 0,
},
},
},
};
const game = new Phaser.Game(GameConfig);
game.scene.add("title", TitleScene);
game.scene.start("title");
这是我的 scenes.js 个文件:
import Phaser, { Textures } from "phaser"
export class TitleScene extends Phaser.Scene {
preload() {
this.load.image("sky", "sky.png");
}
create() {
this.add.image(400, 250, "sky");
const titleText = this.add.text(400, 250, "Hello World!");
titleText.setOrigin(0.5,0.5);
//this.add.arc(400, 250, 128, 0, 360, false, 0xff0000);
}
};
export class GameScene extends Phaser.Scene {
preload() {
}
create() {
}
}
您可能需要调整为图像 url 提供的相对于 scenes.js
例如,
// __rootDir__/js/scenes.js
import Phaser from 'phaser'
export class TitleScene extends Phaser.Scene {
preload() {
this.load.image("sky", "../images/sky.jpg") // path relative to scenes.js
}
create() {
const image = this.add.image(200, 200, "sky")
image.setScale(1.0)
const titleText = this.add.text(200, 200, "Hello World!")
titleText.setOrigin(0.5, 0.5)
}
}
export class GameScene extends Phaser.Scene {
preload() {}
create() {}
}
https://codesandbox.io/s/Whosebug-66878947-qhevi?file=/js/scenes.js
对于遇到类似问题的任何人,我可以通过直接导入图像来解决 2 方法 1:import bg0 from "./assets/bg0.png"
或使用 require() 这样: this.load.image("bg0", require("./assets/bg0.png"))
我怀疑这些是由于某些 macos 设置问题或包裹捆绑程序问题而需要。