Explorar o código

Eingaben während des ladens verhindert
bessere ladeannimation

Kolja Strohm %!s(int64=5) %!d(string=hai) anos
pai
achega
f52750d844
Modificáronse 2 ficheiros con 16 adicións e 12 borrados
  1. 15 11
      StickmanWorldOnline/Spiel.cpp
  2. 1 1
      StickmanWorldOnline/Spiel.h

+ 15 - 11
StickmanWorldOnline/Spiel.cpp

@@ -16,7 +16,7 @@ Spiel::Spiel()
     spielerGUI = 0;
     deads = new RCArray< DeadPlayer >();
     nextId = 0;
-    rendern = 0;
+    begonnen = 0;
     rZeit = 0;
     gameTicks = 0;
     spielerAnzahl = 0;
@@ -668,7 +668,7 @@ void Spiel::ladeDaten()
 
 void Spiel::doPublicMausEreignis( MausEreignis &me )
 {
-    if( me.verarbeitet )
+    if( me.verarbeitet || !begonnen )
         return;
     if( end )
     {
@@ -680,7 +680,7 @@ void Spiel::doPublicMausEreignis( MausEreignis &me )
 
 void Spiel::doTastaturEreignis( TastaturEreignis &te )
 {
-    if( te.verarbeitet )
+    if( te.verarbeitet || !begonnen )
         return;
     if( end )
     {
@@ -755,7 +755,7 @@ void Spiel::stknVerarbeitung()
             break;
         case 3: // spiel start
             pause = 0;
-            rendern = 1;
+            begonnen = 1;
             n->setVerarbeitet();
             break;
         case 4: // tasten stand
@@ -838,11 +838,12 @@ void Spiel::render( Bild &zRObj )
         if( s->getId() == spielerNummer )
             i = s;
     }
-    if( !i )
-        return;
     if( zRObj.setDrawOptions( 300, 0, zRObj.getBreite() - 300, zRObj.getHeight() ) )
     {
-        zRObj.addScrollOffset( (int)i->getX() - ( zRObj.getBreite() - 300 ) / 2, (int)i->getY() - zRObj.getHeight() / 2 );
+        if( !begonnen )
+            zRObj.addScrollOffset( mapSize.x - ( zRObj.getBreite() - 300 ) / 2, mapSize.y - zRObj.getHeight() / 2 );
+        else if( i )
+            zRObj.addScrollOffset( (int)i->getX() - ( zRObj.getBreite() - 300 ) / 2, (int)i->getY() - zRObj.getHeight() / 2 );
         for( auto f = feuer.getIterator(); f; f++ )
             f->render( zRObj );
         for( auto s = schalter.getIterator(); s; s++ )
@@ -870,9 +871,12 @@ void Spiel::render( Bild &zRObj )
         // TODO: render timer
         zRObj.releaseDrawOptions();
     }
-    chat->render( zRObj );
-    if( end )
-        end->render( zRObj );
+    if( begonnen )
+    {
+        chat->render( zRObj );
+        if( end )
+            end->render( zRObj );
+    }
 }
 
 void Spiel::setMapSize( int width, int height )
@@ -1704,7 +1708,7 @@ ResourceRegistry *Spiel::zResources() const
 
 int Spiel::läuft() const
 {
-    if( !rendern )
+    if( !begonnen )
         return 3;
     if( !end )
         return 2;

+ 1 - 1
StickmanWorldOnline/Spiel.h

@@ -90,7 +90,7 @@ private:
     Umlenkung *zuletztBenutzteUmlenkung;
     ResourceRegistry *resources;
     int nextId;
-    bool rendern;
+    bool begonnen;
     double rZeit;
     int gameTicks;
     int spielerAnzahl;