0.0.2 • Published 5 years ago

phaser-pack-loader v0.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Phaser pack loader

Usage

This loader parses phaser's asset pack file, resolves URLs for referenced assets and exports an object representing the pack, which can be given to Phaser's pack loader.

Loading of individual assets must be handled with other loaders, i.e. with file loader. This is shown in and example below.

module.exports = {
    module: {
        rules: [{
            test: /packs\/.+\.json$/,
            use: ['phaser-pack-loader']
        }]
    }
};

Options

NameTypeDefaultDescription
alias{Object}{}Aliases for sipmlified import of modules

Example

webpack.config.js

var path = require('path');

module.exports = {
    entry: './index.js',
    module: {
        rules: [{
            test: /\.(png)$/,
            loader: 'file-loader?name=images/[name].[ext]'
        }, {
            test: /\.(mp3|ogg)$/,
            loader: 'file-loader?name=audio/[name].[ext]'
        }, {
            test: /atlases\/.+\.json$/,
            loader: 'file-loader?name=atlases/[name].[ext]'
        }, {
            test: /packs\/.+\.json$/,
            use: [{
                loader: 'phaser-pack-loader',
                options: {
                    alias: {
                        assets: path.resolve('./assets')
                    }
                }
            }]
        }]
    }
};

assets/packs/game.json

{
    "level1": [
        {
            "type": "image",
            "key": "logo",
            "url": "assets/sprites/logo.png",
            "overwrite": false
        },
        {
            "type": "audio",
            "key": "music",
            "urls": [
                "assets/audio/music.mp3",
                "assets/audio/music.ogg"
            ],
            "autoDecode": true
        },
        {
            "type": "atlas",
            "key": "sprites",
            "textureURL": "assets/atlases/sprites.png",
            "atlasURL": "assets/atlases/sprites.json",
            "format": "TEXTURE_ATLAS_JSON_HASH"
        }
    ],
    "meta": {
        "generated": "1492085027042",
        "app": "Phaser Editor",
        "url": "http://phasereditor.boniatillo.com",
        "version": "1.0",
        "copyright": "Arian Fornaris (c) 2015,2016"
    }
}

index.js

require('phaser-ce/build/custom/p2');
require('phaser-ce/build/custom/pixi');
var Phaser = require('phaser-ce/build/custom/phaser-split');
var pack = require('./assets/packs/game.json');

var game = new Phaser.Game(640, 512, Phaser.CANVAS, 'example', {
    preload: function(){
        this.game.load.pack('level1', null, pack);
    },
    create: function(){
        this.game.add.sprite(0, 0, 'sprites', 'background');
        this.game.add.sprite(0, 0, 'logo');
        this.game.add.audio('music', 1, true);
    }
});