帧动画缓存

梦想游戏人
目录:
C/C++

吧帧动画存储在内存里面,供使用

以下是Lite2D的实现

#include"AnimationCache.h"


AnimationCache*AnimationCache::getInstance()
{
	static AnimationCache*ins = nullptr;

	if (ins == nullptr)
	{
		ins = new AnimationCache;
	}
	return ins;

}

AnimationCache::AnimationCache()
{


}



void AnimationCache::addAnimation(const std::string &name, Animation*animation)
{
	_map.insert(std::pair<std::string, Animation*>(name, animation));
	animation->retain();
}



void AnimationCache::removeAllAnimations()
{
	for (const auto&ani : _map)
	{
		ani.second->release();

	}

	_map.clear();
}


void AnimationCache::removeAnimation(const std::string &name)
{
	auto iter = _map.find(name);
	if (iter == _map.end())
	{
		return;
	}
	(*iter).second->release();
	_map.erase(iter);

}



Animation*AnimationCache::getAnimation(const std::string&name)
{

	auto iter = _map.find(name);
	if (iter == _map.end())
	{
		return nullptr;
	}
	return (*iter).second;
}
Scroll Up