Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10113 in orxonox.OLD for branches/playability/src/world_entities


Ignore:
Timestamp:
Dec 19, 2006, 11:39:59 PM (18 years ago)
Author:
marcscha
Message:

Collision fixes, further additions

Location:
branches/playability/src/world_entities
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/playability/src/world_entities/projectiles/mbolt.cc

    r10104 r10113  
    2424
    2525#include "particles/dot_emitter.h"
    26 #include "particles/box_emitter.h"
    2726#include "particles/sprite_particles.h"
    2827
     
    4746{
    4847  this->registerObject(this, MBolt::_objectList);
    49   this->loadModel("models/projectiles/mbolt.obj");
     48  this->loadModel("models/projectiles/mbolt.obj",4);
    5049
    5150 
     
    5958
    6059  //this->emitter = new DotEmitter(1000, 0, 0);
    61   this->emitter = new DotEmitter(200, 0, 0);
     60  this->emitter = new DotEmitter(50, 0, 0);
    6261  this->emitter->setParent(this);
    6362  this->emitter->setSpread(M_PI,M_PI);
     
    7675  dynamic_cast<StaticModel*>(this->getModel())->finalize();
    7776
     77  dynamic_cast<StaticModel*>(this->getModel())->rebuild();
     78  this->buildObbTree(4);
    7879 
    7980  this->trail = new Trail(6,4,.1, this);
    8081  //this->trail->setParent( this);
    8182  this->trail->setTexture( "maps/laser.png");
    82   this->trail->setAbsCoor(this->getAbsCoor() - Vector(1,0,0));
     83  this->trail->setAbsCoor(this->getAbsCoor() - Vector(.7,0,0));
    8384}
    8485
     
    110111    MBolt::explosionParticles = new SpriteParticles(1000);
    111112    MBolt::explosionParticles->setName("MBoltExplosionParticles");
    112     MBolt::explosionParticles->setLifeSpan(.5, .3);
     113    MBolt::explosionParticles->setLifeSpan(.2, .1);
    113114    MBolt::explosionParticles->setRadius(0.0, 10.0);
    114115    MBolt::explosionParticles->setRadius(.5, 6.0);
     
    126127  this->emitter->setSpread(0);
    127128  this->emitter->setEmissionRate(10.0);
    128   this->emitter->setEmissionVelocity(0);
     129  this->emitter->setEmissionVelocity(50);
    129130}
    130131
     
    136137  this->lifeCycle = 0.0;
    137138
    138   this->toList(OM_NULL);
    139   this->removeNode();
     139  //this->toList(OM_NULL);
     140  this->toList(OM_DEAD);
     141  //this->removeNode();
    140142  MBolt::fastFactory->kill(this);
    141143}
     
    145147{
    146148  PRINTF(0)("MBolt collides pretest\n");
     149
    147150  if( entity == NULL)
    148151    return;
     
    196199  glMultMatrixf((float*)matrix);
    197200
    198   glScalef(0.75, 0.7/4, 0.7/4);  // no double rescale
     201  glScalef(0.75/4, 0.7/16, 0.7/16);  // no double rescale
    199202
    200203  this->mat->select();
    201204  dynamic_cast<StaticModel*>(this->getModel())->draw();
    202205  this->mat->unselect();
    203   glScalef(1/.75,4/.7,4/.7);
    204   glTranslatef(-4,0,0);
     206  glScalef(4/.75,16/.7,16/.7);
     207  glTranslatef(-3,0,0);
    205208  this->trail->draw();
    206209  glPopMatrix();
    207210  glPopAttrib();
    208211
    209 
    210 }
    211 
     212}
     213
  • branches/playability/src/world_entities/space_ships/space_ship.cc

    r10109 r10113  
    3434#include "particles/emitter_node.h"
    3535#include "particles/sprite_particles.h"
    36 #include "effects/explosion.h"
    3736#include "effects/trail.h"
    3837
     
    5251#include "state.h"
    5352#include "player.h"
     53
    5454
    5555#include "util/loading/load_param.h"
     
    173173  this->weaponMan.addWeapon( wpLeft1, 0, 0);
    174174  this->weaponMan.addWeapon( wpRight1, 0, 1);
    175   this->weaponMan.addWeapon( wpLeft2, 0, 2);
    176   this->weaponMan.addWeapon( wpRight2, 0, 3);
    177   this->weaponMan.addWeapon( wpLeft3, 0, 4);
    178   this->weaponMan.addWeapon( wpRight3, 0, 5);
    179 
    180   this->secWeaponMan.addWeapon( cannon, 1, 0);
    181 
    182   this->weaponMan.changeWeaponConfig(0);
    183   this->secWeaponMan.changeWeaponConfig(1);
     175  this->weaponMan.addWeapon( wpLeft2, 1, 0);
     176  this->weaponMan.addWeapon( wpRight2, 1, 1);
     177  this->weaponMan.addWeapon( wpLeft3, 2, 0);
     178  this->weaponMan.addWeapon( wpRight3, 2, 1);
     179
     180  this->secWeaponMan.addWeapon( cannon, 0, 0);
     181
    184182
    185183  wpRight1->requestAction(WA_ACTIVATE);
    186184  wpLeft1->requestAction(WA_ACTIVATE);
     185
    187186  wpRight2->requestAction(WA_ACTIVATE);
    188187  wpLeft2->requestAction(WA_ACTIVATE);
     
    192191  cannon->requestAction(WA_ACTIVATE);
    193192
    194   curWeaponPrimary    = 0;
     193 
     194  this->weaponMan.changeWeaponConfig(1);
     195  this->secWeaponMan.changeWeaponConfig(0);
     196
     197  curWeaponPrimary    = 1;
    195198  curWeaponSecondary  = 0;
    196199
     
    339342  this->trailR->setTexture( "maps/engine.png");
    340343
    341  
     344
    342345  this->toList(OM_GROUP_00);
    343346}
     
    376379  this->secWeaponMan.showCrosshair();
    377380  this->toList( OM_GROUP_01 );
    378  
    379   for(ObjectList<PNode>::const_iterator it = this->getNodesChildren().begin(); it != this->getNodesChildren().end(); it++)
    380   {
    381     if( likely( dynamic_cast<Weapon*>(*it) != NULL))
    382       dynamic_cast<WorldEntity*>(*it)->toList( OM_GROUP_01);
    383   }
    384381  //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( true);
    385382  //this->attachCamera();
     
    391388  this->secWeaponMan.hideCrosshair();
    392389  this->toList( OM_GROUP_00);
    393  
    394   for(ObjectList<PNode>::const_iterator it = this->getNodesChildren().begin(); it != this->getNodesChildren().end(); it++)
    395   {
    396     if( likely( dynamic_cast<Weapon*>(*it) != NULL))
    397       dynamic_cast<WorldEntity*>(*it)->toList( OM_GROUP_00);
    398   }
    399390  //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( false);
    400391  //this->detachCamera();
     
    516507  this->trailR->tick(time);
    517508
     509  this->weaponMan.setParentEntity( this);
     510  this->secWeaponMan.setParentEntity( this);
     511
    518512  //orient the spaceship in direction of the mouse
    519513  /*
     
    558552{
    559553  //Playable::process(event);
    560 
     554 
    561555  if( event.type == KeyMapper::PEV_LEFT)
    562556    this->bLeft = event.bPressed;
     
    571565  else if( event.type == KeyMapper::PEV_FIRE1)
    572566    this->bFire = event.bPressed;
     567  else if( event.type == KeyMapper::PEV_NEXT_WEAPON && event.bPressed)
     568  {
     569    this->nextWeaponConfig();
     570  }
     571  else if ( event.type == KeyMapper::PEV_PREVIOUS_WEAPON && event.bPressed)
     572    this->previousWeaponConfig();
    573573
    574574
     
    632632  else
    633633  {
    634     this->setAbsCoor( this->getAbsCoor() + Vector(150,0,0) + Vector(1,0,0) * VECTOR_RAND(50).dot(Vector(1,0,0)));
     634    this->setAbsCoor( this->getAbsCoor() + Vector(100,0,0) + Vector(1,0,0) * VECTOR_RAND(150).dot(Vector(1,0,0)));
    635635  }
    636636
     
    963963}
    964964
     965/**
     966 * @brief jumps to the next WeaponConfiguration
     967 */
     968void SpaceShip::nextWeaponConfig()
     969{
     970 
     971  this->curWeaponPrimary    = (curWeaponPrimary + 1) % 3;
     972  this->weaponMan.changeWeaponConfig(this->curWeaponPrimary);
     973  Playable::weaponConfigChanged();
     974}
     975
     976/**
     977 * @brief moves to the last WeaponConfiguration
     978 */
     979void SpaceShip::previousWeaponConfig()
     980{
     981  this->curWeaponPrimary    = (curWeaponPrimary + 1) % 3;
     982  this->weaponMan.changeWeaponConfig(this->curWeaponPrimary);
     983  Playable::weaponConfigChanged();
     984}
  • branches/playability/src/world_entities/space_ships/space_ship.h

    r10098 r10113  
    7878    void setPlaymodeXML(const std::string& playmode);
    7979    virtual void movement (float dt);
     80
     81    void nextWeaponConfig();
     82    void previousWeaponConfig();
     83
     84    inline void hit(float damage, WorldEntity* killer) { this->collidesWith(killer, this->getAbsCoor()); killer->collidesWith(this, this->getAbsCoor()); } ;
    8085
    8186  private:
  • branches/playability/src/world_entities/weapons/swarm_launcher.cc

    r10109 r10113  
    150150  for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
    151151  {
    152     if( ((*eIterator)->getOMListNumber() == OM_GROUP_00) && ((*eIterator)->getClassCName() != "Weapon") && ((*eIterator)->getClassCName() != "Projectile") && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 200)
     152    if( ((*eIterator)->getOMListNumber() == OM_GROUP_00) && ((*eIterator)->getClassCName() != "Weapon") && ((*eIterator)->getClassCName() != "Projectile") && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 300)
    153153    {
    154154      pj  = this->getProjectile();
  • branches/playability/src/world_entities/world_entity.cc

    r10101 r10113  
    803803void WorldEntity::hit(float damage, WorldEntity* killer)
    804804{
     805
    805806  this->decreaseHealth(damage);
    806807
Note: See TracChangeset for help on using the changeset viewer.