123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #include "RundenEnde.h"
- #include <Bild.h>
- #include <MausEreignis.h>
- #include <Rahmen.h>
- #include <Schrift.h>
- #include <Text.h>
- // Inhalt der RundenEnde Klasse aus RundenEnde.h
- // Konstruktor
- RundenEnde::RundenEnde( Schrift *zSchrift )
- {
- rahmen = new LRahmen();
- rahmen->setSize( 220, 70 );
- 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( 220, 50 );
- warten = new TextFeld();
- warten->setStyle( TextFeld::Style::Text | TextFeld::Style::Center );
- warten->setSchriftZ( zSchrift->getThis() );
- warten->setText( "Nächste Runde startet in: 5" );
- warten->setSchriftFarbe( 0xFFFFFFFF );
- warten->setSize( 220, 45 );
- sichtbar = 0;
- ref = 1;
- }
- // Destruktor
- RundenEnde::~RundenEnde()
- {
- rahmen->release();
- text->release();
- warten->release();
- }
- // nicht constant
- void RundenEnde::setSichtbar( bool b )
- {
- sichtbar = b;
- }
- void RundenEnde::setGewonnen( bool gewonnen )
- {
- if( gewonnen )
- {
- text->setText( "Du hast die Runde gewonnen." );
- text->setSchriftFarbe( 0xFF00FF00 );
- }
- else
- {
- text->setText( "Du hast die Runde verloren." );
- text->setSchriftFarbe( 0xFFFF0000 );
- }
- }
- void RundenEnde::setZeit( int sekunden )
- {
- warten->setText( "Nächste Runde startet in: " );
- warten->zText()->append( sekunden );
- }
- void RundenEnde::render( Bild &zRObj )
- {
- if( sichtbar )
- {
- 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() + 25 );
- warten->render( zRObj );
- }
- }
- // constant
- bool RundenEnde::istSichtbar() const
- {
- return sichtbar;
- }
- // Reference Counting
- RundenEnde *RundenEnde::getThis()
- {
- ref++;
- return this;
- }
- RundenEnde *RundenEnde::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|