Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5456 in orxonox.OLD for trunk/src/world_entities/weapons/laser.cc


Ignore:
Timestamp:
Oct 30, 2005, 12:54:23 AM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: added Lasers and Rockets Class as TestBullet is not the best Name

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/weapons/laser.cc

    r5451 r5456  
    1616#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WEAPON
    1717
    18 #include "test_bullet.h"
     18#include "laser.h"
    1919
    2020#include "fast_factory.h"
     
    3131using namespace std;
    3232
    33 CREATE_FAST_FACTORY_STATIC(TestBullet, CL_TEST_BULLET);
     33CREATE_FAST_FACTORY_STATIC(Laser, CL_LASER);
    3434
    3535/**
    3636 *  standard constructor
    3737*/
    38 TestBullet::TestBullet () : Projectile()
     38Laser::Laser () : Projectile()
    3939{
    40   this->setClassID(CL_TEST_BULLET, "TestBullet");
     40  this->setClassID(CL_TEST_BULLET, "Laser");
    4141
    4242  float modelSize = .3;
    43   this->loadModelWithScale("models/projectiles/orx-rocket.obj", .3);
     43  this->loadModelWithScale("models/projectiles/lasers.obj", .3);
    4444
    4545  this->energyMin = 1;
     
    5151  this->emitter->setParent(this);
    5252  this->emitter->setSpread(M_PI, M_PI);
     53  this->emitter->setEmissionRate(30.0);
     54  this->emitter->setEmissionVelocity(50.0);
    5355}
    5456
     
    5759 *  standard deconstructor
    5860*/
    59 TestBullet::~TestBullet ()
     61Laser::~Laser ()
    6062{
    6163  // delete this->emitter;
    6264
    6365  /* this is normaly done by World.cc by deleting the ParticleEngine */
    64   if (TestBullet::trailParticles != NULL && ClassList::getList(CL_TEST_BULLET)->getSize() <= 1)
     66  if (Laser::explosionParticles != NULL && ClassList::getList(CL_TEST_BULLET)->getSize() <= 1)
    6567  {
    66     if (ClassList::exists(TestBullet::trailParticles, CL_PARTICLE_SYSTEM))
    67       delete TestBullet::trailParticles;
    68     TestBullet::trailParticles = NULL;
    69   }
    70   if (TestBullet::explosionParticles != NULL && ClassList::getList(CL_TEST_BULLET)->getSize() <= 1)
    71   {
    72     if (ClassList::exists(TestBullet::explosionParticles, CL_PARTICLE_SYSTEM))
    73       delete TestBullet::explosionParticles;
    74     TestBullet::explosionParticles = NULL;
     68    if (ClassList::exists(Laser::explosionParticles, CL_PARTICLE_SYSTEM))
     69      delete Laser::explosionParticles;
     70    Laser::explosionParticles = NULL;
    7571  }
    7672
    7773}
    7874
    79 ParticleSystem* TestBullet::trailParticles = NULL;
    80 ParticleSystem* TestBullet::explosionParticles = NULL;
     75ParticleSystem* Laser::explosionParticles = NULL;
    8176
    82 void TestBullet::activate()
     77void Laser::activate()
    8378{
    8479  State::getWorldEntityList()->add(this);
    85   if (unlikely(TestBullet::trailParticles == NULL))
     80  if (unlikely(Laser::explosionParticles == NULL))
    8681  {
    87     TestBullet::trailParticles = new ParticleSystem(1000, PARTICLE_SPRITE);
    88     TestBullet::trailParticles->setName("TestBulletTrailParticles");
    89     TestBullet::trailParticles->setLifeSpan(.5, .3);
    90     TestBullet::trailParticles->setRadius(0.0, .5);
    91     TestBullet::trailParticles->setRadius(0.5, 2.0);
    92     TestBullet::trailParticles->setRadius(1.0, 5.0);
    93     TestBullet::trailParticles->setColor(0.0, 1,0,0,.7);
    94     TestBullet::trailParticles->setColor(0.5, .8,.8,0,.5);
    95     TestBullet::trailParticles->setColor(1.0, .7,.7,.7,.0);
     82    Laser::explosionParticles = new ParticleSystem(1000, PARTICLE_SPRITE);
     83    Laser::explosionParticles->setName("LaserExplosionParticles");
     84    Laser::explosionParticles->setLifeSpan(.5, .3);
     85    Laser::explosionParticles->setRadius(0.0, 10);
     86    Laser::explosionParticles->setRadius(.5, 20.0);
     87    Laser::explosionParticles->setRadius(1.0, 3.0);
     88    Laser::explosionParticles->setColor(0.0, 0,1,0,.9);
     89    Laser::explosionParticles->setColor(0.5, .8,.8,0,.5);
     90    Laser::explosionParticles->setColor(1.0, 1,1,1,.0);
    9691  }
    97   if (unlikely(TestBullet::explosionParticles == NULL))
    98   {
    99     TestBullet::explosionParticles = new ParticleSystem(1000, PARTICLE_SPRITE);
    100     TestBullet::explosionParticles->setName("TestBulletExplosionParticles");
    101     TestBullet::explosionParticles->setLifeSpan(.5, .3);
    102     TestBullet::explosionParticles->setRadius(0.0, 10);
    103     TestBullet::explosionParticles->setRadius(.5, 20.0);
    104     TestBullet::explosionParticles->setRadius(1.0, 3.0);
    105     TestBullet::explosionParticles->setColor(0.0, 0,1,0,.9);
    106     TestBullet::explosionParticles->setColor(0.5, .8,.8,0,.5);
    107     TestBullet::explosionParticles->setColor(1.0, 1,1,1,.0);
    108   }
    109 
    110   ParticleEngine::getInstance()->addConnection(this->emitter, TestBullet::trailParticles);
    111 
    112   this->emitter->setEmissionRate(20.0);
    113   this->emitter->setEmissionVelocity(3.0);
    11492}
    11593
    11694
    117 void TestBullet::deactivate()
     95void Laser::deactivate()
    11896{
    11997  ParticleEngine::getInstance()->breakConnections(this->emitter);
     
    122100//  GarbageCollector::getInstance()->collect(this);
    123101  State::getWorldEntityList()->remove(this);
    124   TestBullet::fastFactory->kill(this);
     102  Laser::fastFactory->kill(this);
    125103}
    126104
    127105
    128 void TestBullet::collidesWith(WorldEntity* entity, const Vector& location)
     106void Laser::collidesWith(WorldEntity* entity, const Vector& location)
    129107{
    130108  if (this->hitEntity != entity && entity->isA(CL_NPC))
     
    137115 * @param time since last tick
    138116*/
    139 void TestBullet::tick (float time)
     117void Laser::tick (float time)
    140118{
    141119  //Vector v = *this->flightDirection * ( this->speed * time * 1000 + 0.1);
     
    157135 *  the function gets called, when the projectile is destroyed
    158136*/
    159 void TestBullet::destroy ()
     137void Laser::destroy ()
    160138{
    161   PRINTF(5)("DESTROY TestBullet\n");
     139  PRINTF(5)("DESTROY Laser\n");
    162140  this->lifeCycle = .95; //!< @todo calculate this usefully.
    163   ParticleEngine::getInstance()->breakConnection(this->emitter, TestBullet::trailParticles);
    164   ParticleEngine::getInstance()->addConnection(this->emitter, TestBullet::explosionParticles);
    165 
    166   this->emitter->setEmissionRate(30.0);
    167   this->emitter->setEmissionVelocity(50.0);
    168 //  this->deactivate();
     141  ParticleEngine::getInstance()->addConnection(this->emitter, Laser::explosionParticles);
    169142
    170143}
    171144
    172145
    173 void TestBullet::draw ()
     146void Laser::draw ()
    174147{
    175148  glMatrixMode(GL_MODELVIEW);
Note: See TracChangeset for help on using the changeset viewer.