본문 바로가기

Cocos2d-x v3.17/고급 기능

[Cocos2d-x 고급기능]이벤트 발생 매커니즘 소개 및 Listener

반응형

이벤트 발생 매커니즘 

Cocos2d-x 는 이벤트발생 매커니즘을 통해 이벤트를 처리합니다.

내장된 터치 이벤트,키보드이벤트등을 지원함과 동시에 커스텀 이벤트를 생성하는 방법을 제공합니다.

이것은 우리가 게임개발에 있어 특수한 이벤트 처리방법의 요구를 만족시켜줍니다. 

 

기본 요소

Event Listener : 이벤트를 수신하고 해당 이벤트에 따라 함수를 처리하는걸 책임진다. 

이벤트 발생기 : 이벤트를 발송하는걸 책임진다. 

이벤트 개체 : 이벤트에 대한 메시지를 기록한다.

   

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

   

Listener 

   

다섯종류

EventListenerTouch - 터치 이벤트에 응답한다. 

EventListenerKeyboard - 키보드 이벤트에 응답한다. 

EventListenerAcceleration - 가속도계 이벤트에 응답한다. 

EventListenMouse - 마우스 이벤트에 응답한다. 

EventListenerCustom - 커스텀 이벤트에 응답한다. 

   

이벤트 캐치 

하나의 리스터가 있고 원하는 이벤트를 수신하였을때 이 이벤트는 캐치될것입니다.이벤트가 캐치된다는것은 이벤트의 전달과정에서 당신이 이 이벤트를 사용하였을때 다른 리스너가 캐치하지 못하게 막는것입니다. 

   

이벤트 캐치 설정: 

C++ 

// When "swallow touches" is true, then returning 'true' from the

// onTouchBegan method will "swallow" the touch event, preventing

// other listeners from using it.

listener1->setSwallowTouches(true); 

// you should also return true in onTouchBegan() 

listener1->onTouchBegan = [](Touch* touch, Event* event){

// your code 

return true;

}; 

   

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


반응형