Hej,
det är så att jag har stött på ett problem nu och jag tror jag har stirrat mig blind på koden och hittar inget fel verkar det som heller
Problemet som uppstår är att bilderna visas som jag vill att dom ska göra, men försvinner sedan helt utan anledning. (eller ja, nån anledning lär det ju finnas)
void Game::OnRender()
{
SDL_Rect Rect;
Rect.x = 0;
Rect.y = 0;
Rect.w = screen.GetScreenWidth();
Rect.h = screen.GetScreenHeight();
SDL_FillRect(surf_display, &Rect, 0);
switch(screen.GetCurrentScreen())
{
case 0:
{
// Splash Screen
SplashScreen splash;
splash.OnRender(surf_display, &screen);
break;
}
case 1:
{
// Main Menu Screen
MainMenu curr_screen;
curr_screen.OnRender(surf_display);
break;
}
default:
{
break;
}
}
SDL_Flip(surf_display);
}
där är min renderings event kod, jag initierar spelet genom att sätta screen till 0.
screen 0 visas, sen efter 5 sekunder så byts screen till screen 1, och screen 1 visas.
SplashScreen kod:
SplashScreen::SplashScreen()
{
background = Graphics::OnLoad("./Data/GFX/SplashScreen.png");
}
void SplashScreen::OnRender(SDL_Surface *surf_display, Screen *screen)
{
if(surf_display == NULL || background == NULL)
{
return;
}
Graphics::OnDraw(surf_display, background, 0, 0);
if(SDL_GetTicks() < 5000)
{
}
else
{
screen->MenuScreen();
}
}
void SplashScreen::OnCleanup()
{
SDL_FreeSurface(background);
}
MainMenu kod:
MainMenu::MainMenu()
{
background = Graphics::OnLoad("./Data/GFX/MenuBackground.png");
Menu_Campaign = NULL;
Menu_Tutorial = NULL;
Menu_Options = NULL;
Menu_Credits = NULL;
Menu_Exit = NULL;
}
void MainMenu::OnRender(SDL_Surface *surf_display)
{
if(surf_display == NULL || background == NULL)
{
return;
}
Graphics::OnDraw(surf_display, background, 0, 0);
}
void MainMenu::OnCleanup()
{
SDL_FreeSurface(background);
SDL_FreeSurface(Menu_Campaign);
SDL_FreeSurface(Menu_Tutorial);
SDL_FreeSurface(Menu_Options);
SDL_FreeSurface(Menu_Credits);
SDL_FreeSurface(Menu_Exit);
}
Det som förbryllar mig mest är att allt verkar ju fungera bra, men sen helt "random" (skulle jag vilja säga) så blir MainMenu screen helt svart, har tagit tid på det och det är lite olika hela tiden också. Ibland 20 sekunder och ibland ända upp till 1 minut.
Använder SDL_image, SDL och SDLmain libs bara, har alla DLL:er i mappen också.
Kan det ha något att göra med processorn?
Maskinen jag sitter på är:
Intel Core2 Duo E7400 2.80GHz
4GB Ram, 64-bits Windows 7
nVidia 9800GT grafikkort