Rolle.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "Rolle.h"
  2. #include "Spieler.h"
  3. RolleEffect::RolleEffect( Spieler *zSpieler, Richtung r )
  4. : Effect( zSpieler, 2.f + ( 2.f / 100.f ) * zSpieler->getAbklingZeitVerringerung() )
  5. {
  6. this->r = r;
  7. }
  8. RolleEffect::~RolleEffect()
  9. {}
  10. bool RolleEffect::istSpielerBeweglich( Richtung r ) const
  11. {
  12. return false;
  13. }
  14. bool RolleEffect::istSpielerVerwundbar( Richtung r ) const
  15. {
  16. return r == MITTE;
  17. }
  18. void RolleEffect::move( Richtung ri, double time )
  19. {
  20. if( 1 != ri )
  21. return;
  22. switch( r )
  23. {
  24. case OBEN:
  25. zSpieler->setY( zSpieler->getY() - ( 75 + zSpieler->getLaufTempo() ) * (float)time );
  26. break;
  27. case RECHTS:
  28. zSpieler->setX( zSpieler->getX() + ( 75 + zSpieler->getLaufTempo() ) * (float)time );
  29. break;
  30. case UNTEN:
  31. zSpieler->setY( zSpieler->getY() + ( 75 + zSpieler->getLaufTempo() ) * (float)time );
  32. break;
  33. case LINKS:
  34. zSpieler->setX( zSpieler->getX() - ( 75 + zSpieler->getLaufTempo() ) * (float)time );
  35. break;
  36. default:
  37. break;
  38. }
  39. }
  40. bool RolleEffect::istGegenstandErlaubt( GegenstandTyp typ ) const
  41. {
  42. return typ != STURM && typ != ENTERHAKEN;
  43. }