123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "Ende.h"
- #include <TextFeld.h>
- #include <Bild.h>
- #include <MausEreignis.h>
- #include <Rahmen.h>
- #include <Schrift.h>
- // Inhalt der Ende Klasse aus Ende.h
- // Konstruktor
- Ende::Ende( Schrift *zSchrift )
- {
- rahmen = new LRahmen();
- rahmen->setSize( 200, 100 );
- rahmen->setRamenBreite( 2 );
- rahmen->setFarbe( 0xFFFFFFFF );
- text = new TextFeld();
- text->setStyle( TextFeld::Style::Text | TextFeld::Style::Center );
- text->setSchriftZ( zSchrift->getThis() );
- text->setText( "" );
- text->setSchriftFarbe( 0xFFFFFFFF );
- text->setSize( 200, 50 );
- warten = new TextFeld();
- warten->setStyle( ( TextFeld::Style::Text | TextFeld::Style::Center ) & ~TextFeld::Style::Sichtbar );
- warten->setSchriftZ( zSchrift->getThis() );
- warten->setText( "Bitte warten..." );
- warten->setSchriftFarbe( 0xFFFFFFFF );
- warten->setSize( 200, 50 );
- ok = new Knopf();
- ok->setStyle( Knopf::Style::Normal );
- ok->setSize( 100, 20 );
- ok->setText( "Weiter" );
- ok->setSchriftZ( zSchrift->getThis() );
- weiter = 0;
- ref = 1;
- }
- // 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::doMausEreignis( MausEreignis &me )
- {
- bool vera = me.verarbeitet;
- ok->doMausEreignis( 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;
- }
- // Reference Counting
- Ende *Ende::getThis()
- {
- ref++;
- return this;
- }
- Ende *Ende::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|