티스토리 뷰

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부분만 꺼졌다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함