Changeset 9159 in orxonox.OLD for branches/presentation/src
- Timestamp:
- Jul 4, 2006, 5:38:24 PM (18 years ago)
- Location:
- branches/presentation/src/world_entities
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/presentation/src/world_entities/space_ships/spacecraft_2d.cc
r9149 r9159 91 91 92 92 //weapons: 93 Weapon* wpRight = new TestGun(0);93 Weapon* wpRight = dynamic_cast<Weapon*>(Factory::fabricate(CL_LASER_CANNON)); 94 94 wpRight->setName("testGun Right"); 95 Weapon* wpLeft = new TestGun(1);95 Weapon* wpLeft = dynamic_cast<Weapon*>(Factory::fabricate(CL_LASER_CANNON)); 96 96 wpLeft->setName("testGun Left"); 97 97 //Weapon* cannon = dynamic_cast<Weapon*>(Factory::fabricate(CL_HYPERBLASTER)); … … 123 123 this->cameraLook = 0.0f; 124 124 this->rotation = 0.0f; 125 this->acceleration = 10.0f;125 this->acceleration = 20.0f; 126 126 this->airFriction = 0.0f; 127 127 … … 136 136 this->travelNode = new PNode(); 137 137 138 this->loadModel("models/ships/mantawing.obj", 5.0f); 138 139 139 140 // camera - issue … … 180 181 this->getWeaponManager().setSlotCount(5); 181 182 182 this->getWeaponManager().setSlotPosition(0, Vector( -0.28, 1.186, -2.750));183 this->getWeaponManager().setSlotPosition(0, Vector(1.843, -0.335, 2.029) * 5.0); 183 184 this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 184 185 185 this->getWeaponManager().setSlotPosition(1, Vector( -0.28, 1.186, 2.750));186 this->getWeaponManager().setSlotPosition(1, Vector(1.843, -0.335, -2.029) * 5.0); 186 187 this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 187 188 … … 207 208 registerVar( new SynchronizeableFloat( &cameraLook, &cameraLook, "cameraLook", PERMISSION_OWNER ) ); 208 209 registerVar( new SynchronizeableFloat( &rotation, &rotation, "rotation", PERMISSION_OWNER ) ); 210 211 212 209 213 } 210 214 … … 454 458 this->velocity += (accelerationDir - damping)* dt; 455 459 456 if (this->getRelCoor().z > this->travelDistance.y && accel.z > 0.0)460 if (this->getRelCoor().z > this->travelDistance.y && velocity.z > 0.0) 457 461 this->velocity.z = 0.0f; 458 if (this->getRelCoor().z < -this->travelDistance.y && accel.z < 0.0)462 if (this->getRelCoor().z < -this->travelDistance.y && velocity.z < 0.0) 459 463 this->velocity.z = 0.0f; 460 464 461 if (this->getRelCoor().x > this->travelDistance.x && accel.x > 0.0)465 if (this->getRelCoor().x > this->travelDistance.x && velocity.x > 0.0) 462 466 this->velocity.x = 0.0f; 463 if (this->getRelCoor().x < -this->travelDistance.x && accel.x < 0.0)467 if (this->getRelCoor().x < -this->travelDistance.x && velocity.x < 0.0) 464 468 this->velocity.x = 0.0f; 465 469 … … 467 471 this->shiftCoor (this->velocity * dt); 468 472 if (accel.z == 0) 469 this->setRelDirSoft(Quaternion(0, Vector(0,0,0)), 3.0f);473 this->setRelDirSoft(Quaternion(0, Vector(0,0,0)), 5.0f); 470 474 else 471 this->setRelDirSoft(Quaternion(this->velocity.z * .0 1, Vector(1,0,0)), 2.0f);475 this->setRelDirSoft(Quaternion(this->velocity.z * .004, Vector(1,0,0)), 4.5f); 472 476 } 473 477 break; -
branches/presentation/src/world_entities/weapons/laser_cannon.cc
r9131 r9159 33 33 CREATE_FACTORY(LaserCannon, CL_LASER_CANNON); 34 34 35 /**36 * standard constructor37 38 creates a new weapon39 */40 LaserCannon::LaserCannon ( int leftRight)41 : Weapon()42 {43 this->init();44 45 46 this->leftRight = leftRight;47 48 this->objectComponent1 = new PNode();49 Animation3D* animation1 = this->getAnimation(WS_SHOOTING, this->objectComponent1);50 Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);51 Animation3D* animation3 = this->getAnimation(WS_DEACTIVATING, this);52 //parent->addChild(this->objectComponent1, PNODE_ALL);53 this->addChild(this->objectComponent1);54 55 animation1->setInfinity(ANIM_INF_CONSTANT);56 animation2->setInfinity(ANIM_INF_CONSTANT);57 animation3->setInfinity(ANIM_INF_CONSTANT);58 59 if( this->leftRight == W_LEFT)60 {61 this->setEmissionPoint(1.0, -0.6, -0.2);62 63 animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);64 animation1->addKeyFrame(Vector(-0.4, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);65 animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);66 67 animation2->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);68 animation2->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);69 70 animation3->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);71 animation3->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);72 }73 else if( this->leftRight == W_RIGHT)74 {75 this->setEmissionPoint(1.0, -0.6, 0.3);76 77 this->objectComponent1->setRelCoor(Vector(0,0,0.35));78 animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);79 animation1->addKeyFrame(Vector(-0.4, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);80 animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);81 82 animation2->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);83 animation2->addKeyFrame(Vector(.0, .0, .0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);84 85 animation3->addKeyFrame(Vector(.0, .0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);86 animation3->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);87 }88 }89 90 35 91 36 LaserCannon::LaserCannon(const TiXmlElement* root) … … 111 56 // this->model = (Model*)ResourceManager::getInstance()->load("models/guns/laser_cannon.obj", OBJ, RP_CAMPAIGN); 112 57 113 this->loadModel("models/guns/laser _cannon.obj");58 this->loadModel("models/guns/lasercannon.obj", 5.0f); 114 59 115 60 this->setStateDuration(WS_SHOOTING, .1); … … 129 74 this->setProjectileType(CL_LASER); 130 75 this->prepareProjectiles(100); 131 76 this->setEmissionPoint(Vector(2.8,0,0) * 5.0); 132 77 } 133 78 … … 184 129 pj->activate(); 185 130 } 186 187 188 189 /**190 * this will draw the weapon191 */192 void LaserCannon::draw () const193 {194 /* draw gun body */195 glMatrixMode(GL_MODELVIEW);196 glPushMatrix();197 glTranslatef (this->getAbsCoor ().x,198 this->getAbsCoor ().y,199 this->getAbsCoor ().z);200 201 Vector tmpRot = this->getAbsDir().getSpacialAxis();202 glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );203 204 if( this->leftRight == W_RIGHT)205 glScalef(1.0, 1.0, -1.0);206 static_cast<StaticModel*>(this->getModel())->draw(1);207 glPopMatrix();208 209 /* draw objectComponent1: gun coil - animated stuff */210 glPushMatrix();211 glTranslatef (this->objectComponent1->getAbsCoor ().x,212 this->objectComponent1->getAbsCoor ().y,213 this->objectComponent1->getAbsCoor ().z);214 tmpRot = this->objectComponent1->getAbsDir().getSpacialAxis();215 glRotatef (this->objectComponent1->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );216 static_cast<StaticModel*>(this->getModel())->draw(0);217 glPopMatrix();218 }219 -
branches/presentation/src/world_entities/weapons/laser_cannon.h
r9131 r9159 27 27 28 28 29 //! a weapon can be left or right sided30 /**31 * @todo this will be reset with mirror X/Y/Z32 */33 #define W_LEFT 034 #define W_RIGHT 135 36 37 29 class LaserCannon : public Weapon 38 30 { 39 31 public: 40 LaserCannon (int leftRight); 41 LaserCannon (const TiXmlElement* root); 32 LaserCannon (const TiXmlElement* root = NULL); 42 33 virtual ~LaserCannon (); 43 34 … … 50 41 virtual void fire(); 51 42 52 virtual void draw() const;53 54 43 private: 55 44 PNode* objectComponent1; //<! the gun is made of multiple parts, these PNodes represent their location and orientation 45 }; 56 46 57 int leftRight; // this will become an enum58 };59 47 #endif /* _LASER_CANNON_H */
Note: See TracChangeset
for help on using the changeset viewer.