在我制作的游戏中,我使用的场景架构包含某一时刻所有活动的Actor(视觉/逻辑游戏对象)。我有一个带有“关闭”按钮的对话框弹出窗口(这也是场景中的Actor)
是否可以从Button成员中清除(c ++删除)场景,如果该scene.clear()也会同步删除Button?
只要不使用clear()语句之后不再使用按钮的成员,我就可以确定,但是可能有些我不知道的东西吗?
namespace actors
{
namespace ui
{
// ...
void CloseDialogButton::update()
{
if (gb.buttons.pressed(Button::a))
{
// ...
Game::ui_scene.clear(); // <-- this frees all game assets, including this CloseDialogButton instance
}
}
}
}
// a copy paste FYI:
void Scene::clear()
{
for (auto i = 0; i < get_actor_count(); i++)
{
delete actors[i]; // <- the button is among these
}
actor_tail_index_ = 0;
}