Phaser.js获得无效的Phaser状态对象

时间:2016-02-26 03:07:25

标签: javascript

我目前正在尝试使用Phaser 2d游戏引擎。

我目前有这段代码:

// Generated by CoffeeScript 1.10.0
(function() {
  var create, game, preload, update;

  game = new Phaser.Game(800, 600, Phaser.AUTO, '', {
    preload: preload,
    create: create,
    update: update
  });

  preload = function() {
    return game.load.atlasJSONHash('seyan_f_torch', '../sprite_hashes/seyan_f_torch.png', '../sprite_hashes/seyan_f_torch.json');
  };

  create = function() {
    var seyan_f_torch;
    seyan_f_torch = game.add.sprite(0, 180, 'seyan_f_torch', '00219000.png');
    seyan_f_torch.animations.add('walk-down', Phaser.Animation.generateFrameNames('', 219016, 219023, 9), 10, true, false);
  };

  update = function() {};

}).call(this);

然后,当我尝试加载它时,我得到了这个:

  

给出了无效的Phaser State对象。必须至少包含一个必需的函数:preload,create,update或render phaser.js:34530

     

Phaser v2.4.6 | Pixi.js v2.2.9 | WebGL | WebAudio http://phaser.io♥♥♥

     

Uncaught TypeError:无法设置undefined phaser.js的属性'game':29106

不确定这里有什么问题。任何信息都会非常感谢。

...

这是实际的CS文件:

game = new (Phaser.Game)(800, 600, Phaser.AUTO, '',
    preload: preload
    create: create
    update: update)


preload = ->
    game.load.atlasJSONHash 'seyan_f_torch', '../sprite_hashes/seyan_f_torch.png', '../sprite_hashes/seyan_f_torch.json' 

create = ->
    # Create Seyan_F_Torch
    seyan_f_torch = game.add.sprite(0, 180, 'seyan_f_torch', '00219000.png')
    seyan_f_torch.animations.add('walk-down', Phaser.Animation.generateFrameNames('', 219016, 219023, 9), 10, true, false);
    setTimeout ->


update = ->

2 个答案:

答案 0 :(得分:2)

我不是CoffeeScript,但我认为问题在于你没有将Object传递给Game构造函数。 Phaser需要一个格式良好的State Object来开始。您可以在Phaser.State类中找到一个示例(在src / core / State.js中的repo中)。可能你需要做的就是:

find . -type f | wc -l

答案 1 :(得分:0)

我遇到了同样的问题并发现,函数语法对Phaser很重要。

而不是

preload = function() {
};

它需要

function preload() {
};