У меня есть группа на моей стадии, которая имеет Map<Entity, EntityActor>
. Каждый EntityActor
является актером и дочерним актером группы. В группе также есть метод reset
, который принимает новый entities
, удаляет старые и добавляет новые с соответствующим им новым экземпляром EntityActor
:
public final void reset(final Collection<Entity> entities) {
this.entitesActors.clear(); //clears the map
Gdx.app.postRunnable(() -> this.clearChildren()); //clears all the children of the group
this.addEntities(entities); //add the new entities to the map and to the group
}
public final void addEntity(final Entity entity) {
EntityActor entityActor = new EntityActor(entity); //create the corresponding EntityActor
Gdx.app.postRunnable(() -> this.addActor(entityActor)); //adds the EntityActor to the group
this.entitesActors.put(entity, entityActor); //add new elements to the map
}
public final void addEntities(final Collection<Entity> entities) {
entities.stream().forEach(this::addEntity);
}
Метод reset
вызывается потоком (НЕ основным потоком контекста OpenGL! Вот почему postRunnable)
Старые EntityActors
успешно удалены, а новые успешно добавлены, их метод draw
вызывается основным render
метод НО я не вижу их на экране! Понятия не имею почему.