相位器.js获取给定的无效相位器状态对象

Phaser.js getting Invalid Phaser state object given

本文关键字:无效 对象 状态 js 获取      更新时间:2023-09-26

我目前正在尝试使用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);

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

给定的相位器状态对象无效。必须至少包含一个必需的函数:预加载、创建、更新或渲染移相器.js:34530

相位器 v2.4.6 |貔貅.js v2.2.9 |网络GL |网络音频 http://phaser.io ♥♥♥

捕获的类型错误:无法设置未定义的移相器的属性"游戏".js: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 = ->

我不使用 CoffeeScript,但我认为问题是你没有将对象传递给 Game 构造函数。相位器需要一个格式正确的状态对象才能启动。你可以在 Phaser.State 类中找到一个示例(在存储库中它在 src/core/State.js 中)。可能您需要做的就是:

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

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

而不是

preload = function() {
};

它需要

function preload() {
};