Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/world_entities/projectile.h @ 4696

Last change on this file since 4696 was 4597, checked in by bensch, 19 years ago

orxonox/trunk: setClassID implemented in all files

File size: 2.1 KB
Line 
1/*!
2    \projectile.h
3    \brief a projectile, that is been shooted by a weapon
4
5    You can use this class to make some shoots, but this isn't the real idea. If you want to just test, if the
6    shooting funcions work, use the Projectile class. But if you want to implement your own shoots its
7    different:<br>
8    Make a new class and derive it from Projectile. To have a weapon work well, reimplement the functions
9    - void tick()
10    - void draw()
11    - void hit() (only if you have working collision detection)
12    When you have implemented these functions you have just to add the projectiles to your weapon. You ll want
13    to make this by looking into the function
14    - Weapon::fire()
15    there you just change the line:
16    Projectile* pj = new Projectile();    TO     Projectile* pj = new MyOwnProjectileClass();
17    and schwups it works... :)
18*/
19
20#ifndef _PROJECTILE_H
21#define _PROJECTILE_H
22
23#include "world_entity.h"
24#include "vector.h"
25
26class Vector;
27class Weapon;
28
29class Projectile : public WorldEntity
30{
31  friend class World;
32
33 public:
34  Projectile (Weapon* weapon);
35  virtual ~Projectile ();
36
37  void setFlightDirection(Quaternion flightDirection);
38  void setSpeed(float speed);
39  void setVelocity(const Vector &velocity);
40  void setTTL(float ttl);
41
42  virtual void hit (WorldEntity* weapon, Vector* loc);
43  virtual void destroy ();
44
45  virtual void tick (float time);
46  virtual void draw ();
47
48 protected:
49  //physical attriutes like: force, speed, acceleration etc.
50  float          speed;                     //!< this is the speed of the projectile
51  float          currentLifeTime;           //!< this is the time, the projectile exists in this world (incremented by tick)
52  float          ttl;                       //!< time to life, after this time, the projectile will garbage collect itself
53  Vector*        flightDirection;           //!< direction in which the shoot flights
54  Weapon*        weapon;                    //!< weapon the shoot belongs to
55
56  Vector         velocity;                  //!< velocity of the projectile
57  Vector         offsetVel;                 //!< offset velocity TEMP
58};
59
60#endif /* _PROJECTILE_H */
Note: See TracBrowser for help on using the repository browser.