Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

orxonox/trunk: many loadParams

File size: 2.4 KB
RevLine 
[4597]1/*!
[4890]2    \file projectile.h
[4836]3  *  a projectile, that is been shooted by a weapon
[3710]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
[4597]6    shooting funcions work, use the Projectile class. But if you want to implement your own shoots its
[3710]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)
[4597]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
[3710]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... :)
[3573]18*/
19
20#ifndef _PROJECTILE_H
21#define _PROJECTILE_H
22
23#include "world_entity.h"
[4464]24#include "vector.h"
[3573]25
[4890]26class ParticleEmitter;
[3573]27
[4597]28class Projectile : public WorldEntity
[3573]29{
[4890]30  public:
[4932]31    Projectile ();
[4890]32    virtual ~Projectile ();
[3573]33
[4927]34    void setFlightDirection(const Quaternion& flightDirection);
[4890]35    void setVelocity(const Vector &velocity);
36    void setLifeSpan(float lifeSpan);
[3573]37
[3632]38
[4948]39    void setEnergies(float energyMin, float energyMax);
40    /** @returns the minimal charched energy */
41    inline float getEnergyMin() { return this->energyMin; };
42    /** @returns the maximal charched energy */
43    inline float getEnergyMax() { return this->energyMax; };
44    /** @returns if the Projectile can be charged */
45    inline bool isChageable() { return this->bChargeable; };
[3578]46
[3573]47
[4948]48
[4890]49    virtual void destroy ();
[4597]50
[4890]51    virtual void tick (float time);
52    virtual void draw ();
53
54  protected:
55
56    // energy
57    float                 energyMin;
58    float                 energyMax;
[4948]59    bool                  bChargeable;               //!< if the Projectile is Charegeable
[4890]60
61    float                 lifeCycle;                 //!< The percentage of the Lifetime done [0-1]
[4927]62    float                 lifeSpan;                  //!< The entire lifespan of the Shoot. in seconds
[4890]63
[4948]64    Vector                flightDirection;           //!< DOF direction in which the shoot flighs
[4890]65
66    Vector                velocity;                  //!< velocity of the projectile.
67
[4972]68    ParticleEmitter*      emitter;                   //!< For special effects each Projectile has an emitter.
[3573]69};
70
71#endif /* _PROJECTILE_H */
Note: See TracBrowser for help on using the repository browser.