키보드 이벤트
데스크탑환경의 게임에서는 보통 키보드로 게임을 컨트롤을 합니다.
이럴때 키보드 이벤트를 사용해야 합니다.
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>
'Cocos2d-x v3.17 > 고급 기능' 카테고리의 다른 글
[Cocos2d-x 고급기능]3D 지원 및 3D Sprite (0) | 2018.08.11 |
---|---|
[Cocos2d-x 고급기능]마우스 이벤트,커스텀 이벤트 (0) | 2018.08.11 |
[Cocos2d-x 고급기능]이벤트 발생 매커니즘 우선순위 및 터치이벤트 (0) | 2018.08.11 |
[Cocos2d-x 고급기능]이벤트 발생 매커니즘 소개 및 Listener (0) | 2018.08.11 |
[Cocos2d-x 고급기능]ParallaxNode 스크롤링 (0) | 2018.08.11 |