类声明
class Base:public CCNode
{
public:
BuildBase(void);
~BuildBase(void);
CREATE_FUNC(Base);
virtual bool init();
public:
//设置数据
void SetBuildData(char *Iamge, char *Name, int &Hp);
//按键回调函数
void CallBack(CCObject *pSender);
public:
string Build_Name;
int BuildHp, MaxHp;
};
类具体调用
void Base::SetBuildData(char *Iamge, char *Name, int &Hp){
Build = CCSprite::createWithSpriteFrameName(Iamge);
Build->setRotation(15);//旋转角度
CCMenuItem *pItem = CCMenuItemSprite::create(Build, Build, Build, menu_selector(Base::CallBack));
CCMenu *pMenu = CCMenu::create(pItem, NULL);
pMenu->setPosition(ccp(0, 0));
this->addChild(pMenu);
BuildHp = MaxHp = Hp;
Build_Name = Name;
}
void BuildBase::CallBack(CCObject *pSender){ //pSender是所点击的图片 及 item里的图片
CCSprite* pbuild = (CCSprite *) pSender;
//获取父类CCMenu, 和CCMenu的父类
Base *pbu = (Base *)pbuild->getParent()->getParent();
CCLog("=============%d, now :%d, is who %s",pbu->MaxHp, pbu->BuildHp, pbu->Build_Name.c_str());
}