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
Administrator
Zitat von »"Abcd1234"«
Gibt es evtl auch ältere Karten, die nichtmal mit 4096x4096 Pixel zuerecht kommen?
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 |
SDL_LoadBmp |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
// Load // // Aufgabe: Animiertes Sprite laden // void CSprite::Load (const string sFilename, int NumFrames, int FrameWidth, int FrameHeight) { // Bitmap laden Load (sFilename); // Rect für Animationsphase initialisieren m_NumFrames = NumFrames; m_FrameWidth = FrameWidth; m_FrameHeight = FrameHeight; m_FrameRect.w = FrameWidth; m_FrameRect.h = FrameHeight; m_NumFramesX = m_pImage->w / m_FrameWidth; } // Load // ======================================== // Render // // Aufgabe: Ausschnitt des Sprites rendern (Animationsphase) // void CSprite::Render (float fFrameNumber) { // Ausschnitt der aktuellen Animationsphase berechnen // // Spalte berechnen int Column = static_cast<int>(fFrameNumber)%m_NumFramesX; // Zeile berechnen int Row = static_cast<int>(fFrameNumber)/m_NumFramesX; // Rect berechnen m_FrameRect.x = Column * m_FrameWidth; m_FrameRect.y = Row * m_FrameHeight; // Ausschnitt rendern SDL_BlitSurface (m_pImage, &m_FrameRect, m_pScreen, &m_Rect); } // Render |
Administrator
Werbeanzeige