2013-03-18 6 views
1

나는 파이썬으로 작성된 게임을 가지고 있으며 Panda3d를 사용합니다. 이제 재시작 가능성을 갖고 싶습니다. 즉, 게임의 현재 인스턴스가 존재하지 않았던 것처럼 메인이 다시 실행되는 결과의 버튼을 누르기를 원합니다.panda3d - 게임을 다시 시작하는 방법

간단한 방법이 있나요?

+0

입니다. panda3d 커뮤니티에서도 질문하는 것이 좋습니다. 하지만 다른 응용 프로그램없이 panda3d 게임/응용 프로그램을 시작하지 않으면 원하는 작업을 수행 할 수 없습니다. 어쩌면 런처 * 또는 다른 것일 수도 있습니다. –

+0

나는 Panda3D와 말할 수 없다. 그러나 UI와 게임 엔진 사이의 분리가 필요하다고 생각됩니다. 그것들이 충분히 분리되어 있다면, 게임 엔진의 상태를 리셋하고 이에 따라 UI를 응답 할 수 있어야합니다. – theJollySin

답변

3

아니요. Panda3D는이 추상화를 실제로 만들지 않습니다. 이는 응용 프로그램 개발자에게 달려 있습니다. 그것은 "재시작"이 실제로 의미하는 특정 사례에 달려 있습니다. 기존 창을 닫고 새 창을 다시여시겠습니까? 그렇지 않다면 많은 Panda3D 객체를 유지해야하며 단순히 ShowBase 인스턴스를 다시 만들 수 없다는 것을 의미합니다. 그렇다면 메모리에로드 된 모델을 언로드하고 싶습니까? UI 개체의 지오메트리를 그래픽 카드로 다시 보내시겠습니까?

따라서 특정 요구에 따라 다시 시작한 다음 다시 만들어야하는 개체를 언로드하고 제거해야합니다. 객체 지향 접근법을 사용하고 객체를 적절히 구조화하는 경우 간단해야합니다. 즉, 해당 게임에 특정한 객체를 언로드하는 객체 객체에 unload()를 구현 한 다음 해당 객체에 대한 참조가 이동하게합니다 쓰레기 수거), 새 것을 만드십시오. (순환 참조에주의하십시오! 범위를 벗어난 경우에도 개체의 오래된 인스턴스가 메모리에 남아있을 수 있습니다.)