JHB의 프로그래밍 삽질기

[android/cocos2d-x] onBackPressed()의 구현 본문

PROGRAMMING/Android/Java

[android/cocos2d-x] onBackPressed()의 구현

roter 2012.07.18 22:20

cocos2d-x 프로젝트를 안드로이드로 올렸을 때 백버튼을 구현하려고 onBackPressed()를 오버라이드 해봤는데 먹히질 않더라!!

왜인지는 모르겠음..

 

여튼..

cocos2d-x내에서 CCLayer의 keyBackClicked()를 오버라이드 해서 하라던데.. 이건 잘 모르겠고..

어짜피 BackButton 써봤자 cocos2d-x로 만든 프로젝트에서는 게임 종료하기 위해 쓰는 것 말고는 잘 안쓸 것 같기에 그냥 Android 내에서 구현하였다.

 

소스는 다음과 같다.

@Override
 public boolean dispatchKeyEvent(KeyEvent event) {

  if(event.getKeyCode()==KeyEvent.KEYCODE_BACK) {
   finish();
   return true;
  }
  else {
   return super.dispatchKeyEvent(event);
  }
 }

 

 위처럼 dispatchKeyEvent를 override하여 해주면 된다.

 

----------------------------------------------------------------------------

12년 7월 23일 내용 추가

finish();로 하면 cocos2d의 render가 돌아가는 activity가 꺼지긴 하는데, 다시 실행해주면 이전에 했던 부분부터 이어서 된다.

따라서 finish();보다는 System.exit(0); 을 쓰는게 나은 것 같다.

실제로 저렇게 하지 cocos2d-x의 renderer부분만 꺼졌다.

저작자 표시 비영리 변경 금지
신고
0 Comments
댓글쓰기 폼