场景

场景 是组织游戏的一种方式。

场景由名称定义,场景开始时调用一个设置函数,以及(可选地)当场景结束时调用的函数。当一个新场景开始时,当前场景自动结束。重要的是,任何2D组件的实体都会在这种情况下被销毁,为下一个场景提供一个干净的平台。同样,视口将被重置为其默认值。

如果一个组件在新场景开始时要继续保留,你需要给他添加 "Persist" 组件。(Persist 不提供任何其他功能,你可以用于分类和标记实体。)

你可以传递一个对象给对象的启动函数,语法如下:

// Defining a new scene with an init function
Crafty.scene("SelectMenu", initMenu )

// This will call initMenu(menuData).
// (`menuData` can't be a function, though!)
Crafty.scene("SelectMenu", menuData)

还有一些事件会在场景改变是被触发::

  • 已存在的场景结束时,会在析构函数执行之前触发 "SceneDestroy" 事件。
  • 新场景开始时,会在初始化函数之前触发 "SceneChange" 事件。

更多信息, 参见 Crafty.scene 文档。