- Timestamp:
- May 26, 2010, 4:28:14 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/rocket2/src/modules/weapons/projectiles/SimpleRocket.cc
r6956 r6966 59 59 this->bDestroy_ = false; 60 60 this->lifetime_ = 100; 61 this->setMass(15); 61 62 COUT(4) << "simplerocket constructed\n"; 62 63 this->counter_=0; 64 this->slowing_=false; 63 65 64 66 if (GameMode::isMaster()) 65 67 { 66 68 this->setCollisionType(WorldEntity::Kinematic); 67 //this->setVelocity(0,0,100);69 this->fuel_=true; 68 70 69 71 Model* model = new Model(this); … … 72 74 this->attach(model); 73 75 74 ParticleEmitter* fire= new ParticleEmitter(this);75 this->attach( fire);76 fire->setOrientation(this->getOrientation());77 fire->setSource("Orxonox/rocketfire2");78 76 this->fire_ = new ParticleEmitter(this); 77 this->attach(this->fire_); 78 79 this->fire_->setOrientation(this->getOrientation()); 80 this->fire_->setSource("Orxonox/simplerocketfire"); 79 81 this->enableCollisionCallback(); 80 82 this->setCollisionResponse(false); … … 83 85 // TODO: fix the orientation and size of this collision shape to match the rocket 84 86 ConeCollisionShape* collisionShape = new ConeCollisionShape(this); 85 collisionShape->setRadius(3); 86 collisionShape->setHeight(5); 87 collisionShape->setOrientation(this->getOrientation()); 88 collisionShape->setRadius(1.5f); 89 collisionShape->setHeight(200); 87 90 this->attachCollisionShape(collisionShape); 91 88 92 89 93 this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&SimpleRocket::destroyObject, this))); … … 91 95 92 96 } 93 97 98 void SimpleRocket::disableFire(){ 99 this->setAcceleration(0,0,0); 100 this->setVelocity(Vector3(0,0,0)); 101 102 this->fire_->detachFromParent(); 103 //this->fire_->setVisible(false); 104 105 } 106 107 94 108 void SimpleRocket::tick(float dt) 95 109 { 110 96 111 SUPER(SimpleRocket, tick, dt); 112 counter_++; 113 if (this->getVelocity().squaredLength() >130000 && !slowing_) counter_++; //if Velocity bigger than about 360, uses a lot more "fuel" :) 97 114 98 115 this->setAngularVelocity(this->getOrientation() * this->localAngularVelocity_); … … 100 117 this->localAngularVelocity_ = 0; 101 118 119 120 if (this->fuel_) { 121 COUT(0)<<this->getVelocity().length()<<endl; 122 if (this->counter_>1000 && counter_%12==0) 123 124 if (!this->slowing_) { 125 this->setAcceleration(this->getOrientation()*Vector3(10,10,10)); 126 this->slowing_=true; 127 } 128 129 if (this->counter_ > 1800) 130 this->fuel_=false; 131 } 102 132 if( this->bDestroy_ ) 103 133 this->destroy(); 134 if (!this->fuel_) 135 this->disableFire(); 136 137 138 104 139 105 140 } … … 134 169 this->player_ = this->owner_->getPlayer(); 135 170 } 171 136 172 137 173
Note: See TracChangeset
for help on using the changeset viewer.