Animation 我的动画不在cocos2d中运行
在我的游戏中,我有一个火箭类型,我想在上面运行一系列动作。首先,它必须运行爆炸动画,然后将自己从游戏中移除。为此,我使用了以下代码,但它不起作用,并导致运行时错误 火箭级别:Animation 我的动画不在cocos2d中运行,animation,cocos2d-x,Animation,Cocos2d X,在我的游戏中,我有一个火箭类型,我想在上面运行一系列动作。首先,它必须运行爆炸动画,然后将自己从游戏中移除。为此,我使用了以下代码,但它不起作用,并导致运行时错误 火箭级别: void Rocket::movingRocket(float dt) { // some codes ... if(rocketIsCollideWithEnemy()) // run only one time { this->stopAllActions();
void Rocket::movingRocket(float dt)
{
// some codes ...
if(rocketIsCollideWithEnemy()) // run only one time
{
this->stopAllActions();
CCAnimation *animation = CCAnimation::create();
for (int i = 0; i < EXPLOSION_FRAME_NUMBER; i++)
{
CCString *str = CCString::createWithFormat("/explosion-%d.png", i);
animation->addSpriteFrameWithFileName(str->getCString());
}
animation->setDelayPerUnit(0.06f);
CCAnimate *animate = CCAnimate::create(animation);
CCCallFuncN* remove_rocket = CCCallFuncN::create(this, callfuncN_selector(Rocket::removeRocket));
this->runAction(CCSequence::create(animate,remove_rocket, NULL));
this->unschedule(schedule_selector(Rocket::movingRocket));
}
}
当我运行上述程序时,以下代码第4行Cocos2d部分出现错误:
void CCAnimate::update(float t)
{
// some codes...
if( splitTime <= t )
{
CCAnimationFrame* frame = (CCAnimationFrame*)frames->objectAtIndex(i);
frameToDisplay = frame->getSpriteFrame();
((CCSprite*)m_pTarget)->setDisplayFrame(frameToDisplay);
CCDictionary* dict = frame->getUserInfo();
if( dict )
{
//TODO: [[NSNotificationCenter defaultCenter] postNotificationName:CCAnimationFrameDisplayedNotification object:target_ userInfo:dict];
}
m_nNextFrame = i+1;
}
// some codes...
}
什么可能导致我的问题?什么错误?此时i的值是多少?我是如何初始化的,也许一点也没有?void CCAnimate::updatefloat{…}的函数不是我开发的,它是用于cocos2d引擎的,在这个文件和行中发生了一个错误,并表示:myClass.exe中0x752DCB49处的未处理异常:0xC0000005:访问冲突执行位置0x00000000。i的值是0
void CCAnimate::update(float t)
{
// some codes...
if( splitTime <= t )
{
CCAnimationFrame* frame = (CCAnimationFrame*)frames->objectAtIndex(i);
frameToDisplay = frame->getSpriteFrame();
((CCSprite*)m_pTarget)->setDisplayFrame(frameToDisplay);
CCDictionary* dict = frame->getUserInfo();
if( dict )
{
//TODO: [[NSNotificationCenter defaultCenter] postNotificationName:CCAnimationFrameDisplayedNotification object:target_ userInfo:dict];
}
m_nNextFrame = i+1;
}
// some codes...
}