Ben*_*Gil 7 javascript node.js phaser-framework
我开始学习Phaser 3框架,我面临这个大错误,我不知道为什么会发生这种情况,错误是:无法添加具有重复键的场景:默认。
我的两个密钥完全不同,这里可能出了什么问题,我不明白,我正在观看 YouTube 播放列表教程,而那个人有完全相同的东西,并且一切对他来说都工作正常,因为它应该。
我的主要区别是我在 Node js 服务器中运行所有这些,但我认为这并不重要,我只是提供包含所有游戏的公共文件夹。
这是我的一些代码
这是我的第一个场景
class BootLoader extends Phaser.Scene {
constructor() {
super({
Key: "BootLoader"
});
}
preload() {
alert("La escena del boot cargo");
}
}
export default BootLoader;
Run Code Online (Sandbox Code Playgroud)
这是第二个场景
class ScenePlay extends Phaser.Scene {
constructor() {
super({
Key: "ScenePlay"
});
}
preload() {
alert("La escena del scene cargo");
}
}
export default ScenePlay;
Run Code Online (Sandbox Code Playgroud)
这是我的初始化文件,其中包含游戏的配置。
import ScenePlay from "./scenes/ScenePlay.js";
import BootLoader from "./bootloader.js";
const config = {
width: 640,
height: 400,
parent: "container",
physics: {
default: "arcade"
},
scene: [
ScenePlay,
BootLoader
],
}
new Phaser.Game(config);
Run Code Online (Sandbox Code Playgroud)
这是在我的 index.html 文件上运行的脚本
<!-- Phaser libraries and my Game -->
<script src="//cdn.jsdelivr.net/npm/phaser@3.16.2/dist/phaser.js"></script>
<script src="./game/init.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)
这是我的 Node Js 服务器文件,但我不认为这是问题所在
const express = require("express");
const app = express();
app.use(express.static('public'));
app.listen(3000, function () {
console.log("Server is running on port 3000");
});
Run Code Online (Sandbox Code Playgroud)
小智 0
好的,我刚刚在分享引发这篇文章的相同问题时找到了解决方案。
代码
import ScenePlay from "./scenes/ScenePlay.js";
import BootLoader from "./bootloader.js";
const config = {
width: 640,
height: 400,
parent: "container",
physics: {
default: "arcade"
},
scene: [
ScenePlay,
BootLoader
],
}
new Phaser.Game(config);
Run Code Online (Sandbox Code Playgroud)
缺少场景类初始化,这就是为什么 Phaser 使用默认值在两个场景中使用相同的“默认”键来完成它。
只需在场景声明和配置之间添加以下初始化行:
var sceneToPlay = new ScenePlay();
var sceneToBoot = new BootLoader();
Run Code Online (Sandbox Code Playgroud)
然后,修改您的配置以使用初始化的类实例:
const config = {
width: 640,
height: 400,
parent: "container",
physics: {
default: "arcade"
},
scene: [
sceneToPlay,
sceneToBoot
],
}
Run Code Online (Sandbox Code Playgroud)
这应该可以解决它,就像它为我所做的那样。
最好的
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |