Ende.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "Ende.h"
  2. #include <TextFeld.h>
  3. #include <Bild.h>
  4. #include <MausEreignis.h>
  5. #include <Rahmen.h>
  6. #include <Schrift.h>
  7. // Inhalt der Ende Klasse aus Ende.h
  8. // Konstruktor
  9. Ende::Ende( UIInit &uiFactory )
  10. : ReferenceCounter()
  11. {
  12. rahmen = new LRahmen();
  13. rahmen->setSize( 200, 100 );
  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( 200, 50 );
  20. warten = uiFactory.createTextFeld( uiFactory.initParam );
  21. warten->setStyle( ( TextFeld::Style::Text | TextFeld::Style::Center ) & ~TextFeld::Style::Sichtbar );
  22. warten->setText( "Bitte warten..." );
  23. warten->setSize( 200, 50 );
  24. ok = uiFactory.createKnopf( uiFactory.initParam );
  25. ok->setSize( 100, 20 );
  26. ok->setText( "Weiter" );
  27. weiter = 0;
  28. }
  29. // Destruktor
  30. Ende::~Ende()
  31. {
  32. rahmen->release();
  33. text->release();
  34. warten->release();
  35. ok->release();
  36. }
  37. // nicht constant
  38. void Ende::setGewonnen( char gewonnen )
  39. {
  40. if( gewonnen == 1 )
  41. {
  42. text->setText( "Du hast gewonnen." );
  43. text->setSchriftFarbe( 0xFF00FF00 );
  44. }
  45. else if( !gewonnen )
  46. {
  47. text->setText( "Du hast verloren." );
  48. text->setSchriftFarbe( 0xFFFF0000 );
  49. }
  50. else
  51. {
  52. text->setText( "Unentschieden." );
  53. text->setSchriftFarbe( 0xFFFFFFFF );
  54. }
  55. }
  56. void Ende::doPublicMausEreignis( MausEreignis &me )
  57. {
  58. bool vera = me.verarbeitet;
  59. ok->doPublicMausEreignis( me );
  60. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  61. {
  62. ok->removeStyle( Knopf::Style::Sichtbar );
  63. warten->addStyle( TextFeld::Style::Sichtbar );
  64. weiter = 1;
  65. }
  66. me.verarbeitet = 1;
  67. }
  68. void Ende::render( Bild &zRObj )
  69. {
  70. rahmen->setPosition( zRObj.getBreite() / 2 - rahmen->getBreite() / 2, zRObj.getHeight() / 2 - rahmen->getHeight() / 2 );
  71. zRObj.alphaRegion( rahmen->getX(), rahmen->getY(), rahmen->getBreite(), rahmen->getHeight(), 0xA0000000 );
  72. rahmen->render( zRObj );
  73. text->setPosition( rahmen->getX(), rahmen->getY() );
  74. text->render( zRObj );
  75. warten->setPosition( rahmen->getX(), rahmen->getY() + 50 );
  76. warten->render( zRObj );
  77. ok->setPosition( rahmen->getX() + rahmen->getBreite() / 2 - ok->getBreite() / 2, rahmen->getY() + 65 );
  78. ok->render( zRObj );
  79. }
  80. // constant
  81. bool Ende::getWeiter() const
  82. {
  83. return weiter;
  84. }