2012-01-26 3 views
4

게임을 다시 시작한 후 모든 엔진이 다시로드되고 응용 프로그램이 다시 초기화되는 것을 발견했습니다. 엔진 상태를 저장하고 "onResume"에 게임 진행을 다시 시작합니다.일시 중지 후 게임 상태를 저장하십시오. AndEngine

모든 엔진 (mEngine)을 저장하려고 시도한 다음 "onLoadEngine"에서 게임을 다시 시작하면 저장된 엔진이 반환됩니다. 나는 그것이 나쁜 해결책이고 그것이 작동하지 않는다고 생각한다.

andEngine에서 Pause \ Resume 게임 (전원 키를 누른 후)을 재개하는 가장 좋은 해결책은 무엇입니까?

+0

안드로이드가 일시 중지되었을 때 활동을 중단해서는 안되기 때문에 그렇게해야 할 이유가 없어야합니다. – Jong

+2

아마 안드로이드가 내 프로세스를 죽이지는 않지만 AndEngine이 전체 장면을 다시 초기화하고 그 상태를 저장하려고합니다. – dilix

답변

3

해결책은 엔진의 상태를 JSON으로 직렬화하고이를 공유 저장소로 저장하는 것입니다. 많은 작업이 있지만 저장하지는 않습니다. 앤드 엔진은 일시 정지 후에 엔진과 텍스처를 다시 초기화 할 것이기 때문에 게임에 엔진을 다시 쓰지 않으려면 많은 선택 사항이 없다고 생각합니다. (당신이 할 수)

내 JSON에서 각 스프라이트의 위치 유형 속도 등을 기록합니다. 저장되는 것의 복잡성은 게임의 복잡성에 달려 있습니다. 그리고 나서 각 클래스에 JSON을 입력으로 받아들이는 deserialize 메소드를 추가했습니다.

그 방법의 각주로서 나는 쉬운 작업을하기 위해 놀라운 GSON 라이브러리를 충분히 말할 수 없다. http://code.google.com/p/google-gson/

하지만 게임을 복원 할 때 복원 된 상태를 일시 중지로 설정하여 사용자가 게임이 다시 시작될시기를 알 수 있도록하십시오.

관련 문제