Warsztat.GD

Produkcja gier => Grafika 2D => Wątek zaczęty przez: X-Tech w Listopad 16, 2012, 05:16:09

Tytuł: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: X-Tech w Listopad 16, 2012, 05:16:09
Witam.



Napisałem taki kodzik zmieniając nazwy, używając nazw, które uznałem za własne, a nie zależne od SDL i jest jakiś problem, bo tutorialowy kod odpala, a ten nie. Wygląda to tak, że coś tam mrugnie i od razu się wyłącza. Kod miał wyświetlić po prostu 5 graficzek na ekranie. 4 lokował w poszczególnych częściach ekranu, a piątą na środku i po 5 sekundach programik miał się wyłączyć, ale w mojej wersji to nie działa. Kompilator nie daje żadnych errorów, a po odpaleniu jest tylko mrugnięcie i programik się wyłącza.






#include "SDL/SDL.h"
#include <string>

const int EKRAN_DL = 640;
const int EKRAN_SZ = 480;
const int EKRAN_BPP = 32;

SDL_Surface* wiadomosc = NULL;
SDL_Surface* ekran = NULL;
SDL_Surface* spodzik = NULL;


SDL_Surface* laduj_obrazek(std::string nazwapliku)
{

    SDL_Surface* zaladowany = NULL;
    SDL_Surface* zoptymalizowany = NULL;

zaladowany = SDL_LoadBMP(nazwapliku.c_str());

if (zaladowany != NULL)
{
    zoptymalizowany = SDL_DisplayFormat(zaladowany);
    SDL_FreeSurface(zaladowany);
}

return zoptymalizowany;

}


void nakladaj ( int x, int y, SDL_Surface* zrodlo, SDL_Surface* cel)
{

    SDL_Rect przesuniecie;


przesuniecie.x = x;
przesuniecie.y = y;

SDL_BlitSurface (zrodlo, NULL, cel, &przesuniecie);

}



int main (int argc, char* args[])
{

if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
{
    return 1;
}

ekran = SDL_SetVideoMode(EKRAN_DL, EKRAN_SZ, EKRAN_BPP, SDL_SWSURFACE );

if (ekran = NULL)
{
    return 1;

}

//Nazwa dla okienka gry w windows
SDL_WM_SetCaption( "CoJestDoKolerci", NULL );


wiadomosc = laduj_obrazek("hello.bmp");
spodzik = laduj_obrazek("background.bmp");


nakladaj (0,0, spodzik, ekran );
nakladaj (320,0, spodzik, ekran);
nakladaj (0,240, spodzik, ekran);
nakladaj (320,240, spodzik, ekran);

nakladaj (180, 140, wiadomosc, ekran);

if (SDL_Flip (ekran)==-1)
{
    return 1;
}



SDL_Delay(5000);



SDL_FreeSurface(wiadomosc);
SDL_FreeSurface(spodzik);

SDL_Quit();

return 0;



}
Tytuł: Odp: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: Marszal w Listopad 16, 2012, 08:02:21
if (ekran = NULL)
{
    return 1;

}

Tutaj operator przypisania? :)
Tytuł: Odp: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: Avaj w Listopad 16, 2012, 10:41:01
Tutaj operator przypisania? :)
nawet jeśli to by się do if (0) przerobiło
Tytuł: Odp: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: Marszal w Listopad 16, 2012, 10:51:12
nawet jeśli to by się do if (0) przerobiło

No tak, z tym, że potem aktualizuje ekran tym NULLem (funkcja SDL_Flip).
Tytuł: Odp: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: X-Tech w Listopad 16, 2012, 15:34:18
"=" na "=="

czyli to jest = przypisać coś
to jest == porównać.


c++ . Dzięks
Tytuł: Odp: SDL - skrypt nie wyswietla grafiki
Wiadomość wysłana przez: X-Tech w Listopad 20, 2012, 02:31:31
mhm problem rozwiązany