0
Я пишу экран с двумя актерами, я хочу заменить одну страницу на другую после события. Но после удаления первой страницы актера со сцены и добавить вторую страницу актера, я не вижу ни первого, ни второго страницы актера :(libgdx - не отображается актер, добавленный после удаления другого актера
class PageScreen extends Screen {
def createPage(n:Int):Page = ...
...
var stage:Stage = _
var page:Page = _ // Page extends WidgetGroup
var menu:Menu = _ // Menu extends WidgetGroup
// mbassador subscribe to events
bus.subscribe(this)
@Handler
def handleEvent(message: TailBookEvent): Unit = {
message match {
case ForwardPageButtonPressedEvent(_) =>
stage.getActors.removeValue(page, true) // I tried everything
stage.getRoot.removeActor(page) // I tried everything
page = createPage(4)
page.setDebug(true)
stage.addActor(page) // I tried everything
stage.getRoot.addActor(page) // I tried everything
stage.getActors.add(page) // I tried everything
...
}
}
override def show(): Unit = {
stage=new Stage(new ScreenViewport())
page = createPage(1)
menu = new Menu(page.pageAtlas)
stage.addActor(page)
stage.addActor(menu)
Gdx.input.setInputProcessor(stage)
}
override def render(delta: Float): Unit = {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT)
if (stage != null) {
stage.act(delta)
stage.draw()
}
}
override def resize(width: Int, height: Int): Unit = {
if (stage != null) stage.getViewport().update(width, height, true)
menu.setBounds(0, 0, width, height)
page.setBounds(0, 0, width, height)
}
override def dispose(): Unit = {
if (stage != null) stage.dispose()
}
...
}
даже этот код удаляет все с экрана:
stage.clear()
page = createPage(page.pageNumber+1)
page.setDebug(true)
stage.addActor(page)
stage.addActor(menu)
Что я делаю неправильно?