#include "Ende.h" #include #include #include #include #include // Inhalt der Ende Klasse aus Ende.h // Konstruktor Ende::Ende( UIInit &uiFactory ) : ReferenceCounter() { rahmen = new LRahmen(); rahmen->setSize( 200, 100 ); rahmen->setRamenBreite( 2 ); rahmen->setFarbe( 0xFFFFFFFF ); text = uiFactory.createTextFeld( uiFactory.initParam ); text->setStyle( TextFeld::Style::Text | TextFeld::Style::Center ); text->setText( "" ); text->setSize( 200, 50 ); warten = uiFactory.createTextFeld( uiFactory.initParam ); warten->setStyle( ( TextFeld::Style::Text | TextFeld::Style::Center ) & ~TextFeld::Style::Sichtbar ); warten->setText( "Bitte warten..." ); warten->setSize( 200, 50 ); ok = uiFactory.createKnopf( uiFactory.initParam ); ok->setSize( 100, 20 ); ok->setText( "Weiter" ); weiter = 0; } // Destruktor Ende::~Ende() { rahmen->release(); text->release(); warten->release(); ok->release(); } // nicht constant void Ende::setGewonnen( char gewonnen ) { if( gewonnen == 1 ) { text->setText( "Du hast gewonnen." ); text->setSchriftFarbe( 0xFF00FF00 ); } else if( !gewonnen ) { text->setText( "Du hast verloren." ); text->setSchriftFarbe( 0xFFFF0000 ); } else { text->setText( "Unentschieden." ); text->setSchriftFarbe( 0xFFFFFFFF ); } } void Ende::doPublicMausEreignis( MausEreignis &me ) { bool vera = me.verarbeitet; ok->doPublicMausEreignis( me ); if( !vera && me.verarbeitet && me.id == ME_RLinks ) { ok->removeStyle( Knopf::Style::Sichtbar ); warten->addStyle( TextFeld::Style::Sichtbar ); weiter = 1; } me.verarbeitet = 1; } void Ende::render( Bild &zRObj ) { rahmen->setPosition( zRObj.getBreite() / 2 - rahmen->getBreite() / 2, zRObj.getHeight() / 2 - rahmen->getHeight() / 2 ); zRObj.alphaRegion( rahmen->getX(), rahmen->getY(), rahmen->getBreite(), rahmen->getHeight(), 0xA0000000 ); rahmen->render( zRObj ); text->setPosition( rahmen->getX(), rahmen->getY() ); text->render( zRObj ); warten->setPosition( rahmen->getX(), rahmen->getY() + 50 ); warten->render( zRObj ); ok->setPosition( rahmen->getX() + rahmen->getBreite() / 2 - ok->getBreite() / 2, rahmen->getY() + 65 ); ok->render( zRObj ); } // constant bool Ende::getWeiter() const { return weiter; }