의 화면 일시 정지 버튼을 만들려면
는 점이다 엔진은 게임을 다시 시작할 때까지 더 많은 touchevents를 처리하지 못합니다 (이제는 메뉴 버튼을 사용합니다). 그래서 그것을 달성 할 수있는 방법이 있습니까?
감사합니다.
의 화면 일시 정지 버튼을 만들려면
는 점이다 엔진은 게임을 다시 시작할 때까지 더 많은 touchevents를 처리하지 못합니다 (이제는 메뉴 버튼을 사용합니다). 그래서 그것을 달성 할 수있는 방법이 있습니까?
감사합니다.
나는 그것이 장면을 생성하고 일시 정지 할 때 onManagedUpdate이 방법을 무시 설정 할 수있는 가장 좋은 방법을 발견
@Override
onManagedUpdate(float pSecondsElapsed){
if(mPaused) super.onManagedUpdate(0);
else super.onManagedUpdate(pSecondsElapsed);
}
이런 식으로 모든 것을 작동 완벽하게, 당신은 게임 레이어에서 그것을 할 수 있고 평소와 같이 메뉴 레이어를 업데이트 할 수 있습니다.
AndEngine의 예제를 보면 AndEngine에서 메뉴 사용법을 보여주는 프로젝트가 있는데, 엔진을 중지하는 것 이외의 다른 메뉴를 구현하는 더 좋은 방법을 찾을 수 있습니다. 행운을 빕니다!
파일에서 "일시 중지됨"부울을 추가 한 다음 버튼을 true로 설정 한 다음 if (!pause) {...}
블록이있는 엔진 업데이터를 사용하여 일시 중지되었을 때 업데이트를 중지합니다. 가장 우아한 솔루션은 아니지만 제 게임에서 근무했고 일시 중지시 성능 문제가 발생하지 않았습니다.
Psedu 코드
@Override
public boolean onKeyDown(final int pKeyCode, final KeyEvent pEvent) {
if (pKeyCode == KeyEvent.KEYCODE_MENU && pEvent.getAction() == KeyEvent.ACTION_DOWN) {
if (this.mEngine.isRunning()) {
gSceneGlobal.setChildScene(this.mGamePauseScene, false, true, true);
this.mEngine.stop();
} else {
gSceneGlobal.clearChildScene();
this.mEngine.start();
}
return true;
} else {
return super.onKeyDown(pKeyCode, pEvent);
}
}
내 클래스를 생성 (MyEngine이 엔진을 확장) 및
@Override
public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) {
if(!isRunning()) {
// add your code for engine.stop();
}
}
을 변경하고 게임 클래스 MyEngine 엔진을 만들;
화면 일시 중지 버튼에서 쉽게 할 수 있습니다. 당신이해야 할 일은 화면의 어느 곳에서나 일시 정지 버튼을 만들고, 그 버튼을 만지면, 원래 일시 정지 버튼 위에 재생 버튼이있는 MenuScene을 보여줍니다. PauseMenu 예제에서 .buildAnimations() 코드를 주석 처리하면 MenuItem에 .setPosition()을 사용할 수 있습니다.
아이디어를 입증하기 위해, 나는 그 가능성을 보여주기위한 간단한 활동을 만들었습니다. 보세요. 직접 시험해보십시오. 링크
: https://github.com/reittes/On-Screen-Pause-Button
goodluck는
그래서 menuscene을 만들 필요가 있다는 것을 의미합니까? 그리고 일시 중지 b를 추가하십시오. 그것에 utton? 게임 내 일시 중지 단추를 원한다. –
메뉴 장면을 구현하고 게임에 단추를 추가 한 다음 해당 단추에 클릭 수신기를 추가하여 장면 사이를 전환합니다. AndEngineExamples에서 MenuExample 프로젝트를 확인하십시오. 메뉴 키를 누르면 메뉴 장면이 첨부됩니다. 이 코드를 버튼의 onClickListener에 복사하면됩니다. 행운을 빕니다! – Egor