Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 16, 2005, 4:18:16 PM (19 years ago)
Author:
snellen
Message:

guided_missile.cc in /world_entities/weapon updated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/spaceshipcontrol/src/world_entities/weapons/guided_missile.cc

    r6044 r6131  
    4949  this->energyMax = 10;
    5050  this->lifeSpan = 5.0;
    51   this->agility = 0.1;
    52   this->maxVelocity = 100;
     51  this->agility = 50;
     52  this->maxVelocity = 300;
    5353
    5454  this->emitter = new ParticleEmitter(Vector(0,1,0), M_2_PI, 100, 5);
     
    150150*/
    151151void GuidedMissile::tick (float time)
    152 {
     152{
     153
     154   
    153155
    154156  if (target != NULL && target->getParent() != NullParent::getInstance())
    155157   {
    156      float speed = velocity.len();
    157 
    158      velocity += (((target->getAbsCoor() - this->getAbsCoor()).getNormalized())*speed - velocity)*agility;
    159      velocity *= (velocity.getNormalized())*speed;
    160 
    161 
    162      velocity *= maxVelocity/speed;
     158    float speed = velocity.len();
     159    Vector diffVector = ((target->getAbsCoor() - this->getAbsCoor()).getNormalized());
     160
     161     if (velocity.dot(diffVector) != 0)
     162
     163      if(velocity.dot(diffVector) > 0)
     164       velocity += ( ( diffVector *  (speed * speed/( velocity.dot(diffVector ) ) ) - velocity).getNormalized()) * agility;
     165      else
     166       velocity -= ( ( diffVector *  (speed * speed/( velocity.dot(diffVector ) ) ) - velocity).getNormalized()) * agility;
     167
     168     else
     169      velocity += diffVector * agility;
    163170
    164171     this->setAbsDir(Quaternion(velocity, Vector(0,1,0)) * Quaternion ( -M_PI_2, Vector(0,1,0)));
    165172   }
    166173
     174  velocity *= maxVelocity/velocity.len();
    167175  Vector v = this->velocity * (time);
    168176  this->shiftCoor(v);
Note: See TracChangeset for help on using the changeset viewer.