DeadPlayer.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "DeadPlayer.h"
  2. #include "../Define.h"
  3. #include <Textur2D.h>
  4. #include <Bild.h>
  5. DeadPlayer::DeadPlayer( Model2DData *mda, Model2DData *mdb, Punkt posa, Punkt posb, Vertex speedA, Vertex speedB, float curRotA, float curRotB, float rotA, float rotB, Textur2D *zTextur )
  6. {
  7. m2a = new Model2D();
  8. m2a->setModel( mda );
  9. m2a->setPosition( posa );
  10. m2a->setStyle( Model2D::Style::Sichtbar | Model2D::Style::Textur | Model2D::Style::Alpha );
  11. m2a->setTextur( zTextur->getThis() );
  12. m2a->setDrehung( curRotA );
  13. m2b = new Model2D();
  14. m2b->setModel( mdb );
  15. m2b->setPosition( posb );
  16. m2b->setStyle( Model2D::Style::Sichtbar | Model2D::Style::Textur | Model2D::Style::Alpha );
  17. m2b->setTextur( zTextur->getThis() );
  18. m2b->setDrehung( curRotB );
  19. this->speedA = speedA;
  20. this->speedB = speedB;
  21. this->rotA = rotA;
  22. this->rotB = rotB;
  23. alpha = 255;
  24. ref = 1;
  25. }
  26. DeadPlayer::~DeadPlayer()
  27. {
  28. m2a->release();
  29. m2b->release();
  30. }
  31. void DeadPlayer::render( Bild &zRObj )
  32. {
  33. zRObj.setAlpha( (unsigned char)alpha );
  34. m2a->render( zRObj );
  35. m2b->render( zRObj );
  36. zRObj.releaseAlpha();
  37. }
  38. bool DeadPlayer::tick()
  39. {
  40. m2a->addDrehung( rotA * (float)TICK );
  41. m2b->addDrehung( rotB * (float)TICK );
  42. m2a->setPosition( m2a->getPosition() + speedA * (float)TICK );
  43. m2b->setPosition( m2b->getPosition() + speedB * (float)TICK );
  44. alpha -= TICK * 15;
  45. if( alpha < 0 )
  46. {
  47. alpha = 0;
  48. return 1;
  49. }
  50. return 0;
  51. }
  52. DeadPlayer *DeadPlayer::getThis()
  53. {
  54. ref++;
  55. return this;
  56. }
  57. DeadPlayer *DeadPlayer::release()
  58. {
  59. if( !--ref )
  60. delete this;
  61. return 0;
  62. }