Changeset 4830 in orxonox.OLD for orxonox/trunk/src/world_entities/weapons
- Timestamp:
- Jul 11, 2005, 5:43:37 PM (19 years ago)
- Location:
- orxonox/trunk/src/world_entities/weapons
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/world_entities/weapons/crosshair.cc
r4826 r4830 23 23 #include "p_node.h" 24 24 #include "state.h" 25 #include "model.h" 25 26 26 27 #include <iostream> … … 37 38 this->setName("Crosshair"); 38 39 40 this->material = NULL; 41 this->model = NULL; 42 this->rotation = 0; 43 44 this->material = new Material("Crosshair Material"); 45 this->material->setDiffuseMap("maps/aim.png"); 46 47 float size = 50; 48 this->model = new Model(); 49 this->model->addVertex (-0.5*size, -0.5*size, 0); 50 this->model->addVertex (0.5*size, -0.5*size, 0); 51 this->model->addVertex (0.5*size, 0.5*size, 0); 52 this->model->addVertex (-0.5*size, 0.5*size, 0); 53 54 this->model->addVertexTexture(0,0); 55 this->model->addVertexTexture(1,0); 56 this->model->addVertexTexture(1,1); 57 this->model->addVertexTexture(0,1); 58 59 this->model->setMaterial(this->material); 60 this->model->addFace(4, VERTEX_TEXCOORD, 0,0, 1,1 ,2,2, 3,3); 61 this->model->finalize(); 62 39 63 EventHandler::getInstance()->subscribe(this, ES_GAME, EV_MOUSE_MOTION); 40 64 … … 47 71 Crosshair::~Crosshair () 48 72 { 73 // delete this->model; 74 49 75 // delete what has to be deleted here 50 76 EventHandler::getInstance()->unsubscribe(this); … … 81 107 82 108 83 void Crosshair::draw() const109 void Crosshair::draw() 84 110 { 85 111 /* … … 118 144 GraphicsEngine::storeMatrices(); 119 145 120 float z; 121 glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z); 122 123 124 printf("%f %f %f\n", (int)position2D[0], (int)position2D[1], z); 146 /// float z; 147 // glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z); 148 125 149 126 150 //cout << z <<" "<< scale << " " << bias<< endl; 151 127 152 128 153 GLdouble objX, objY, objZ; 129 154 gluUnProject(position2D[0], 130 155 GraphicsEngine::getInstance()->getResolutionY()-position2D[1]-1, 131 . 5,156 .99, 132 157 GraphicsEngine::modMat, 133 158 GraphicsEngine::projMat, … … 137 162 &objZ ); 138 163 139 glBegin(GL_TRIANGLES); 140 glColor3f(1,0,0); 141 glVertex3f(objX, objY, objZ); 142 glVertex3f(objX, objY+1, objZ); 143 glVertex3f(objX, objY, objZ+1); 164 this->setAbsCoor(objX, objY, objZ); 165 166 // glBegin(GL_TRIANGLES); 167 // glColor3f(1,0,0); 168 // glVertex3f(objX, objY, objZ); 169 // glVertex3f(objX, objY+1, objZ); 170 // glVertex3f(objX, objY, objZ+1); 171 // glEnd(); 172 173 174 GraphicsEngine::enter2DMode(); 175 GLdouble pos[3]; 176 gluProject(this->getAbsCoor().x, 177 this->getAbsCoor().y, 178 this->getAbsCoor().z, 179 GraphicsEngine::modMat, 180 GraphicsEngine::projMat, 181 GraphicsEngine::viewPort, 182 pos, pos+1, pos+2 ); 183 184 printf("%d %d %d\n", (int)pos[0], (int)pos[1], (int)pos[2]); 185 this->rotation += 5; 186 187 glTranslatef(position2D[0], position2D[1], 0); 188 glRotatef(this->rotation, 0,0,1); 189 this->model->draw(); 190 /* 191 glBegin(GL_QUADS); 192 { 193 glColor4f(1,0,0,1); 194 glVertex2f(position2D[0]-10, position2D[1]-10); 195 glVertex2f(position2D[0]+10, position2D[1]-10); 196 glVertex2f(position2D[0]+10, position2D[1]+10); 197 glVertex2f(position2D[0]-10, position2D[1]+10); 198 199 // glVertex2f(pos[0]-10, pos[1]-10); 200 // glVertex2f(pos[0]-10, pos[1]+10); 201 // glVertex2f(pos[0]+10, pos[1]+10); 202 // glVertex2f(pos[0]+10, pos[1]-10); 203 } 144 204 glEnd(); 145 } 205 */ 206 GraphicsEngine::leave2DMode(); 207 } -
orxonox/trunk/src/world_entities/weapons/crosshair.h
r4781 r4830 9 9 10 10 #include "event_listener.h" 11 11 #include "p_node.h" 12 12 #include "vector.h" 13 13 14 14 // FORWARD DEFINITION 15 15 class Model; 16 class Material; 16 17 17 18 //! A class that enables the 18 class Crosshair : public EventListener {19 class Crosshair : public PNode, public EventListener { 19 20 20 21 public: … … 25 26 virtual void process(const Event &event); 26 27 27 /** @returns the current 3D-position of the Crosshair */28 const Vector& getPosition() { return this->position; };29 30 28 void tick(float dt); 31 void draw() const;29 void draw(); 32 30 33 31 private: 34 Vector position; //!< The current position of the Crosshair35 32 float position2D[2]; //!< The 2D-position on the screen 36 33 34 Model* model; //!< A model for the crosshair representing the Aim 35 Material* material; //!< a material for the Aim. 36 float rotation; //!< a rotation of the aim. 37 float size; //!< The Size of the Crosshair (in % of screen resolution 1 is fullscreen) 37 38 }; 38 39 -
orxonox/trunk/src/world_entities/weapons/weapon.cc
r4828 r4830 33 33 this->setRelCoor(coordinate); 34 34 this->setRelDir(direction); 35 this->worldEntities = State::getWorldEntityList();36 35 } 37 36 … … 156 155 can destroy the weapons of enemies or vice versa. 157 156 */ 158 void Weapon::hit (WorldEntity* entity, Vector*position)157 void Weapon::hit (WorldEntity* entity, const Vector& position) 159 158 {} 160 159 -
orxonox/trunk/src/world_entities/weapons/weapon.h
r4827 r4830 32 32 class TiXmlElement; 33 33 34 //! An enumerator defining actions a Weapon can take 35 typedef enum { 36 WA_NONE = 0, //!< No Action taken 37 WA_SHOOT = 1, //!< emitting Shot 38 WA_CHARGE = 2, //!< charge action (one click before the shot) 39 WA_RELOAD = 3, //!< reload right after shoot is finished 40 WA_ACTIVATE = 4, //!< activate the GUN 41 WA_DEACTIVATE = 5, //!< deactivate the GUN 42 WA_SPECIAL1 = 6, //!< Special Action taken 34 43 35 // typedef enum { 36 // W_SHOOT, 37 // W_EMPTY, 38 // W_RELOAD, 39 // W_SPECIAL1, 40 // W_SPECIAL2, 41 // W_SPECIAL3 42 // } WeaponSoundType; 43 44 WA_ACTION_COUNT = 6 //!< This must match the count of enumerations (without W_NONE) 45 } WeaponActions; 44 46 45 47 //! An enumerator defining the States of a Weapon 46 48 typedef enum { 47 W _NONE = 0, //!< No State at all (if set, there is something wrong, or the weapon is not yet availiable)48 W _SHOOT= 1, //!< The State of the Shooting49 W _RELOAD = 2, //!< The State of the Reloading50 W _ACTIVATING = 3, //!< The State in which the weapon gets activated51 W _DEACTIVATING = 4, //!< The State in which the weapon gets deactivated52 W _INACTIVE = 5, //!< The State where the weapon is inactive (unable to shoot)53 W _IDLE = 6, //!< The State where the weapon is idle49 WS_NONE = 0, //!< No State at all (if set, there is something wrong, or the weapon is not yet availiable) 50 WS_SHOOTING = 1, //!< The State of the Shooting 51 WS_RELOADING = 3, //!< The State of the Reloading 52 WS_ACTIVATING = 4, //!< The State in which the weapon gets activated 53 WS_DEACTIVATING = 5, //!< The State in which the weapon gets deactivated 54 WS_INACTIVE = 6, //!< The State where the weapon is inactive (unable to shoot) 55 WS_IDLE = 7, //!< The State where the weapon is idle 54 56 55 W _STATES_COUNT = 6//!< This must match the count of the enumerations (without W_NONE)57 WS_STATE_COUNT = 7 //!< This must match the count of the enumerations (without W_NONE) 56 58 } WeaponState; 57 59 58 60 59 61 //! a weapon can be left or right sided 62 /** 63 * @todo this will be reset with mirror X/Y/Z 64 */ 60 65 #define W_LEFT 0 61 66 #define W_RIGHT 1 … … 99 104 /** @brief fires the weapon */ 100 105 virtual void fire() = 0; 101 virtual void hit (WorldEntity* weapon, Vector*loc);106 virtual void hit (WorldEntity* weapon, const Vector& loc); 102 107 virtual void destroy(); 103 108 … … 107 112 108 113 protected: 109 tList<WorldEntity>* worldEntities;110 114 111 float localTime; //<! this is the local time. important for shooting attributes like frequency 112 float idleTime; //<! the time a weapon needs before it can shoot again. eg. shooting frequency or actication/deactivateion delay 113 float slowDownFactor; //<! if the shooting frequency is a linear function of time... 115 float localTime; //<! this is the local time. important for shooting attributes like frequency 116 float idleTime; //<! the time a weapon needs before it can shoot again. eg. shooting frequency or actication/deactivateion delay 117 float slowDownFactor; //<! if the shooting frequency is a linear function of time... 118 119 //////////// 120 // PHASES // 121 //////////// 122 float times[WS_STATE_COUNT]; //!< Times to stay in the different States @see WeaponState 123 SoundBuffer* soundBuffers[WA_ACTION_COUNT]; //!< SoundBuffers for all actions @see WeaponAction 124 125 114 126 115 127 SoundBuffer* fireSound; … … 118 130 119 131 private: 120 bool enabled; //<! states if the weapon is enabled or not121 Projectile* projectile; //<! the projectile used for this weapon132 bool enabled; //<! states if the weapon is enabled or not 133 Projectile* projectile; //<! the projectile used for this weapon 122 134 //WeaponSound sound; 123 135 };
Note: See TracChangeset
for help on using the changeset viewer.