流星本地包,相位游戏,资产加载



好吧,我正试图从相位游戏中制作一个包,一直在研究这个几天,但它似乎不起作用。我想我找到了问题所在,希望有人能帮我解决这个问题!

我设置了一切以使用本地包,这一切都可以工作。直到我开始预加载资源。

这是我的Menu类

Menu = function() {
    console.log(this);
}
Menu.prototype = {
    preload: function(){
        this.load.image('background', 'assets/background.png');
        console.log("ok in preload");
    },
    create: function(){
        this.background = this.game.add.sprite(0, 0, 'background');
        console.log("ok in create");
        var text = "We're getting there";
        var style = { font: "23px Arial", fill: "#ff0044", align: "center" };
        var t = game.add.text(game.world.centerX, 0, text, style);
    },
};

我通过

调用它
game = new Phaser.Game(400, 300, Phaser.AUTO, "gameWindow");
game.state.add('menu', Menu);
game.state.start('menu');

这些似乎都可以通过查看控制台日志来工作,只要我不尝试在预加载函数中加载图像,如果我这样做,它就会一直卡在预加载函数中。

background.png位于我的根文件夹"public/assets/background.png"。所以我在想,当我试图从本地包访问这个时,它很难到达那里…

我的package.js是这样的:

Package.describe({
  summary: "game one"
});
Package.on_use(function (api, where) {
    api.use(['phaserio'], 'client');
    api.add_files(['states/menu.js'],
                  ['client']);
    api.export('Menu', ['client']);
});
有人知道我做错了什么吗?提前感谢!

你应该能够从应用程序中加载公共图像,但这取决于预加载序列何时运行。首先解析包。所以你的新游戏是在Meteor.startUp ->中创造的吗?应用程序本身什么时候初始化?

你也可以把资源放到包本身。你使用的是0.9吗?包内静态资源的路径存在一些问题查看这个线程:

https://github.com/meteor/meteor/issues/2602

对于0.9包,你必须添加更多的信息

Package.describe({
  summary: "phaser for meteor",
  version: '0.0.1',
  git: 'https://github.com/dcsan/package-dev',
  name: "YOURNAME:phaser"
});

当前如果你用下划线代替冒号:

/packages/YOURNAME_phaser/added/path/to/asset.png

如果你得到相位器包装我也会感兴趣,所以请发布到大气!

最新更新