챕터1 에서 우리는 Player 캐릭터를 Scene 에 추가하는 작업을 했었다.
하지만 히어로는 홀로 있다. 우리는 적들을 추가할 생각이다.
적들을 이동하는 함수
void addTarget()와
이동이 끝난 적들을 사라지게 하는 함수
void spriteMoveFinished(CCNode * sender);를 추가할 생각이다.
void addTarget()과 void spriteMoveFinished(CCNode * sender); HelloWorldh.h 에 추가하고
class HelloWorld : public cocos2d::CCLayerColor
{
public:
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::CCScene* scene();
// a selector callback
void menuCloseCallback(CCObject* pSender);
// implement the "static node()" method manually
CREATE_FUNC(HelloWorld);
//addTarget 함수 추가(적 생성)
void addTarget();
//스프라이트 제거
void spriteMoveFinished(CCNode * sender);
};
아래 소스를 HelloWorldScene.cpp에 추가하자(그리고 using namespace cocos2d; 를 맨 위에 추가하는 건 잊지말자.) ->USING_NS_CC;
addTarget 추가
SpriteMoveFinished 추가
팁
1. rand 함수는 c std 함수를 사용한다.
2. YES , NO 는 true , false 이다
3. callback 함수를 사용할수 있다. (cocos2d에서는 selector 에 대응됨)
cocos2dx\include\selector_protocol.h -> 이안에 정의 되어있음
-
schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)
-
callfunc_selector(_SELECTOR) (SEL_CallFunc)(&_SELECTOR)
-
callfuncN_selector(_SELECTOR) (SEL_CallFuncN)(&_SELECTOR)
-
callfuncND_selector(_SELECTOR) (SEL_CallFuncND)(&_SELECTOR)
-
callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)
-
menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
-
event_selector(_SELECTOR) (SEL_EventHandler)(&_SELECTOR)
-
compare_selector(_SELECTOR) (SEL_Compare)(&_SELECTOR)
이것들은 callbck 함수 정의에 의해서 사용할수 있다. 예를들면
CCTimer::initWithTarget 은 두번째 인자가 SEL_SCHEDULE 타입이다.
bool initWithTarget(CCObject *pTarget, SEL_SCHEDULE pfnSelector);
우리는 schedule_selector(_SELECTOR)을사용할수있다.
우리는 적들을 생성하는 함수를 1초에 한번 호출하도록 설정할수 있다.
bool HelloWorld::init()의 맨 아래에 (return true; 바로 위) 아래 소스를 추가하자
//gameLogic 함수를 매초마다 실행
this->schedule(schedule_selector(HelloWorld::gameLogic),1.0f);
아래에 소스도 추가하자
HellWorldScene.h 에는 void gameLogic(float dt);을 추가하고
HellWorldScene.cpp에는 아래 소스를 추가하자
void HelloWorld::gameLogic(float dt)
{
this->addTarget();
}
'잡다한것들전부 > Tutorial' 카테고리의 다른 글
| 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법 (0) | 2013.09.22 |
|---|---|
| 챕터 4 - 충돌 체크하는 법 (0) | 2013.09.22 |
| 챕터 3 - 표창을 발사하는 방법 (0) | 2013.09.21 |
| 챕터 2 - 스프라이트를 움직이는 방법 (0) | 2013.09.21 |
| 챕터 1 - 스프라이트를 추가하는 방법 (0) | 2013.09.21 |
| Tutorial - cocos2d-x 로 간단한 게임 만들기 (0) | 2013.09.21 |


