Пример #1
0
void b2World::DrawParticleSystem(const b2ParticleSystem& system)
{
	int32 particleCount = system.GetParticleCount();
	if (particleCount)
	{
		float32 radius = system.GetRadius();
		const b2Vec2* positionBuffer = system.GetPositionBuffer();
		if (system.m_colorBuffer.data)
		{
			const b2ParticleColor* colorBuffer = system.GetColorBuffer();
			m_debugDraw->DrawParticles(positionBuffer, radius, colorBuffer, particleCount);
		}
		else
		{
			m_debugDraw->DrawParticles(positionBuffer, radius, NULL, particleCount);
		}
	}
}
Пример #2
0
// Create the world, ground body and the particle system.
void BodyContactTests::SetUp()
{
	// Define the gravity vector.
	const b2Vec2 gravity(0.0f, -10.0f);
	// Construct a world object, which will simulate the contacts.
	m_world = new b2World(gravity);

	// Define the ground body.
	b2BodyDef groundBodyDef;
	groundBodyDef.position.Set(0.0f, 0.0f);

	// Call the body factory which allocates memory for the ground body
	// from a pool and creates the ground box shape (also from a pool).
	// The body is also added to the world.
	m_groundBody = m_world->CreateBody(&groundBodyDef);

	// Create the particle system.
	const b2ParticleSystemDef particleSystemDef;
	m_particleSystem = m_world->CreateParticleSystem(&particleSystemDef);
	m_particleDiameter = m_particleSystem->GetRadius() * 2.0f;
}