【分享】分享一个自动释放的action

自动释放的一个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);
		}
	}

};

本来想传附件的,但是附件上传貌似打不开。需要的朋友自己保存下。