본문 바로가기

Cocos2d-x v3.17/고급 기능

[Cocos2d-x 고급기능]키보드 이벤트,가속도계 이벤트

반응형

키보드 이벤트 

데스크탑환경의 게임에서는 보통 키보드로 게임을 컨트롤을 합니다.

이럴때 키보드 이벤트를 사용해야 합니다.

Cocos2d-x는 키보드 이벤트를 지원합니다.

바로 전에 포스팅한 터치이벤트처럼 말이죠! 

   

키보드 이벤트 리스너 생성하기: 

C++ 

// creating a keyboard event listener

auto listener = EventListenerKeyboard::create();

listener->onKeyPressed = CC_CALLBACK_2(KeyboardTest::onKeyPressed, this);

listener->onKeyReleased = CC_CALLBACK_2(KeyboardTest::onKeyReleased, this); 

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); 

// Implementation of the keyboard event callback function prototype

void KeyboardTest::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)

{

log("Key with keycode %d pressed", keyCode);

} 

void KeyboardTest::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)

{

log("Key with keycode %d released", keyCode);

} 

위예에서 볼수 있듯이 키보드 이벤트 리스너를 사용할땐 다른 두종류의 이벤트가 발생할수 있습니다.

이벤트마다 발생하는 시기가 따로 있습니다. 

onKeyPressed 키가 눌렸을때 

onKeyReleased 키가 풀렸을때 

   

출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/event_dispatcher/keyboard.html

   

가속도계 이벤트 

오늘날에 모바일기기는 모두 가속도센서가 달려있습니다.

우린 그것을 통해 각방향의 가속도를 구해올수 있습니다. 

게임에서 할수있는것은 생각해보자면 모바일기기를 이동시키면서 작은공의 중심을 설정하여 위치를 정해주고 싶을때 가속도계 센서 이벤트를 사용할수 있습니다. 

   

가속도센서를 사용하고 싶으면 먼저 다음과 같은 설정을 해줘야 합니다. 


C++ 

Device::setAccelerometerEnabled(true); 

   

가속도계 이벤트 리스너 생성하기: 

C++ 

// creating an accelerometer event

auto listener = EventListenerAcceleration::create(CC_CALLBACK_2(

AccelerometerTest::onAcceleration, this)); 

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); 

// Implementation of the accelerometer callback function prototype

void AccelerometerTest::onAcceleration(Acceleration* acc, Event* event)

{

// Processing logic here

} 

   

출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/event_dispatcher/accelerometer.html

   

 



반응형