저는 libgdx로 작업하며 Stage
에 3 개의 Actors
이 붙은이 상황이 있습니다. act()
메서드가 스테이지에서 호출 될 때 각 액터의 act() 메서드가 호출되고 있습니다. 이것이 기본 동작이며 올바른 것입니다.libgdx Stage.dispose()가 액터를 즉시 분리하지 않습니다.
하지만 두 번째 액터의 장면을 처리 할 경우 act()
메서드는 세 번째 액터의 act()
메서드가 여전히 호출되고 있습니다. 나는이 행동을 기대하지 않았을 것이다. 무대에서 dispose()
메서드가 호출 된 직후에이 액터가 분리되지 않는 것과 같습니다. 이 세 번째 배우에 대한 마지막 호출은 예외적 인 경우가 발생하기 때문에 문제가 될 수 있으며이를 피하는 방법을 모르겠습니다. 장면이 이되기 전에 세 번째 액터의 act() 메서드가 마지막으로 호출되지 않으면 실제로는이 처리됩니다.
내가 이것을 피할 수있는 방법이 있습니까?
필자의 경우 두 번째 배우가 적이며 세 번째 배우가 방어 탑이기 때문에 게임 디자인을 변경하기가 어렵다. 적이 죽으면 화면을 넘어 게임을 보여주기 위해 장면을 처분합니다. 그러나 타워 여전히 원수가 죽을 때
이것은 Stage의 디자인 된 동작입니다. 그것은 모든 액터의'act' 메쏘드가 다른 액터가 무엇을하고 있든 관계없이 프레임에서 한 번 호출된다는 것을 보장합니다. 대부분의 경우 이것이 가장 유용한 행동이라고 생각합니다. 어쩌면 당신은 예외를 일으키는 당신의 탑의 연기 방법에서 일어나고있는 것을 공유 할 수 있습니다. – Tenfour04
고마워, 내 응용 프로그램의 일부를 재 설계하면이 문제를 피할 수 있다고 생각합니다. 그냥 그것이 처형 된 후에도 무대에서 연기하는 배우가 여전히 있다는 것이 이상하다는 것을 알았습니다. 나는 이것을 처리 할 수있는 깨끗한 방법이 없다고 생각합니다. – linu