Tiling arbeitet nicht richtig? [C++/SDL]



  • Hallo!
    Ich bin's wieder mal! 😞

    Ich arbeite gerade an einem StickFight Spiel und weiß nicht, was ich bei der
    Lauf-Animation falsch mache!

    Die Animation besteht aus 4 verschiedenen Bildern, die ich alle in eine Datei gespeichert habe (*.bmp).
    Mit dem sogenannten Tiling und BlitSurface bringe ich die einzelnen Bilder auf den Bildschirm, aber es funktioniert nicht
    so, wie ich es mir vorgestellt habe ...
    Es sollte immer nur ein Stick auf dem Bild zu sehen sein, aber es sind immer 2!
    Aber nur ein Bild... Das heißt, irgendwie wird mehr ausgegeben, als bei den
    STICK_Rect's angegeben ist ...

    // Koordinaten der 4 Schritte der Lauf-Animation:
    SDL_Rect STICK_Rect1={0,0,108,86};
    SDL_Rect STICK_Rect2={111,0,220,86};
    SDL_Rect STICK_Rect3={223,0,326,86};
    SDL_Rect STICK_Rect4={329,0,425,86};
    
    //Funktion zum ausgeben der Bilder:
    void applytile(int x,int y,SDL_Surface* source,SDL_Surface* destination,SDL_Rect *box) {
        SDL_Rect offset;
        offset.x=x; offset.y=y;
        SDL_BlitSurface(source,box,destination,&offset); }
    
    //Und das hier ist der Funktionsaufruf in der Main-Funktion: 
    if (runframe==1) { applytile(x,y,stickimage,screen,&STICK_Rect1); runframe++;  } else
    if (runframe==2) { applytile(x,y,stickimage,screen,&STICK_Rect2); runframe++;  } else
    if (runframe==3) { applytile(x,y,stickimage,screen,&STICK_Rect3); runframe++;  } else
    if (runframe==4) { applytile(x,y,stickimage,screen,&STICK_Rect4); runframe=1;  }
    

    Die STICK_Rect1, STICK_Rect2,STICK_Rect3 und STICK_Rect4 habe ich genau abgemessen und daran dürfte mein Fehler nicht liegen!

    Könnte sich das vielleicht jemand genauer ansehen? Würde mir sehr helfen!

    Vielen Dank im Voraus!

    Lg
    SFandler



  • Problem gelöst!

    Ich habe die Höhe und Breite der SDL_Rect falsch gesetzt ...

    Lg
    SFandler


Anmelden zum Antworten