- 자식 Sprite를 포함하는 사용자 정의 CCSprite를 정의
- 멤버함수 Showchild를 통해 자식 Sprite의 상태(Position, Visible 등)를 제어
CustomSprite.h
#ifndef __Fortune__CustomSprite__
#define __Fortune__CustomSprite__
#include "Common.h"
class CustomSprite:public CCSprite
{
public:
CustomSprite();
~CustomSprite();
static CustomSprite* create(CCSpriteBatchNode* batchNode, int Type);
void showBag();
private:
static const char* fileName(int Type);
};
#endif /* defined(__Fortune__CustomSprite__) */
CustomSprite.cpp
#include "CustomSprite.h"
CustomSprite::CustomSprite(){}
CustomSprite::~CustomSprite(){}
CustomSprite* CustomSprite::create(CCSpriteBatchNode* batchNode, int Type)
{
CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(fileName(Type));
CustomSprite* custom = new CustomSprite();
if (custom && custom->initWithSpriteFrame(frame))
{
batchNode->addChild(custom, 1);
///////////////////////////////////////////////////////////////
// 자식 스프라이트 추가
///////////////////////////////////////////////////////////////
CCSprite* child = CCSprite::createWithSpriteFrameName("child.png");
child->setTag(1);
child->setPosition(ccp(142.0f, 75.0f));
custom->addChild(child, -1); // 자식 스프라이트를 부모 스프라이트의 아래 위치시킴
child->setVisible(false); // 자식 스프라이트를 화면에서 숨김
return custom;
}
CC_SAFE_DELETE(custom);
return NULL;
}
#pragma mark -
#pragma mark 자식 스프라이트의 visible상태 설정
void CustomSprite::showchild()
{
this->getChildByTag(1)->setVisible(true);
}
#pragma mark -
#pragma mark 타입을 int로 받아서 char*형 파일 이름을 리턴
const char* CustomSprite::fileName(int Type)
{
std::string name = "custom_";
std::stringstream type;
type << Type;
name += type.str();
name += ".png";
return name.c_str();
}
댓글 없음:
댓글 쓰기