Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10531 in orxonox.OLD for trunk/src/world_entities/npcs/npc.cc


Ignore:
Timestamp:
Jan 31, 2007, 1:27:36 AM (17 years ago)
Author:
bknecht
Message:

explosions and such

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/npcs/npc.cc

    r10512 r10531  
    3737#include "track/track.h"
    3838
     39#include "particles/dot_emitter.h"
     40#include "particles/emitter_node.h"
     41#include "particles/sprite_particles.h"
    3942
    4043#include "weapons/test_gun.h"
     
    6770                        ->addMethod("setAI", Executor1<NPC, lua_State*, bool>(&NPC::setAI))
    6871                        ->addMethod("setVisibility", Executor1<WorldEntity, lua_State*, bool>(&WorldEntity::setVisibility))
     72                        ->addMethod("destroy", Executor0<NPC, lua_State*/*, WorldEntity**/>(&NPC::destroy))
    6973                       );
    7074
     
    243247}
    244248
     249void NPC::destroy( /*WorldEntity* killer*/ )
     250{
     251
     252  PRINTF(5)("NPC destroy\n");
     253
     254  EmitterNode* node  = NULL;
     255  DotEmitter* emitter = NULL;
     256  SpriteParticles*  explosionParticles  = NULL;
     257
     258  explosionParticles = new SpriteParticles(200);
     259  explosionParticles->setName("SpaceShipExplosionParticles");
     260  explosionParticles->setLifeSpan(.2, .3);
     261  explosionParticles->setRadius(0.0, 10.0);
     262  explosionParticles->setRadius(.5, 6.0);
     263  explosionParticles->setRadius(1.0, 3.0);
     264  explosionParticles->setColor(0.0, 1,1,1,.9);
     265  explosionParticles->setColor(0.1,  1,1,0,.9);
     266  explosionParticles->setColor(0.5, .8,.4,0,.5);
     267  explosionParticles->setColor(1.0, .2,.2,.2,.5);
     268
     269
     270  emitter = new DotEmitter( 2000, 70, 360);
     271  //emitter->setSpread( 0, M_2_PI);
     272  emitter->setEmissionRate( 200.0);
     273  //emitter->setEmissionVelocity( 200.0);
     274  //emitter->setSystem( explosionParticles);
     275  //emitter->setAbsCoor( this->getAbsCoor());
     276
     277  node  = new EmitterNode( .1f);
     278  node->setupParticle( emitter, explosionParticles);
     279  node->setAbsDir( this->getAbsDir());
     280  node->setVelocity( this->getVelocity() * .9f);
     281  node->setAbsCoor( this->getAbsCoor());
     282  if( !node->start())
     283    PRINTF(0)("Explosion node not correctly started!");
     284/*
     285  PNode* node          = new PNode();
     286  node->setAbsCoor(this->getAbsCoor());
     287  Explosion* explosion = new Explosion();
     288  explosion->explode( node, Vector(5,5,5));
     289*/
     290/*
     291  if( this->hasPlayer())
     292  {
     293        this->setAbsCoor(Vector(-10000,10000,10000));
     294        this->hide();
     295  }
     296  else
     297  {*/
     298    //this->setAbsCoor( this->getAbsCoor() + Vector(100,0,0) + Vector(1,0,0) * VECTOR_RAND(150).dot(Vector(1,0,0)));
     299  //}
     300
     301}
    245302
    246303void NPC::setWeaponConfig(int i)
Note: See TracChangeset for help on using the changeset viewer.