TempoRune.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "TempoRune.h"
  2. #include "Spieler.h"
  3. TempoRuneEffect::TempoRuneEffect( ResourceRegistry *zResources, Spieler *zSpieler )
  4. : Effect( zSpieler, 75.f + ( 75.f / 100.f ) * zSpieler->getAbklingZeitVerringerung() )
  5. {
  6. zSpieler->setLaufTempo( zSpieler->getLaufTempo() + 7 );
  7. zSpieler->setGeschossTempo( zSpieler->getGeschossTempo() + 3 );
  8. annimation = zResources->getResource( R_RTEMPO_EFFECT, 0 );
  9. currentImage = 0;
  10. nextImage = 0.075;
  11. }
  12. TempoRuneEffect::~TempoRuneEffect()
  13. {
  14. zSpieler->setLaufTempo( zSpieler->getLaufTempo() - 7 );
  15. zSpieler->setGeschossTempo( zSpieler->getGeschossTempo() - 3 );
  16. annimation->release();
  17. }
  18. bool TempoRuneEffect::tick( double time, Spiel *zSpiel )
  19. {
  20. nextImage -= time;
  21. if( nextImage <= 0 )
  22. {
  23. nextImage += 0.075;
  24. currentImage++;
  25. }
  26. return Effect::tick( time, zSpiel );
  27. }
  28. void TempoRuneEffect::renderSpieler( Bild &rObj )
  29. {
  30. if( currentImage >= annimation->getImageCount() )
  31. return;
  32. if( rObj.setDrawOptions( (int)zSpieler->getX(), (int)zSpieler->getY(), (int)zSpieler->getWidth(), (int)zSpieler->getHeight() ) )
  33. {
  34. rObj.alphaBildSkall( 0, 0, (int)zSpieler->getWidth(), (int)zSpieler->getHeight(), *annimation->zImage( currentImage ) );
  35. rObj.releaseDrawOptions();
  36. }
  37. }