본문 바로가기

Dev/Android

[Cocos2d for Android] Cocos2d Touch, Key Event (터치 이벤트, 키 이벤트) 받기

StudyCocos2d_1.zip





Android Cocos2d 터치 이벤트와 키 이벤트 받는 방법은 의외로 쉽게할 수 있다.


CCLayer에서 다음과같이 사용하는 방법은 생각보다 간단하다.


Touch

먼저 터치 사용 여부를 설정해준다.

this.setIsTouchEnabled(true);


// 화면 눌림

public boolean ccTouchesBegan(MotionEvent event) {

return CCTouchDispatcher.kEventHandled; // TODO Auto-generated method

// stub

}



// 누르고있을 경우

public boolean ccTouchesMoved(MotionEvent event) {

return CCTouchDispatcher.kEventIgnored; // TODO Auto-generated method

// stub

}


// 화면에 손이 때어졌을 때

public boolean ccTouchesEnded(MotionEvent event) {

return CCTouchDispatcher.kEventIgnored; // TODO Auto-generated method

// stub

}


public boolean ccTouchesCancelled(MotionEvent event) {

return CCTouchDispatcher.kEventIgnored; // TODO Auto-generated method

// stub

}




KeyEvent

먼저, cocos2d를 실행한 메인 Activity 에서 다음과 같은 메소드를 설정해야한다.

그러한 사유는 다음에 자세히 작성하겠다..


@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

return CCDirector.sharedDirector().onKeyDown(event);

}


@Override

public boolean dispatchKeyEvent(KeyEvent event) {

return super.dispatchKeyEvent(event);

}


CCLayer

this.setIsKeyEnabled(true);


// 키 눌렸을때

public boolean ccKeyDown(int keyCode, KeyEvent event) {

return CCKeyDispatcher.kEventHandled;

}


// 키 누른게 때졌을때

public boolean ccKeyUp(int keyCode, KeyEvent event) {

return CCKeyDispatcher.kEventHandled;

}



아래 예제 소스내용이다.


실행 화면 : 터치한 지점으로 캐릭터가 이동 및 표정이 봐낀다.






1. StudyCocos2d_1Activity



2. GameScene


*클래스 명은 Scene이라 했지만.. 레이어로만 되어있다.



'Dev > Android' 카테고리의 다른 글

Support package  (0) 2012.05.01
Android 스플래쉬(Splash) / 로딩화면 만들기  (2) 2011.11.17
Java / Android 에서 JSON 사용하기  (0) 2011.11.09