RundenEnde.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "RundenEnde.h"
  2. #include <Bild.h>
  3. #include <MausEreignis.h>
  4. #include <Rahmen.h>
  5. #include <Schrift.h>
  6. #include <Text.h>
  7. // Inhalt der RundenEnde Klasse aus RundenEnde.h
  8. // Konstruktor
  9. RundenEnde::RundenEnde( UIInit &uiFactory )
  10. : ReferenceCounter()
  11. {
  12. rahmen = new LRahmen();
  13. rahmen->setSize( 220, 70 );
  14. rahmen->setRamenBreite( 2 );
  15. rahmen->setFarbe( 0xFFFFFFFF );
  16. text = uiFactory.createTextFeld( uiFactory.initParam );
  17. text->setStyle( TextFeld::Style::Text | TextFeld::Style::Center );
  18. text->setText( "" );
  19. text->setSize( 220, 50 );
  20. warten = uiFactory.createTextFeld( uiFactory.initParam );
  21. warten->setStyle( TextFeld::Style::Text | TextFeld::Style::Center );
  22. warten->setText( "Nächste Runde startet in: 5" );
  23. warten->setSize( 220, 45 );
  24. sichtbar = 0;
  25. }
  26. // Destruktor
  27. RundenEnde::~RundenEnde()
  28. {
  29. rahmen->release();
  30. text->release();
  31. warten->release();
  32. }
  33. // nicht constant
  34. void RundenEnde::setSichtbar( bool b )
  35. {
  36. sichtbar = b;
  37. }
  38. void RundenEnde::setGewonnen( bool gewonnen )
  39. {
  40. if( gewonnen )
  41. {
  42. text->setText( "Du hast die Runde gewonnen." );
  43. text->setSchriftFarbe( 0xFF00FF00 );
  44. }
  45. else
  46. {
  47. text->setText( "Du hast die Runde verloren." );
  48. text->setSchriftFarbe( 0xFFFF0000 );
  49. }
  50. }
  51. void RundenEnde::setZeit( int sekunden )
  52. {
  53. warten->setText( "Nächste Runde startet in: " );
  54. warten->zText()->append( sekunden );
  55. }
  56. void RundenEnde::render( Bild &zRObj )
  57. {
  58. if( sichtbar )
  59. {
  60. rahmen->setPosition( zRObj.getBreite() / 2 - rahmen->getBreite() / 2, zRObj.getHeight() / 2 - rahmen->getHeight() / 2 );
  61. zRObj.alphaRegion( rahmen->getX(), rahmen->getY(), rahmen->getBreite(), rahmen->getHeight(), 0xA0000000 );
  62. rahmen->render( zRObj );
  63. text->setPosition( rahmen->getX(), rahmen->getY() );
  64. text->render( zRObj );
  65. warten->setPosition( rahmen->getX(), rahmen->getY() + 25 );
  66. warten->render( zRObj );
  67. }
  68. }
  69. // constant
  70. bool RundenEnde::istSichtbar() const
  71. {
  72. return sichtbar;
  73. }