Post

CallFunc::create 함수에서 CC_CALLBACK_0 매크로 인자로 원하는 인수 넘기기

CallFunc::create에 콜백함수를 등록하면서 내가 원하는 인자를 전달하고 싶었는데 자꾸 에러가 났다.

	spr->runAction(Sequence::create(
		DelayTime::create(0.1),
		CallFunc::create(CC_CALLBACK_0(HelloWorld::test, this)), NULL));

에러는 인수가 맞지 않다는 것ㅠㅠ

확인해보니 CallFunc::create 함수 선언이

CallFunc * CallFunc::create(const std::function<void()> &func)

const std::function<void()>, 인수가 없는 void return 함수만 받기 때문에 에러가 나는거라고 파악했다.

그래서 검색해보니까

#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)

##__VA_ARGS__ 부분에 내가 함수로 넘기고 싶은 값을 넘기라고 ㅇㅇ

한참헤맸네ㅠㅠㅠ

코코스 어려워ㅠㅠㅠㅠㅠㅠㅠㅠ

그리고 내 미천한 c++ 실력으로는 독해가 안된다...c++ 11 공부한 적 없어서 힘들다....ㅠㅠ

게다가 자잘한 버그가 벌써부터 눈에 띈다ㅠㅠ

하 어떻게 해야하는거?? 코코스... 정말 가시밭길이구나...

 

▲ top