public void update(float delta) {
    // We draw the elements in order: from top to bottom.
    // so we need to order the array list
    for (SceneLayer layer : layers) layer.update();

    // music delay update
    if (music != null && !music.isPlaying()) {
      boolean initialTime = false;

      if (currentMusicDelay <= initialMusicDelay) initialTime = true;

      currentMusicDelay += delta;

      if (initialTime) {
        if (currentMusicDelay > initialMusicDelay) playMusic();
      } else {
        if (repeatMusicDelay >= 0 && currentMusicDelay > repeatMusicDelay + initialMusicDelay) {
          currentMusicDelay = initialMusicDelay;
          playMusic();
        }
      }
    }

    for (BaseActor a : actors.values()) {
      a.update(delta);
    }

    camera.update(delta);

    if (followActor != null) {
      camera.updatePos(followActor);
    }
  }
  public void setCameraFollowActor(SpriteActor a) {
    followActor = a;

    if (a != null) camera.updatePos(a);
  }