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

[SDL]Jak zrobić aby program impretował kliknięcie klawisza jako 1 kliknięcie klawisza w pętli?

Ostatnio zmodyfikowano 2014-08-06 09:55
Autor Wiadomość
Blablabla99pl
Temat założony przez niniejszego użytkownika
:(
» 2014-07-02 18:26:44
Nadal nic albo to ja spiepszyłem ten kawałłek kodu bo generalnie chodzi o 3 fale na różnych wysokościach i kliknięcie strzałki w górę ma podnieść postać na wyższą falę lub niższą przy wciśnięciu strzałki w dół.
C/C++
int Gra_Trwa()
{
    Lmwg = 0;
    sprintf( mwg, "%i", Lmwg );
    bool Jest = true;
    while( Jest )
    {
       
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_QUIT )
            {
                Jest = false;
            }
            if( zdarzenie.type == SDL_MOUSEMOTION )
            {
                mx = zdarzenie.motion.x;
                my = zdarzenie.motion.y;
            }
        }
        SDL_BlitSurface( Tlo_Gra, NULL, Ekran, NULL );
        Monety_W_Grze = TTF_RenderText_Solid( font, mwg, kolor );
        SDL_BlitSurface( Monety_W_Grze, NULL, Ekran, & Monety_W_GrzeI );
        if( zdarzenie.type == SDL_KEYDOWN )
        {
            if( Klawisz[ SDLK_UP ] && !click )
            {
                if( PPostaciNF == 1 )
                {
                    PPostaci.y = 165;
                    PPostaciNF = 2;
                }
                if( PPostaciNF == 2 )
                {
                    PPostaci.y = 105;
                    PPostaciNF = 3;
                }
                click = true;
            }
            if( !Klawisz[ SDLK_UP ] && click )
            {
                click = false;
            }
            if( Klawisz[ SDLK_DOWN ] && !click1 )
            {
                if( PPostaciNF == 3 )
                {
                    PPostaci.y = 165;
                    PPostaciNF = 2;
                }
                if( PPostaciNF == 2 )
                {
                    PPostaci.y = 235;
                    PPostaciNF = 1;
                }
                click1 = true;
            }
            if( !Klawisz[ SDLK_DOWN ] && click1 )
            {
                click1 = false;
            }
        }
        if( NRPostaci == 0.1 )
        {
            SDL_BlitSurface( Normal_Boy, NULL, Ekran, & PPostaci );
        }
        SDL_Flip( Ekran );
    }
    return 0;
}
P-113129
pekfos
» 2014-07-02 18:30:34
Warunek do zdarzenia ma być w pętli zdarzeń, w żadne click nie musisz się bawić, a wciśnięty klawisz masz zapisany w zdarzeniu.
P-113130
Blablabla99pl
Temat założony przez niniejszego użytkownika
:(
» 2014-07-02 18:41:04
Nadal nic może ktoś się przyjżeć ogólnie poprawności kodu?
C/C++
int Gra_Trwa()
{
    Lmwg = 0;
    sprintf( mwg, "%i", Lmwg );
    bool Jest = true;
    while( Jest )
    {
       
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_QUIT )
            {
                Jest = false;
            }
            if( zdarzenie.type == SDL_MOUSEMOTION )
            {
                mx = zdarzenie.motion.x;
                my = zdarzenie.motion.y;
            }
            if( Klawisz[ SDLK_UP ] && zdarzenie.type == SDL_KEYDOWN )
            {
                if( PPostaciNF == 1 )
                {
                    PPostaci.y = 165;
                    PPostaciNF = 2;
                }
                if( PPostaciNF == 2 )
                {
                    PPostaci.y = 105;
                    PPostaciNF = 3;
                }
            }
            if( Klawisz[ SDLK_DOWN ] && zdarzenie.type == SDL_KEYDOWN )
            {
                if( PPostaciNF == 3 )
                {
                    PPostaci.y = 165;
                    PPostaciNF = 2;
                }
                if( PPostaciNF == 2 )
                {
                    PPostaci.y = 235;
                    PPostaciNF = 1;
                }
            }
        }
        SDL_BlitSurface( Tlo_Gra, NULL, Ekran, NULL );
        Monety_W_Grze = TTF_RenderText_Solid( font, mwg, kolor );
        SDL_BlitSurface( Monety_W_Grze, NULL, Ekran, & Monety_W_GrzeI );
        if( NRPostaci == 0.1 )
        {
            SDL_BlitSurface( Normal_Boy, NULL, Ekran, & PPostaci );
        }
        SDL_Flip( Ekran );
    }
    return 0;
}
P-113131
pekfos
» 2014-07-02 18:43:21
P-113132
Blablabla99pl
Temat założony przez niniejszego użytkownika
No to chyba nie rozwiążę tego problemu :(
» 2014-07-02 18:45:32
Mam 13 lat cały czas kombinuje i kombinuje i shiet :(
P-113133
Blablabla99pl
Temat założony przez niniejszego użytkownika
:(
» 2014-07-02 19:09:01
No nie próbowałem już chyba wszystkiego i nic :( no chyba ,że to problem w kodzie :/ Już nie wiem co z tym zrobić :( Może po prostu zrobie sterowanie numeryczną klawiaturą tzn np 1 ,4 ,7 odpowiadają falą?
P-113134
Witold
» 2014-07-02 19:29:38
if( zdarzenie.type == SDL_KEYDOWN && zdarzenie.key.keysym.sym == SDLK_UP )
P-113135
Blablabla99pl
Temat założony przez niniejszego użytkownika
pffffffffffffffffff...
» 2014-07-02 20:28:36
Ok ratunku już ni ma :( Zostało mi tylko przebudowanie tego shiet'u żeby dało się grać :/ Oto kod:
C/C++
int Gra_Trwa()
{
    Lmwg = 0;
    sprintf( mwg, "%i", Lmwg );
    bool Jest = true;
    while( Jest )
    {
       
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_QUIT )
            {
                Jest = false;
            }
            if( zdarzenie.type == SDL_MOUSEMOTION )
            {
                mx = zdarzenie.motion.x;
                my = zdarzenie.motion.y;
            }
        }
        SDL_BlitSurface( Tlo_Gra, NULL, Ekran, NULL );
        Monety_W_Grze = TTF_RenderText_Solid( font, mwg, kolor );
        SDL_BlitSurface( Monety_W_Grze, NULL, Ekran, & Monety_W_GrzeI );
        if( Klawisz[ SDLK_RIGHT ] )
        {
            PPostaci.y = 235;
            p = 1;
        }
        if( Klawisz[ SDLK_DOWN ] )
        {
            PPostaci.y = 165;
            p = 2;
        }
        if( Klawisz[ SDLK_LEFT ] )
        {
            PPostaci.y = 105;
            p = 3;
        }
        if( NRPostaci == 0.1 )
        {
            SDL_BlitSurface( Normal_Boy, NULL, Ekran, & PPostaci );
        }
        SDL_Flip( Ekran );
    }
    return 0;
}
P-113140
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona