Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 3710 was 3710, checked in by patrick, 19 years ago

orxonox/trunk: added the TestBullet to framework, made some doxygen, works

File size: 1.9 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
25class Vector;
26class Weapon;
27
28class Projectile : public WorldEntity
29{
30  friend class World;
31
32 public:
33  Projectile (Weapon* weapon);
34  virtual ~Projectile ();
35
36  void setFlightDirection(Quaternion flightDirection);
37  void setSpeed(float speed);
38  void setTTL(float ttl);
39
40  virtual void hit (WorldEntity* weapon, Vector* loc);
41  virtual void destroy ();
42
43  virtual void tick (float time);
44  virtual void draw ();
45
46 protected:
47  //physical attriutes like: force, speed, acceleration etc.
48  float speed;                         //!< this is the speed of the projectile
49  float currentLifeTime;               //!< this is the time, the projectile exists in this world (incremented by tick)
50  float ttl;                           //!< time to life, after this time, the projectile will garbage collect itself
51  Vector* flightDirection;             //!< direction in which the shoot flights
52  Weapon* weapon;                      //!< weapon the shoot belongs to
53 
54};
55
56#endif /* _PROJECTILE_H */
Note: See TracBrowser for help on using the repository browser.