我无法使用Phaser 3中的create函数将任何东西加载到画布上

时间:2019-03-25 21:17:31

标签: javascript html5 phaser-framework

我无法预加载图像

我尝试将其转换为url,尝试将其复制到项目文件夹中的文件,并且尝试仅放置文件名。

function preload(){
  this.load.image('sky', 'assets/sky.png');
  this.load.image('ground', 'assets/platform.png');
  this.load.spritesheet('dude', 'assets/dude.png');
  this.load.image('star', 'assets/star.png');
} // preloads all of the files I will need to make the game
function create() {
  this.add.sprite(200, 200, 'star');
} // applies the files 
function update() {

}// update every frame




var config = {
  type: Phaser.AUTO,
  width: 800,
  height: 600,
  backgroundColor: '#FF0000',
  physics: {
    default: 'arcade',
    arcade: {
      gravity: {y:200},
      debug: false
    }
  },
scene: {
  preload,
  create,
  update
},

} // configures the game 

var game = new Phaser.Game(config);

我想在画布上成功显示图像,但是它只显示一个黑盒子,上面有一些绿线。感谢您提供有关如何解决此问题或我所缺少的任何提示。

    function preload() {
      this.load.image('sky', 'file:///home/chronos/u-fc7808c01e889e74148d1013b69f0a2241def976/Downloads/testprogram-atom.js/assets/sky.png');
      this.load.image('ground', 'assets/platform.png');
      this.load.spritesheet('dude', 'assets/dude.png');
      this.load.image('star', '/home/jojobinks/Desktop/testprogram-atom.js/star.png');
    }
    function create() {
      this.add.image(0, 0, 'sky');
    }
    function update() {

    }




    var config = {
      type: Phaser.AUTO,
      width: 800,
      height: 600,
      backgroundColor: '#FF0000',
      physics: {
        default: 'arcade',
        arcade: {
          gravity: {y:200},
          debug: false
        }
      },
    scene: {
      preload,
      create,
      update
    },

    }

    var game = new Phaser.Game(config);
    <script src="https://cdn.jsdelivr.net/npm/phaser@3.16.2/dist/phaser-arcade-physics.min.js"></script>

1 个答案:

答案 0 :(得分:1)

打开浏览器开发工具,然后查看网络请求。它实际上是在加载文件吗?还是那里有404错误?另外,您无法从file://进行加载,并且您的游戏必须从网络服务器上运行。如果您只是在浏览器中打开index.html,它将无法正常工作。有关更多详细信息,请遵循Phaser网站上的入门指南。