javascript - dev 文件夹中的 Phaser 3 图像?

标签 javascript typescript phaser-framework

我正在关注一个非常基本的 Phaser 3 示例,但问题是 dist 文件夹只包含一个 bundle.js 文件,所有 Assets 仍然从 src 文件夹。

文件夹结构:

dist
  - bundle.js
src
  assets
    - bmo.png
  scenes
    - game-scene.ts

加载代码:

  export class GameScene extends Phaser.Scene {

  constructor() {
    super({key: "GameScene"});
  }

  preload(): void {
    this.load.image('bmo', './src/assets/bmo.png');
  }
}

但是现在图像是从 src 文件夹中加载的!这不对吧? 如何导出包含 html 文件和 Assets 文件的游戏?

目前我使用 npm run dev 运行 webpack 来测试游戏。

最佳答案

尝试为 Webpack 使用 file-loader

$ npm install file-loader --save-dev

添加文件加载器设置你的 webpack 配置,如:

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {},
          },
        ],
      },
    ],
  },
};

然后,您可以将文件导入到您的 TypeScript 文件中,例如:

从 './src/assets/bmo.png' 导入 img;

如果您对 Webpack 中的设置选项感到困惑,docs 中有大量示例.

关于javascript - dev 文件夹中的 Phaser 3 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55240605/

相关文章:

javascript - Meteor 0.8 Blaze 如何更新 Jquery 插件的渲染变化

javascript - 捕获 div 内的按键,该 div 内有一个对象标签

javascript - D3.js 与维基百科的集成

JavaScript URL 验证

typescript - 在/node_modules/angular2/src/testing/matchers.d.ts 中找不到命名空间 Jasmine

javascript - 如何将 Spine 动画添加到 Phaser 游戏?

typescript - 使用 TypeScript 编译器参数 'skipLibCheck'

Angular 2+ : Use component as input in another component

javascript - Phaser中图形和 Sprite 之间的碰撞检测

drag-and-drop - Phaser 3 拖动对象时发生碰撞