第 4 章 — 创建场景

上一节 | 下一节

就像电影、电视节目和戏剧通过场景组织讲述故事一样,应用程序也同样如此。在本章中,您将学习 Solar2D 中的场景管理基础知识。

游戏流程

场景是应用程序的一个独立视图或“页面”,玩家所看到的所有内容都包含在该场景中。当应用程序启动时,通常会显示一个标题/介绍场景。从那里,您可能可以导航到设置场景或开始教程。根据设计目标,游戏中每个级别也可能是专用场景。

这个游戏将有三个核心场景

  1. 菜单 — 包含各种选项的标题/介绍场景。
  2. 游戏 — 实际游戏场景。
  3. 最高分 — 最高分列表。

场景管理

Solar2D 使用称为Composer的系统来处理从一个场景移动到另一个场景。为了简化开发,每个 Composer 场景都是一个独立的 Lua 文件——这有助于保持游戏的井然有序。

在本章中,我们将更改您之前的代码,这将在 Simulator 中暂时创建错误。现在,您可以忽略这些错误或退出 Simulator,直到您准备好查看结果。

让我们修改现有项目以使用 Composer

  1. 在您的项目文件夹中,制作main.lua文件的副本并将其重命名为main_original.lua。我们在下一章需要这个原始代码,因此重要的是保留一份供参考。

  2. 使用您选择的文本编辑器,打开main.lua文件(不是副本)。在此文件中,擦除所有以前的代码——请记住,您仍然可以使用副本稍后处理。

  3. 在其中添加以下命令

local composer = require( "composer" )

-- Hide status bar
display.setStatusBar( display.HiddenStatusBar )

-- Seed the random number generator
math.randomseed( os.time() )

-- Go to the menu screen
composer.gotoScene( "menu" )

让我们更详细地检查这些命令

对于该命令,您不需要在引号中包含 .lua,因为 Solar2D 本来就期望文件具有 .lua 扩展名。因此,您可以简单地使用 "menu" 来转到包含在 menu.lua 中的场景。

composer.gotoScene( "menu" )

这就是 main.lua 的全部内容 — 记得保存您的更改!不同于之前的项目,这个 main.lua 文件非常短,因为我们只使用它来初始化 Composer、隐藏状态栏、设置随机数生成器和移动到动作开始的菜单场景。

章节概念

在本教程中,我们仅引入了更多概念,两者都与 Composer 相关

命令/属性 说明
composer.newScene() 创建一个新的场景对象,该对象可与 Composer 库一起使用。
composer.gotoScene() 过渡到特定的 Composer 场景。