cocos2d-x 将继承了sprite的自定义sprite类addchild到layer中的问题
答案:1 悬赏:10 手机版
解决时间 2021-03-17 15:14
- 提问者网友:沉默的哀伤
- 2021-03-16 18:05
cocos2d-x 将继承了sprite的自定义sprite类addchild到layer中的问题
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-03-16 19:00
你的类方法定义的方式很难看,而且也有问题,没有在类方法中调对bool init()方法。
MarioHeroSprite* MarioHeroSprite::createMarioHeroSprite(){
//利用缓存创建显示部分的精灵
MarioHeroSprite* tmp = new MarioHeroSprite();
if(tmp)
{
tmp->autorealse();
tmp->init();
}else{
return NULL;
}
}init方法也写有问题。
bool MarioHeroSprite::init(){
//在这里加一句调用Sprite的的初始化方法
if(cocos2d::Sprite::init() == false)
{
return;
}
moveRightCache = cocos2d::Director::getInstance()->getTextureCache()->addImage("Mario_move_right.png");
this->setTexture(moveRightCache);
this->setTextureRect(cocos2d::Rect(356, 2, 146, 256));
//.....下边是你的代码,
return true;
}因为你没有调用Sprite的初始化方法.
具体的怎么使用一个图片创建精灵,你可以参考一下Sprite::create("filename");这个精灵原来的方法。你这种创建精灵的方法看起来很别扭,也很凌乱。
MarioHeroSprite* MarioHeroSprite::createMarioHeroSprite(){
//利用缓存创建显示部分的精灵
MarioHeroSprite* tmp = new MarioHeroSprite();
if(tmp)
{
tmp->autorealse();
tmp->init();
}else{
return NULL;
}
}init方法也写有问题。
bool MarioHeroSprite::init(){
//在这里加一句调用Sprite的的初始化方法
if(cocos2d::Sprite::init() == false)
{
return;
}
moveRightCache = cocos2d::Director::getInstance()->getTextureCache()->addImage("Mario_move_right.png");
this->setTexture(moveRightCache);
this->setTextureRect(cocos2d::Rect(356, 2, 146, 256));
//.....下边是你的代码,
return true;
}因为你没有调用Sprite的初始化方法.
具体的怎么使用一个图片创建精灵,你可以参考一下Sprite::create("filename");这个精灵原来的方法。你这种创建精灵的方法看起来很别扭,也很凌乱。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯