自动释放的一个action,会在延迟一段时候后release ,
代码如下:
头文件
#pragma once
#include "cocos2d.h"
USING_NS_CC;
namespace KimiXin{
class KSReleaseAction : public CCActionInterval
{
public:
KSReleaseAction(void);
~KSReleaseAction(void);
public:
static KSReleaseAction * create(bool clearup,float delay);
static KSReleaseAction * create(bool clearup);
virtual void update(float time);
virtual void step(float dt);
protected:
bool m_clearUp;
};
};
cpp
#include "KXReleaseAction.h"
namespace KimiXin{
KSReleaseAction::KSReleaseAction(void):m_clearUp(true)
{
}
KSReleaseAction::~KSReleaseAction(void)
{
}
KSReleaseAction * KSReleaseAction::create(bool clearup, float delay )
{
KSReleaseAction* act = new KSReleaseAction;
if ( act )
{
act->autorelease();
act->m_clearUp = clearup;
act->setDuration(delay);
}
return act;
}
KSReleaseAction * KSReleaseAction::create(bool clearup)
{
return create(clearup,0);
}
void KSReleaseAction::step( float dt )
{
if ( m_fDuration == 0 )
{
this->update(1);
}
else
{
CCActionInterval::step(dt);
}
}
void KSReleaseAction::update( float time )
{
if ( time == 1)
{
m_pTarget->removeFromParentAndCleanup(m_clearUp);
}
}
};
本来想传附件的,但是附件上传貌似打不开。需要的朋友自己保存下。