StateManager

# StateManager

状态管理对象

状态管理器负责加载、设置和切换游戏状态。

构造函数

# 属性

# 方法

# add()

game.add()

将新状态添加到 StateManager 中。您必须给每个状态一个唯一的密钥,以便识别它。State 可以是 Phaser.State 对象(或扩展它的对象)、纯 JavaScript 对象或函数。如果给定了一个函数,将通过调用它来创建一个新的状态对象。

add(key, state, autoStart);

参数

  • key 【string】必选参数

    • 用于引用此状态的唯一键,即“MainMenu”、“Level1”。
  • state 【 Phaser.State | object | function】必选参数

    • 要切换到的状态
  • autoStart 【boolean】可选参数,默认 false

    • 如果为真,状态将在添加后立即启动

# start()

game.start()

启动给定的状态。如果一个状态已经在运行,那么在切换到新状态之前将调用 State.shutDown(如果它存在)。

start(key, clearWorld, clearCache, parameter);

参数

  • key 【string】

    • 要启动的状态的键
  • clearWorld 【boolean】默认 true

    • 清除世界上的一切?这会完全清除世界显示列表(但不会清除舞台,因此如果您已将自己的对象添加到舞台,它们将需要直接管理)
  • clearCache 【boolean】默认 false

    • 清除游戏缓存?这将清除所有加载的资产。默认值为 false,如果您也想清除缓存,则必须设置 clearWorld=true。
  • parameter 【*】

    • 将传递给 State.init 函数的附加参数(如果有的话)。

# 示例

init()

preload() 加载游戏资源

create 创建游戏显示对象或注册资源

update()

render()

// 五个函数的执行顺序,从上到下
function state() {
    this.init = function () {};
    this.preload = function () {};
    this.create = function () {};
    this.update = function () {};
    this.render = function () {};
}
//------------------管理场景-----------------
// 添加场景
game.state.add("state", state);
// 启动场景
game.state.start("state");

// 当某个资源加载完成时触发
// game.load.onFileComplete.add(function(){})
// game.load.process 表示所有资源的加载进度,百分制
// 当所有资源加载完成时触发
// game.load.onLoadComplete.add(function(){})

#