Я не могу ничего загрузить на холст с помощью функции создания в Phaser 3 - PullRequest
0 голосов
/ 26 марта 2019

Не удается получить изображения для предварительной загрузки

Я попытался преобразовать его в 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);

Я хотел бы успешно отобразить изображение на холсте, но оно показывает только черный ящик с зелеными линиями на нем.Спасибо за любые советы, как это исправить или что мне не хватает, спасибо.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    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 Ответ

1 голос
/ 26 марта 2019

Откройте ваши браузеры Dev Tools и посмотрите на сетевые запросы. Это на самом деле загрузка файла в? Или у вас там 404 ошибки? Кроме того, вы не можете загрузить с file://, и ваша игра должна быть запущена с веб-сервера. Если вы просто открываете index.html в своем браузере, он не будет работать. Пожалуйста, следуйте Руководству по началу работы на сайте Phaser для получения более подробной информации.

...