Back to bsyte

Partikel Class Reference

Partikel werden fuer die Darstellung von Feuer, Rauch, Funken, Regen usw. verwendet. Typ. wird ein Partikel durch ein 2D-Objekt repraesentiert, dem eine semitransparente Bitmap (hier Sprite genannt) fuer die Darstellung zugeordnet ist. Partikel koennen sich bewegen oder auch stationaer zein (Blinklichter). Sie haben eine Emitter, einen Lebenszyklus und noch ein paar weitere Attribute. Um 'realistische' Bewegungsablaeufe zu simulieren, wird stark mit Zufallswerten gearbeitet. More...

#include <Partikel.h>

Inheritance diagram for Partikel:
Collaboration diagram for Partikel:

List of all members.

Public Types

enum  ACTION { RESPAWN_AT_EMITTER = 0, NO_RESPAWN = 1, RESPAWN_REFLECTON = 2 }
enum  LIFECYCLE {
  IS_OFF = 0, IS_ON = 1, SWITCH_OFF = 2, SWITCH_ON = 3,
  IS_DEAD = 4
}

Public Member Functions

 Partikel (int zone, int action)
 Konstruktor.
virtual ~Partikel ()
 Destruktor.
void setMotion (Vec &startpos, Vec &velocity, Vec &force)
 Setter fuer die Bewegungsparameter.
void setMotion (Vec &startpos, Vec &randomMin, Vec &randomMax, float speed, Vec &force)
 Setter fuer die Bewegungsparameter.
void setONtime (int ontime)
 Setter fuer die Aktive Zeit.
void setOFFtime (int offtime)
 Setter fuer die Passive Zeit.
float getONtime ()
 Getter fuer die AKTIVE Zeit.
void setFading (bool fading)
 Richtungsvektor fuer die Bewegung.
void setROLLtime (int rolltime)
 Richtungsvektor fuer die Bewegung.
void animate (void)
 Animiert dieses Partikel.
bool isON (void)
 Liefert ON/OFF Status des Partikels.
void addSprite (Sprite *sprite)
 Fuegt ein Sprite an das Partikel an.
void querySprite (void)
 Richtungsvektor fuer die Bewegung.

Public Attributes

bool m_isScale
bool m_isFading
Spritem_sprite

Private Member Functions

void calcVelocity (void)
 Berechnet die Bewegung.
int refreshStatus (void)
 Liefert der Refreshstatus.

Private Attributes

int m_zone
Vec m_emitterPos
Vec m_velocity
Vec m_randomMin
Vec m_randomMax
Vec m_force
float m_frames
bool m_useSpeed
float m_speed
unsigned long m_ONtime
unsigned long m_ONstart
unsigned long m_OFFtime
unsigned long m_OFFstart
unsigned long m_ROLLtime
unsigned long m_ROLLstart
int m_status
int m_action
int m_spriteCount
Spritem_spriteOrg [50]
int m_currSpriteID

Detailed Description

Partikel werden fuer die Darstellung von Feuer, Rauch, Funken, Regen usw. verwendet. Typ. wird ein Partikel durch ein 2D-Objekt repraesentiert, dem eine semitransparente Bitmap (hier Sprite genannt) fuer die Darstellung zugeordnet ist. Partikel koennen sich bewegen oder auch stationaer zein (Blinklichter). Sie haben eine Emitter, einen Lebenszyklus und noch ein paar weitere Attribute. Um 'realistische' Bewegungsablaeufe zu simulieren, wird stark mit Zufallswerten gearbeitet.

Bewegung:

  • Keine Bewegung: Permanent AN, Blinkend=f(zeitintervall)
  • Lineare Bewegung: Ueber die Zeit, oder ueber die Distanz zum Emitter Bei Erreichen des Ende: Dead(Ausblenden), Respawn am Emitter, Respawn am letzter Position mit Richtungsumkehr
  • Parabel (z.B. Granatenwurf): Ueber die Zeit, ueber die Strecke)

Bei linearer Bewegung:

  • Bewegung innerhalb einer BBox (ggf, mit Reflexion)
  • Bewegung innerhalb eines Zylinders (ggf, mit Reflexion)
  • Bewegung innerhalb einer Kugel (ggf, mit Reflexion)
  • Bewegung auf einer BBox (Anwendungsfall??)
  • Bewegung auf einem Zylinders (Beamer von Startrek)
  • Bewegung auf einer Kugel (Kreis)

Member Enumeration Documentation

Enumerator:
RESPAWN_AT_EMITTER 
NO_RESPAWN 
RESPAWN_REFLECTON 
Enumerator:
IS_OFF 
IS_ON 
SWITCH_OFF 
SWITCH_ON 
IS_DEAD 

Constructor & Destructor Documentation

Partikel::Partikel ( int  zone,
int  action 
)

Konstruktor.

Parameters:
zonezoneID
actionRESPAWN_AT_EMITTER, NO_RESPAWN, RESPAWN_REFLECTON ...

Here is the call graph for this function:

Partikel::~Partikel ( ) [virtual]

Destruktor.


Member Function Documentation

void Partikel::addSprite ( Sprite sprite)

Fuegt ein Sprite an das Partikel an.

Parameters:
spriteRichtungsvektor

Here is the caller graph for this function:

void Partikel::animate ( void  )

Animiert dieses Partikel.

Here is the call graph for this function:

Here is the caller graph for this function:

void Partikel::calcVelocity ( void  ) [private]

Berechnet die Bewegung.

Here is the call graph for this function:

Here is the caller graph for this function:

float Partikel::getONtime ( )

Getter fuer die AKTIVE Zeit.

Returns:
zeit in millisec.

Here is the call graph for this function:

Here is the caller graph for this function:

bool Partikel::isON ( void  )

Liefert ON/OFF Status des Partikels.

Returns:
true, false

Here is the caller graph for this function:

void Partikel::querySprite ( void  )

Richtungsvektor fuer die Bewegung.

Here is the call graph for this function:

Here is the caller graph for this function:

int Partikel::refreshStatus ( void  ) [private]

Liefert der Refreshstatus.

Returns:
status

Here is the call graph for this function:

Here is the caller graph for this function:

void Partikel::setFading ( bool  fading)

Richtungsvektor fuer die Bewegung.

Parameters:
fadingRichtungsvektor

Here is the caller graph for this function:

void Partikel::setMotion ( Vec startpos,
Vec velocity,
Vec force 
)

Setter fuer die Bewegungsparameter.

Parameters:
startposStartposition
velocityStartgeschwindigkeit
forceKraft (z.B. Gravitationskraft)

Here is the call graph for this function:

Here is the caller graph for this function:

void Partikel::setMotion ( Vec startpos,
Vec randomMin,
Vec randomMax,
float  speed,
Vec force 
)

Setter fuer die Bewegungsparameter.

Parameters:
startposStartposition
randomMinStartposition
randomMaxStartgeschwindigkeit
speedStartgeschwindigkeit
forceKraft (z.B. Gravitationskraft)

Here is the call graph for this function:

void Partikel::setOFFtime ( int  offtime)

Setter fuer die Passive Zeit.

Parameters:
offtimezeit im millisec.

Here is the caller graph for this function:

void Partikel::setONtime ( int  ontime)

Setter fuer die Aktive Zeit.

Parameters:
ontimezeit im millisec.

Here is the caller graph for this function:

void Partikel::setROLLtime ( int  rolltime)

Richtungsvektor fuer die Bewegung.

Parameters:
rolltimeRichtungsvektor

Here is the caller graph for this function:


Member Data Documentation

int Partikel::m_action [private]
int Partikel::m_currSpriteID [private]
float Partikel::m_frames [private]
unsigned long Partikel::m_OFFstart [private]
unsigned long Partikel::m_OFFtime [private]
unsigned long Partikel::m_ONstart [private]
unsigned long Partikel::m_ONtime [private]
unsigned long Partikel::m_ROLLstart [private]
unsigned long Partikel::m_ROLLtime [private]
float Partikel::m_speed [private]
int Partikel::m_spriteCount [private]
Sprite* Partikel::m_spriteOrg[50] [private]
int Partikel::m_status [private]
bool Partikel::m_useSpeed [private]
int Partikel::m_zone [private]

The documentation for this class was generated from the following files: