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

SDL i pole formularza

Ostatnio zmodyfikowano 2010-03-11 10:29
Autor Wiadomość
Szadziu
Temat założony przez niniejszego użytkownika
SDL i pole formularza
» 2010-03-10 17:46:02
Mam pytanie, jak w bibliotece SDL stworzyć formularz lub listę. Chodzi mi o to żeby wyglądało to mniej więcej tak

Imię:[miejsce do wpisania]
Płeć:[Rozwijana lista do wybrania "M"/"K"
P-14845
Thud
» 2010-03-10 19:51:57
Lazy Foo Ci powie!
Na poważnie, tam jest opisane, jak można zrobić input, poszukaj...
P-14863
Szadziu
Temat założony przez niniejszego użytkownika
» 2010-03-10 21:27:46
C/C++
#include <SDL.h>
///////////////////////////////////////////////////////////////////////
SDL_Surface * ekran = NULL;
SDL_Surface * tlo = NULL;
SDL_Surface * koniec = NULL;
SDL_Surface * now = NULL;
SDL_Surface * load = NULL;
SDL_Surface * autorzy = NULL;
SDL_Color kolor;
SDL_Rect dprst[ 4 ];
SDL_Rect przycisk;
bool wyjscie = false;
SDL_Event zdarzenie;
int myszkaX, myszkaY;
///////////////////////////////////////////////////////////////////////
int main( int argc, char * args[] )
{
    ///////////////////////////////////////////////////////////////////////
    dprst[ 0 ].x = 350;
    dprst[ 0 ].y = 450;
    dprst[ 1 ].x = 350;
    dprst[ 1 ].y = 400;
    dprst[ 2 ].x = 350;
    dprst[ 2 ].y = 350;
    dprst[ 3 ].x = 350;
    dprst[ 3 ].y = 300;
    przycisk.w = 100;
    przycisk.h = 36;
    kolor.r = 0;
    kolor.g = 0;
    kolor.b = 0;
    /////////////////////////////////////////////////////////////////////
    SDL_Init( SDL_INIT_EVERYTHING );
    ekran = SDL_SetVideoMode( 800, 600, 32, SDL_SWSURFACE | SDL_FULLSCREEN );
    tlo = SDL_LoadBMP( "tlo.bmp" );
    koniec = SDL_LoadBMP( "koniec.bmp" );
    load = SDL_LoadBMP( "load.bmp" );
    now = SDL_LoadBMP( "now.bmp" );
    autorzy = SDL_LoadBMP( "autorzy.bmp" );
   
    while( !wyjscie )
    {
       
        SDL_BlitSurface( tlo, NULL, ekran, NULL );
        SDL_BlitSurface( now, NULL, ekran, & dprst[ 3 ] );
        SDL_BlitSurface( load, NULL, ekran, & dprst[ 2 ] );
        SDL_BlitSurface( autorzy, NULL, ekran, & dprst[ 1 ] );
        SDL_BlitSurface( koniec, NULL, ekran, & dprst[ 0 ] );
        SDL_Flip( ekran );
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_MOUSEMOTION )
            {
                myszkaX = zdarzenie.motion.x;
                myszkaY = zdarzenie.motion.y;
            }
           
            if( zdarzenie.type == SDL_MOUSEBUTTONDOWN )
            {
                if( zdarzenie.button.button == SDL_BUTTON_LEFT &&
                ( myszkaX >= dprst[ 0 ].x && myszkaX <=
                dprst[ 0 ].x + przycisk.w ) &&( myszkaY >=
                dprst[ 0 ].y && myszkaY <= dprst[ 0 ].y +
                przycisk.h ) )
                {
                    wyjscie = true;
                }
            }
            if( zdarzenie.key.keysym.sym == SDLK_ESCAPE ) wyjscie =
                 true;
           
        }
    }
   
    SDL_Quit();
    SDL_FreeSurface( tlo );
    SDL_FreeSurface( now );
    SDL_FreeSurface( ekran );
    SDL_FreeSurface( load );
    SDL_FreeSurface( autorzy );
    SDL_FreeSurface( koniec );
    return 0;
}
Mam problem z tym kodem, wszystko działa bardzo dobrze, jednak gdy naciskam na guzik exit, program się wyłącza tak jak powinien, jednak po chwili pojawia się okienko: "Program przestał działać". Przez co muszę go wyłączać w menadżerze urządzeń

Gdzie jest błąd?
P-14876
malan
» 2010-03-10 23:09:24
SDL_FreeSurface(tlo);
SDL_FreeSurface(now);
SDL_FreeSurface(ekran);
SDL_FreeSurface(load);
SDL_FreeSurface(autorzy);
SDL_FreeSurface(koniec);
SDL_Quit();
Może tak?
P-14883
Szadziu
Temat założony przez niniejszego użytkownika
» 2010-03-11 10:29:51
Fakt... dzięki;p
P-14895
« 1 »
  Strona 1 z 1