之前遇到过这样的问题,使用CCBlink 精灵执行完动作之后,消失不见了,百度谷歌了一番,得知有可能出现精灵刚好到透明的那部分,所以最好在精灵执行完动作之后,让精灵setvisible显示出来。参考代码如下:
void Hero::afterHurt()//英雄闪烁之后有可能不见了,这里把它重新显示出来
{
this->setVisible(true);
wudi = false;
}
void Hero::hurt()
{
hp--;
if (hp >= 0)
{
//使用CCBlink之后必须等精灵执行完之后,强制设置精灵的可视值为true才能显示,否则有可能出现空白
CCActionInterval* action = CCBlink::create(1.0f, 3);
CCFiniteTimeAction* action1 = CCSequence::create(action,CCCallFunc::create(this,
callfunc_selector(Hero::afterHurt)),NULL);
this->runAction(action1);
}
}
就这样,做个备忘。