2013-05-22 4 views
3

cocos2d-x으로 게임을 작성하려고하는데 on_game_start, on_game_end 등의 맞춤 이벤트를 정의하려고합니다. 포럼 검색 및 인터넷 검색을 너무 많이하는 것으로 보입니다. 이것에 대해 언급합니다. 그래서, 아무도 나에게 이것에 대한 조언을 해 주시겠습니까? 감사.cocos2dx의 맞춤 이벤트

+0

: 여기

내가 사용하는 방법 코드? –

+2

이벤트로는 터치 이벤트, 키 이벤트 등과 같은 것들을 의미합니다. – David

답변

1

cocos2d-x에는 전역 이벤트와 같은 것이 없습니다. 그래서 대안으로 CCNotificationCenter를 사용하려고했습니다. 당신이 "이벤트"무슨 소리

//Send event. 
CCNotificationCenter::sharedNotificationCenter()->postNotification(EMEMY_KILLED_MSG, (CCObject*)data); 

//Listen event. 
void GameManager::initListener() 
{ 
    CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(GameManager::onEnemyKilled), CLICK_TEST_MSG, NULL); 
} 

//Handling event 
void GameManager::onEnemyKilled(CCObject* obj) 
{ 
    CCMessageBox("onEnemyKilled", "Title"); 

    //Remove event listener. 
    CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, EMEMY_KILLED_MSG); 
} 
0

"사용자 지정 이벤트"는 "게임 장면에 입장/퇴장 할 때 함수 호출"과 같다고 생각합니다. 따라서 void on_game_start()과 같은 초기화 함수를 작성하여 엔진에 의해 자동으로 호출되는 장면의 함수 onEnterTransitionDidFinish()에 추가 할 수 있습니다. CCScene에서 상속받은 자신 만의 장면 클래스를 구현해야하는 경우, 하위 클래스에이 가상 함수를 구현하는 것을 잊지 마십시오.

+0

안녕하세요, Rect 님, 답장을 보내 주셔서 감사합니다. on_game_start, on_enemy_killed 등과 같은 몇 가지 이벤트를 원합니다. 키 또는 터치 이벤트 같은 장면 또는 노드 기반 콜백이 아닌 전역으로 배포 될 수 있습니다. – David

+0

그건 "콜백"이 아니에요. 터치 이벤트의 소스 코드를 읽으면 Obj-C에서 "델리게이트"처럼 취급 될 수있는 클래스에 의해 구현 된 것을 볼 수 있습니다. 당신은 자신의 것을 구현하려고 할 수 있습니다. –