Mein Problem ist, dass mein Bild zwar im ersten durchgang der CGame::Run while Schleife geladen und auch angezeigt wird
aber danach schlägt das laden der Grafik fehl...
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#ifndef LOGO_HPP
#define LOGO_HPP
#include <SDL_image.h>
class CLogo
{
public:
CLogo ();
~CLogo ();
void SetTargetImage(int XPos, int YPos);
SDL_Rect GetTargetImage() {return (m_grTargetImage);};
SDL_Rect GetPictureImage () {return (m_grPictureImage);};
SDL_Surface *GetImage () {return (m_pImage);};
private:
SDL_Surface *m_pImage;
SDL_Rect m_grPictureImage;
SDL_Rect m_grTargetImage;
};
#endif
|
|
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
|
#include "Logo.hpp"
CLogo::CLogo () :
m_pImage (IMG_Load("picture/logo.jpg"))
{
if(m_pImage == NULL)
{exit (2);}
m_grPictureImage.x = 0;
m_grPictureImage.y = 0;
m_grPictureImage.w = m_pImage->w;
m_grPictureImage.h = m_pImage->h;
}
CLogo::~CLogo ()
{
SDL_FreeSurface(m_pImage);
}
void CLogo::SetTargetImage(int XPos, int YPos)
{
m_grTargetImage.x = XPos;
m_grTargetImage.y = YPos;
}
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
... //CFramework.cpp ausschnit
void CFramework::Render ()
{
boost::shared_ptr<CLogo> Logo(new CLogo);
Logo->SetTargetImage(10, 20);
SDL_BlitSurface(Logo->GetImage (), 0, m_pScreen, 0);
}
...
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
... // CGame.cpp ausschnit
void CGame::Run ()
{
while (m_bGameRun == true)
{
ProcessEvents ();
g_pFramework->Update ();
g_pFramework->Clear ();
g_pFramework->Render ();
g_pFramework->Flip ();
}
}
...
|
_______________________________________________________________________
...
Der Thread 'Win32-Thread' (0xdbc) hat mit Code 2 (0x2) geendet.
Der Thread 'Win32-Thread' (0x1290) hat mit Code 2 (0x2) geendet.
Der Thread 'Win32-Thread' (0xfe0) hat mit Code 2 (0x2) geendet.
Der Thread 'Win32-Thread' (0x68c) hat mit Code 2 (0x2) geendet.
Der Thread 'Win32-Thread' (0x620) hat mit Code 2 (0x2) geendet.
Das Programm "[684] Next 0.1.exe: Systemeigen" wurde mit Code 2 (0x2) beendet.