Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SDL Głupi błąd...

Ostatnio zmodyfikowano 2010-02-02 08:36
Autor Wiadomość
Bartaz
Temat założony przez niniejszego użytkownika
SDL Głupi błąd...
» 2010-02-01 20:10:15
Witam mam taki problem ,mam taki kod:
C/C++
#include <SDL/SDL.h>
SDL_Surface * paletka1 = NULL;
SDL_Surface * paletka2 = NULL;
SDL_Surface * tlo = NULL;
SDL_Surface * ekran = NULL;
SDL_Event zdarzenie;
SDL_Rect LudekDestination;
SDL_Rect Paletka1Destination;
SDL_Rect Paletka2Destination;
SDL_Rect TloDestination;
Uint8 * keystate = SDL_GetKeyState( NULL );
int x = 70, y = 70; //**********PALETKA 1****************
int e = 170, r = 170; //********PALETKA 2****************
int a = 30, s = 30; //*************TŁO***************
bool wyjscie = false;
int main( int argc, char * args[] )
{
   
    ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
    tlo = SDL_LoadBMP( "Grafika/Tlo.bmp" );
    paletka1 = SDL_LoadBMP( "Grafika/Paletka1.bmp" );
    paletka2 = SDL_LoadBMP( "Grafika/Paletka2.bmp" );
    //*******************************************************************************
    while( !wyjscie )
    {
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_QUIT )
            {
                wyjscie = true;
            }
        }
        if( keystate[ SDLK_RIGHT ] )
        {
            x++;
        }
        if( keystate[ SDLK_LEFT ] )
        {
           
            x--;
        }
        if( keystate[ SDLK_UP ] )
        {
            y--;
        }
        if( keystate[ SDLK_DOWN ] )
        {
            y++;
        }
        //*******************************************************************************
        Paletka1Destination.x = x;
        Paletka1Destination.y = y;
        Paletka2Destination.x = e;
        Paletka2Destination.y = r;
        TloDestination.x = a;
        TloDestination.y = s;
        SDL_BlitSurface( tlo, NULL, ekran, & TloDestination );
        SDL_BlitSurface( paletka1, NULL, tlo, & Paletka1Destination );
        SDL_BlitSurface( paletka2, NULL, tlo, & Paletka2Destination );
       
        SDL_Flip( ekran );
       
    }
   
    SDL_FreeSurface( paletka1 );
    SDL_FreeSurface( paletka2 );
    SDL_FreeSurface( tlo );
    SDL_Quit();
    return 0;
}
Wszystko ładnie działa ale gdy chce dać taką funkcję(Żeby nie było widać różowego)
to program się kompiluje ale po chwili robi się ten błąd co pisze "nie wysyłaj" itp. pewnie każdy wie o co chodzi...
Dziwne jest to ,że w bardzo podobnym programie gdzie jest tylko mniej obrazków wszystko ładnie działa.
Dlaczego?
Ta funkcja to :
SDL_SetColorKey( paletka2, SDL_SRCCOLORKEY, SDL_MapRGB(paletka2->format,255,0,255));
P-13476
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-01 21:20:58
Ok już sobie z tym poradziłem(w złym miejscu dałem tą funkcje).
Ale pojawił sie nowy problem teraz tło nie jest zamalowywane rózowym tylko kolorem paletki.
Jak temu zaradzic?
P-13478
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-01 21:29:04
P-13479
DejaVu
» 2010-02-02 02:42:59
Patrząc na kod zupełnie co innego mogę wywnioskować.
1) Rysujesz tło na ekran
2) rysujesz paletkę1 na tle (a nie na ekranie)
3) rysujesz paletkę2 na tle (a nie na ekranie)
P-13490
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-02 08:36:53
Wszytko działa dziękuje ;p
P-13492
« 1 »
  Strona 1 z 1