2011-09-13 3 views
1

저는 libgdx 프레임 워크를 사용하여 게임을 개발 중입니다. 게임을 일시 중지하면 대화를 시작하고이 대화에서는 다시 시작 버튼을 사용하려고합니다. 내가 pause()resume() 메쏘드를 사용해야한다는 것을 알고 있지만, 나는 그 메쏘드들에서 무엇을 써야 하는지를 이해할 수 없다.게임 개발

도움이 될 것입니다.

내 코드 :

@Override 
protected void onPause() { 
// TODO Auto-generated method stub 
super.onPause(); 
} 
@Override 
protected void onResume() { 
// TODO Auto-generated method stub 
super.onResume(); 
} 

답변

4

난 당신이 혼란 생각, 일시 정지 및 상태를 다시 시작하여 게임 또는 게임이 '재생'여부를 상관없는 당신의 콜백 기능에 표시된. 이러한 호출은 OS가 어떤 이유로 응용 프로그램을 일시 중지하기로 결정할 때 사용됩니다.

안드로이드 개발자 문서를 빠르게 보면 '평생'문제를 해결하는 데 도움이됩니다. 다른 한편으로는 게임에서 자신 만의 일시 중지 및 논리 재개를 어떤 방식 으로든 구현해야합니다.

+0

귀하의 회신에 감사드립니다. 나는 논리를 가지고 있지만 어디에 쓸 수 있는지 이해할 수 없다. 이 일을 도와 줄 수 있어요? – pradeepkalla

+0

로직을 사용하는 방법을 볼 수 있도록 이미이 인터페이스를 구현해야하는 코드의 비트를 포함하여 다른 질문을 열 것을 제안합니다. – Elemental

1

이 문제를 해결하는 한 가지 방법은 게임 상태 (PLAY, PAUSE)에 대한 열거 형을 만드는 것입니다. 기본 게임 루프에서 if else 문을 사용할 수 있습니다. if (GameState == PLAY) 모든 게임 플레이를 업데이트합니다. if (GameState == PAUSE) 메뉴 관리자를 업데이트하십시오.

일반적으로 게임 아키텍처에서 이러한 유형의 문제에는 상태를 사용해야합니다. 게임 아키텍처의 또 다른 규칙은 모든 게임 플레이 엔티티가 elapsedTime과 관련하여 동작하도록하는 것입니다. 그런 식으로 게임 플레이 속도는 게임이 어떤 장치에서 실행 되더라도 항상 동일합니다. 모든 게임에서 초를 십진수로 사용하므로 모든 모션이 초당 미터로 표시됩니다. 그런 식으로 실제 물리 방정식을 연결할 수 있으므로 항상 일을 처리하려고하는 미친 숫자를 쫓지 않습니다.

이 경우 일시 중지를 사용하면 게임이 일시 중지 상태 일 때 경과 된 초를 0으로 설정할 수 있습니다. 이것은 해킹입니다! 이는 게임 클래스와 같은 관리자 클래스를 사용할 때 항상 상태를 사용하는 것이 가장 좋은 아이디어라는 것을 증명합니다.

상태 간 전환을 담당하는 GameState 클래스를 만들 수도 있습니다. 이것은 사운드를 재생하고 화면 상단에서 아래로 이동하는 메뉴와 같은 애니메이션을 시작하는 데 유용 할 것입니다. 이번에는 게임이 PAUSE 나 PLAY에 있지 않습니다. 생각할 거리.

TOMBSTONE 및 REVIVE 전환 상태가있는 모바일 게임을 사용하면 장치가 다른 응용 프로그램을 처리하는 동안 임시로 게임을 저장소에 캐싱하는 데 적합합니다.