123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #include "Umlenkung.h"
- #include "Spiel.h"
- Umlenkung::Umlenkung( int id, int x, int y, int breite, int height, Richtung richtung, int maxAbklingzeit, bool drehend, bool aktiv )
- : GameObject( UMLENKUNG, x, y, breite, height )
- {
- this->id = id;
- this->richtung = richtung;
- this->maxAbklingzeit = maxAbklingzeit;
- this->drehend = drehend;
- this->aktiv = aktiv;
- benutzt = 0;
- abklingzeitVerbleibend = 0;
- }
- void Umlenkung::setMaxAbklingzeit( int sekunden )
- {
- this->maxAbklingzeit = sekunden;
- }
- void Umlenkung::setAktiv( bool aktiv )
- {
- this->aktiv = aktiv;
- }
- void Umlenkung::setDrehend( bool drehend )
- {
- this->drehend = drehend;
- }
- void Umlenkung::setRichtung( Richtung r )
- {
- this->richtung = r;
- }
- void Umlenkung::addBenutzt( Spiel *zSpiel )
- {
- benutzt++;
- if( drehend )
- {
- switch( richtung )
- {
- case OBEN:
- richtung = RECHTS;
- break;
- case RECHTS:
- richtung = UNTEN;
- break;
- case UNTEN:
- richtung = LINKS;
- break;
- case LINKS:
- richtung = OBEN;
- break;
- default:
- break;
- }
- }
- abklingzeitVerbleibend = (float)maxAbklingzeit;
- zSpiel->setUmlenkungZuletztBenutzt( (Umlenkung *)getThis() );
- }
- void Umlenkung::tick( double time )
- {
- if( abklingzeitVerbleibend > 0 )
- {
- abklingzeitVerbleibend -= (float)time;
- if( abklingzeitVerbleibend < 0 )
- abklingzeitVerbleibend = 0;
- }
- }
- bool Umlenkung::isAktive() const
- {
- return aktiv;
- }
- bool Umlenkung::hatAbklingzeit() const
- {
- return abklingzeitVerbleibend > 0;
- }
- bool Umlenkung::istDrehend() const
- {
- return drehend;
- }
- int Umlenkung::getMaxAbklingzeit() const
- {
- return maxAbklingzeit;
- }
- Richtung Umlenkung::getRichtung() const
- {
- return richtung;
- }
- int Umlenkung::getBenutzungen() const
- {
- return benutzt;
- }
- int Umlenkung::getId() const
- {
- return id;
- }
|