Phaser.js 获取给定的无效 Phaser 状态对象
Posted
技术标签:
【中文标题】Phaser.js 获取给定的无效 Phaser 状态对象【英文标题】:Phaser.js getting Invalid Phaser state object given 【发布时间】:2016-02-26 03:07:25 【问题描述】:我目前正在尝试使用 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 |网络音频http://phaser.io♥♥♥
Uncaught TypeError: Cannot set property 'game' of undefined phaser.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 = ->
【问题讨论】:
【参考方案1】:我不使用 CoffeeScript,但我认为问题在于您没有将 Object 传递给 Game 构造函数。 Phaser 需要从格式良好的状态对象开始。您可以在 Phaser.State 类中找到一个示例(在 src/core/State.js 中的 repo 中)。您可能需要做的就是:
game = new (Phaser.Game)(800, 600, Phaser.AUTO, '',
preload: preload,
create: create,
update: update
)
【讨论】:
谢谢,我本来打算回来编辑我的问题,之所以这样,是因为 cs 正在将我的函数转换为函数表达式。【参考方案2】:我遇到了同样的问题,发现函数语法对 Phaser 很重要。
代替
preload = function()
;
应该是
function preload()
;
【讨论】:
以上是关于Phaser.js 获取给定的无效 Phaser 状态对象的主要内容,如果未能解决你的问题,请参考以下文章
从零到一:用Phaser.js写意地开发小游戏(Chapter 1 - 认识Phaser.js)
从零到一:用Phaser.js写意地开发小游戏(Chapter 2 - 搭建游戏的骨架)