Ejemplo n.º 1
0
    void Test::ExplosionDemo(float dt)
    {
      timeAccumulator += dt;
      if (timeAccumulator > 1.f / 60.f)
      {
        ExplosionSpawn(50);
        timeAccumulator -= 1.f / 60.f;
      }

      EntityVec deadParticles;

      for (auto &entity : _entities)
      {
        TransformPtr transform = entity->GET_COMPONENT(Transform);
        ParticlePtr particle = entity->GET_COMPONENT(Particle);

        particle->lifetime -= dt;

        if (particle->lifetime <= 0.f)
        {
          deadParticles.push_back(entity);
          continue;
        }

        transform->position += particle->velocity * (rand() % 500 * dt);
        if (particle->lifetime <= 1.5f)
          transform->scale -= dt / 2.f;// *0.5f;
      }
      for (auto &it : deadParticles)
        ENGINE->GetActiveSpace()->RemoveEntity(it);

    }
Ejemplo n.º 2
0
 static EntityKeySet entity_keys (const mesh::BulkData &bulk_data, const EntityVec &entities)
 {
   EntityKeySet tmp_keys;
   for (EntityVec::const_iterator e=entities.begin(); e!=entities.end(); ++e) {
     const mesh::EntityKey k = bulk_data.entity_key(*e);
     tmp_keys.insert(k);
   }
   return tmp_keys;
 }
Ejemplo n.º 3
0
//-------------------------------------------------------------------------------------------------
void sdMap::Cull(const NiCamera& kCamera, EntityVec& kEntityVec)
{
	EntityVecItr itr = m_kStaticObjectVec.begin();
	EntityVecItr itr_end = m_kStaticObjectVec.end();
	for (; itr != itr_end; ++itr)
		kEntityVec.push_back(*itr);
}