示例#1
0
ETHParticleDrawer::ETHParticleDrawer(
	const ETHResourceProviderPtr& provider,
	ETHGraphicResourceManagerPtr graphicResources,
	const str_type::string& resourceDirectory,
	const str_type::string& fileName,
	const Vector2& pos,
	const float angle,
	const float scale) :
	m_pos(pos),
	m_angle(angle),
	m_provider(provider),
	m_fileName(fileName)
{
	ETHParticleSystem particleSystem;
	particleSystem.ReadFromFile(resourceDirectory + ETHDirectories::GetEffectsDirectory() + fileName, provider->GetFileManager());
	const Vector2 startPos(m_pos + provider->GetVideo()->GetCameraPos());
	m_particleManager = ETHParticleManagerPtr(
		new ETHParticleManager(provider, particleSystem, startPos, Vector3(startPos, 0.0f), angle, 1.0f, scale));
}
示例#2
0
ETHParticleManager::ETHParticleManager(
	ETHResourceProviderPtr provider,
	const str_type::string& file,
	const Vector2& v2Pos,
	const Vector3& v3Pos,
	const float angle,
	const float entityVolume) :
	m_provider(provider)
{
	ETHParticleSystem partSystem;
	if (partSystem.ReadFromFile(file, m_provider->GetFileManager()))
	{
		CreateParticleSystem(partSystem, v2Pos, v3Pos, angle, entityVolume, 1.0f);
	}
	else
	{
		ETH_STREAM_DECL(ss) << GS_L("ETHParticleManager: file not found: ") << file;
		m_provider->Log(ss.str(), Platform::FileLogger::ERROR);
	}
}