コード例 #1
0
ファイル: splash.cpp プロジェクト: Taikatou/Dirty-bird
Splash* SplashManager::Create(float x, float y, float scale)
{
	for (std::list<Splash*>::iterator it = Splashes.begin(); it != Splashes.end(); ++it)
	{
		// Found a free explosion so re-use it
		if (!(*it)->isInUse())
		{
			(*it)->m_X = x;
			(*it)->m_Y = y;
			(*it)->m_IsVisible = true;
			(*it)->setUsed(true);
			(*it)->SetAnimDuration(SPLASH_ANIM_DURATION);
			(*it)->SetAnimRepeat(1);
			return *it;
		}
	}

	// No explosion found so allocate a new one
	Game* game = (Game*)g_pSceneManager->Find("game");
	Splash* splash = new Splash();
	game->AddChild(splash);
	splash->m_X = x;
	splash->m_Y = y;
	splash->m_Angle = 270.0f;
	splash->m_IsVisible = true;
	splash->setUsed(true);
	splash->SetAnimDuration(SPLASH_ANIM_DURATION);
	splash->SetAnimRepeat(1);
	splash->m_AnchorX = 0.5f;
	splash->m_AnchorY = 0.5f;
	splash->m_ScaleX = (scale * 3) / splash->GetImage()->GetWidth();
	splash->m_ScaleY = splash->m_ScaleX;
	return splash;
}