Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 4539 was 4464, checked in by patrick, 20 years ago

orxonox/trunk: reimplemented the shoot speed function

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.