[펌][Cocos2d-x] 3.0 Alpha1 – Hello World.h

http://singleton.tistory.com/348

 

[Cocos2d-x] 3.0 Alpha1 – Hello World.h 
프로젝트/Cocos2d-x | 2013/12/07 20:09

  
※ 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);

};