티스토리 뷰

 

※ python의 create_project로 생성한 샘플 프로젝트에 대한 글입니다.



#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

// cocos2d 코드를 쓰기 위한 인클루드
#include "cocos2d.h"

class HelloWorld : public cocos2d::Layer
{
public:
    // there's no 'id' in cpp, so we recommend returning the class instance pointer
    // cpp에는 'id'가 없으므로 포인터를 리턴하는 것을 추천합니다 (cocos-iphone Object-C를 사용)

    static cocos2d::Scene* createScene();

    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in  cocos2d-iphone

   /*
    * N.B.: CCNode의 init() 메소드를 재정의합니다. init() 메소드를 재정의해줘야 하는 이유는,
    * create() 메소드를 사용해 객체를 생성할 때 init() 메소드를 부르게 구현되어 있기 때문입니다.
    * (이 헤더 아래쪽에 있는 CREATE_FUNC의 선언을 따라가보면 create() 메소드의 구현을 확인할 수 있습니다.)
    * 따라서 HelloWorld::create() 식의 구문을 사용해 객체를 생성하려면, init() 메소드를 구현해서 객체를 초기화할 수 있게 해줘야합니다.
    */

    virtual bool init(); 


    // a selector callback

   /*
    * cocos2d-x에서 CCMenu를 사용하여 메뉴를 만들었을 때, 클릭(터치)에 대한 콜백함수 입니다.
    * CCMenu를 만들고, 그 안에 메뉴 아이템으로 CCMenuItemImage, CCMenuItemSprite, CCMenuItemToggle 등이 추가되는데
    * 메뉴를 터치하면 그 MenuItem이 인자값으로 넘어오게 됩니다.
    * 어차피 모두가 CCObject의 Derived Class이므로, 형변환 후 처리하시면 됩니다.(필요하다면)
    */

    void menuCloseCallback(Object* pSender);

    // implement the "static create()" method manually
    // HelloWorld::create() 이 가능하게 해준다. 참고로 create()으로 객체를 생성하면 Cocos의autorelease pool에 등록해준다.

    CREATE_FUNC(HelloWorld);

};



TAG
댓글
댓글쓰기 폼