为什么我需要使用 Corona Director 类中的 localGroup:insert( object ) 函数?

我似乎无法理解使用 director 类时必须使用的 localGroup:insert 命令。

如果我使用以下内容创建对象:

local btnBegin = display.newImage( "images/btn_begin.png", (display.viewableContentWidth/2)-200, display.contentHeight * .7 )

即使我从未执行

localGroup:insert( btnBegin )

图像也会在场景中完美显示。

我本来认为 localGroup:insert 是必要的,以便将场景的所有组件分组在一起进行显示,但这不是在每个场景开始处的

function new()

的意图吗?在我的理解中,我认为在函数中创建所有对象已经使它们成为场景文件的本地对象。

localGroup:insert 的作用是什么?

原文链接 https://stackoverflow.com/questions/9013707

点赞
stackoverflow用户7602
stackoverflow用户7602

据我了解,你可以将 HUD 直接添加到屏幕上并包含你的关卡的 localGroup 中。然后,如果你更改了关卡,你只需要移动包含在 localGroup 中的关卡,保留在屏幕上直接放置的 HUD 元素。

2012-01-26 14:19:28
stackoverflow用户1019194
stackoverflow用户1019194

当你使用display.newImage(...)时,这将添加显示对象到主场景中。正如tomdemuyt所说的,这可能对于HUD或在场景之间出现的其他图形非常有用。

舞台也包含您的场景,在这里定义为localGroup。要将对象添加到场景中,您应将其插入到localGroup中。

例如,如果您有一个包含菜单按钮的菜单场景。如果您按下“开始游戏”按钮,当屏幕转换到下一个场景时,所有菜单项都将与菜单场景一起适当地移除,而不是停留在全局舞台上。

这一切都取决于显示层次结构以及您希望如何组织它。将子对象插入其适当的父对象中是有意义的:

  1. 舞台拥有菜单场景
  2. 菜单场景拥有按钮

比:

  1. 舞台拥有菜单场景
  2. 舞台拥有按钮
2012-04-30 13:37:55