Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

25.06.2012, 12:45

C-/C++-Quelltext

1
m_pSpriteExplosion->Load ("Data/Player.bmp", 11, 64,64);


daraus schließe ich, dass deine Explosion 11 Frames hat, oder? Wenn das so ist, verstehe ich nicht, warum du nicht nach 11 Frames sondern nach 16 isAlive = false setzt?

C-/C++-Quelltext

1
2
if (m_fAnimPhaseE >= 16.0f)// müsste es nicht 11.f heißen?
       m_bIsAliveE = false;


Außerdem ist der Dateiname "Data/Player.bmp" für eine Explosion eigenartig.

Zitat

Ich denke du rufst die Draw Funktion der Animation nur einmal auf, und zwar nur wenn es kollidiert. Du musst die Funktion immer aufrufen, aber du solltest eine Boolean-Variable einbauen, damit die Animation nicht immer gezeichnet wird.


ja, diese bool variable ist ja dann die isAlive-Variable, so wie es aussieht.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

12

25.06.2012, 15:49

Wenn er in jedem Frame einen Animationsframe durch geht kann es auch sein, dass er 300 FPS hat und die Animation einfach zu schnell zuende ist. Hier gilt das selbe wie bei der Bewegung: Mach es unabhängig von den FPS!
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?