Problem bei Tiling [C++/SDL]

SFandler

Grünschnabel
Hallo!

Ich habe mich gerade auf tutorials.de registriert! :D
Ich beschäftige mich gerne mit C++ und SDL (kleine Spiele machen).
Leider bin ich noch ziemlicher SDL-Anfänger und weiß manchmal nicht weiter ...

Ich arbeite an einem kleinen StickFight Spiel, in dem man
zu 4. an einem PC spielen kann!

Ich habe heute erst begonnen; Ich arbeite gerade an der Lauf-Animation ...
Die Animation besteht aus 4 verschiedenen Bildern, die ich alle in eine Datei gespeichert habe (*.bmp).
Mit dem sogenannten Tiling (habe ich erst gestern auf LazyFoo.net gelernt :rolleyes:) bringe ich die einzelnen Bilder auf den Bildschirm, aber es funktioniert nicht so, wie ich es
mir vorgestellt habe ..

Bei der 2. und 3. Animation wird mehr als der ausgewählte Bereich von der .bmp Datei
auf den Bildschirm geblittet :eek:

Hier der Code:
Code:
// 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 Datei mit den Bildern habe ich angehängt (hoffentlich funktioniert es, ich kenne mich noch nicht aus :rolleyes:)

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!
Ich habe keine Lust, jedes Bild extra in eine Datei zu speichern :p

Ich hoffe, ihr versteht meine Frage!

Vielen Dank im Vorraus! :)


----------------------------
Edit:
Ich habe vergessen zu erwähnen, dass dieses Problem bei beiden Richtungen auftritt. (Wenn der Stick nach links UND rechts läuft)
Wenn das 2. und 3. Bild geblittet wird, kommt das Bild, rechts vom eigentlichen, auch auf den Bildschirm ...
----------------------------

Das ist die Datei, die die 4 Schritte für die Animation enthält und die Ausgabe des 2. Schrittes:
 

Anhänge

Zuletzt bearbeitet:
Zurück