【问题标题】:Corona sdk: Scene structureCorona sdk:场景结构
【发布时间】:2014-02-15 16:19:43
【问题描述】:

我搜索了好几个小时,仍然不明白。
这是我的问题,我做了一个小游戏,它正在运行,但现在我需要一个菜单​​、高分屏幕等等。这意味着我的游戏完全没有使用故事板/场景功能。

这是我的结构:

简介
在那里,我放置了首先需要启动的所有内容,例如物理函数。

变量
在那里我有我所有的变量,例如:

local object = 0 <or>
local object = display.newObject(param)

功能
我把我的所有功能都放在那里,例如:

local function functionName (event)
end


事件监听器
在那里我有每个事件监听器,例如:

functionName:addEventListener("eventType", functionName)


所以这就是我所拥有的,我在研究中发现我需要一些函数来创建我的场景,进入我的场景,退出我的场景和销毁我的场景。问题是我不知道将这些场景放在哪里以及将其余代码放在哪里。基本上我需要的是:

  • 带有播放按钮和高分按钮的菜单。
  • 当点击我的播放按钮时,它会跳转到我的游戏场景(它总是同一个游戏,它不包含任何级别左右),如果失去然后跳转到另一个看起来像的场景,重新启动或进入菜单.
  • 当点击高分按钮时,它会显示最好的分数。

如果在我的函数中创建对象呢?会不会扰乱现场?还有分数呢,我在切换高分等场景时需要它,有没有办法不让分数不仅本地而且公开?

我希望我说得够清楚,你会明白我需要什么! :) 以结构为例,有一个叫“doodle jump”的游戏,我的游戏结构应该看起来有点相似。

【问题讨论】:

  • 我对故事板了解不多,但我建议不要使用它。我要么使用 Director 类,要么把他们的东西都搞砸。您可以像其他编程语言一样使用模块和类。只需自己处理所有对象的创建和删除。
  • 我不同意忍者猪——使用故事板或作曲家,而不是导演。我认为 Director 上一次更新是 2011 年。Storyboard(以及即将推出的 Composer)是 Corona SDK 的“官方”场景管理器,并将继续更新。故事板一开始可能会让人不知所措,但一旦你了解正在发生的事情,它就会变得很有意义。
  • 让我换个说法,只使用较新版本的director slim。不是那个漏洞百出的老导演。我仍然认为让你的主文档是 main.lua,而只是从 main 中的其他文档调用函数是要走的路。

标签: lua coronasdk corona-storyboard


【解决方案1】:

创建优秀代码的部分原因在于您选择组织和格式化代码的方式。

这是我喜欢做的事情:

我有一个 main.lua 文件 + 一个 scenes 目录,其中包含我所有的场景。我为每个场景使用一个 lua 文件。

-> ProjectName/
     - main.lua
     -> scenes/
        - mainMenu.lua
        - highScores.lua
        - game.lua
        - pauseMenu.lua
        - etc ...

main.lua

在 main.lua 中,我设置了游戏和所有设置。设置完成后,我调用 mainMenu 场景出现。

local composer = require("composer")

-- Setup game here:
composer.mySettings = "Some settings that can be accessed in any scene (highscores, volume settings, etc)"
composer.myVolume = 100


-- Use composer to go to our first game scene
composer.goToScene("scenes.mainMenu")

scenes/someScene.lua

场景响应电晕事件。这些事件是:

scene:create()
scene:show()
scene:hide()
scene:destroy()

提示

我建议你关注这个tutorial

并在所有场景中使用this template

【讨论】:

    【解决方案2】:

    一点建议:

    请不要在命名场景的根文件夹时使用大写字母,否则会显示错误消息。只是不要使用它,一切都会好起来的:)

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 2017-07-14
      相关资源
      最近更新 更多