DeadPlayer.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "DeadPlayer.h"
  2. #include "../Define.h"
  3. #include <Textur2D.h>
  4. #include <Bild.h>
  5. DeadPlayer::DeadPlayer( Model2DData *mda, Model2DData *mdb, Vertex posa, Vertex posb, Vertex speedA, Vertex speedB, float curRotA, float curRotB, float rotA, float rotB, Textur2D *zTextur )
  6. : Object2D()
  7. {
  8. m2a = new Model2DObject();
  9. m2a->setModel( mda );
  10. m2a->setPosition( posa );
  11. m2a->setTextur( zTextur->getThis() );
  12. m2a->setDrehung( curRotA );
  13. m2a->setSpeed( speedA );
  14. m2a->setDrehungSpeed( rotA );
  15. m2b = new Model2DObject();
  16. m2b->setModel( mdb );
  17. m2b->setPosition( posb );
  18. m2b->setTextur( zTextur->getThis() );
  19. m2b->setDrehung( curRotB );
  20. m2b->setSpeed( speedB );
  21. m2b->setDrehungSpeed( rotB );
  22. alpha = 255;
  23. setCollision( 0 );
  24. }
  25. DeadPlayer::~DeadPlayer()
  26. {
  27. m2a->release();
  28. m2b->release();
  29. }
  30. void DeadPlayer::render( Mat3< float > &kamMat, Bild &zRObj, const char *kamName )
  31. {
  32. zRObj.setAlpha( (unsigned char)alpha );
  33. m2a->render( kamMat, zRObj, kamName );
  34. m2b->render( kamMat, zRObj, kamName );
  35. zRObj.releaseAlpha();
  36. }
  37. bool DeadPlayer::tick( const WeltInfo &info, double zeit )
  38. {
  39. m2a->tick( info, zeit );
  40. m2b->tick( info, zeit );
  41. alpha -= zeit * 15;
  42. if( alpha < 0 )
  43. alpha = 0;
  44. return 1;
  45. }
  46. Rect2< float > DeadPlayer::getBoundingBox() const
  47. {
  48. Rect2< float > r1 = m2a->getBoundingBox();
  49. Rect2< float > r2 = m2b->getBoundingBox();
  50. Rect2< float > r;
  51. r.topLeft.x = min( r1.topLeft.x, r2.topLeft.x );
  52. r.topLeft.y = min( r1.topLeft.y, r2.topLeft.y );
  53. r.bottomRight.x = max( r1.bottomRight.x, r2.bottomRight.x );
  54. r.bottomRight.y = max( r1.bottomRight.y, r2.bottomRight.y );
  55. return r;
  56. }
  57. bool DeadPlayer::isFinished() const
  58. {
  59. return alpha == 0;
  60. }