Blablabla99pl Temat założony przez niniejszego użytkownika |
[SDL]Jak zrobić aby program impretował kliknięcie klawisza jako 1 kliknięcie klawisza w pętli? » 2014-07-02 16:16:51 Witam tak jak w temacie mam problem z pętlą czy ma ktoś pomysł jak to Naprawić? |
|
Pshepo |
» 2014-07-02 16:29:35 Mógłbyś rozwinąć problem. Nie bardzo rozumiem co masz na myśli przez interpretację klawisza w pętli? ;) |
|
Blablabla99pl Temat założony przez niniejszego użytkownika |
Ok » 2014-07-02 16:32:40 Chodzi mi o to ,że tworzę grę i potrzebuję użyć klawisza w pętli ale musi on być uznany za 1 kliknięcie klawisza a nie kilka kliknięć. |
|
Pshepo |
» 2014-07-02 16:42:02 https://wiki.libsdl.org/SDL_KeyboardEvent
możesz albo pokombinować ze stanami eventu albo skorzystac z funkcji SDL_GetKeyState() |
|
Blablabla99pl Temat założony przez niniejszego użytkownika |
Hmmm » 2014-07-02 16:58:09 Mnie nadal to nie działa ale wstawie kawałek kodu: 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_UP ] ) { if( PPostaciNF == 1 ) { PPostaci.y = 165; PPostaciNF = 2; } if( PPostaciNF == 2 ) { PPostaci.y = 105; PPostaciNF = 3; } } if( Klawisz[ SDLK_DOWN ] ) { if( PPostaciNF == 3 ) { PPostaci.y = 165; PPostaciNF = 2; } if( PPostaciNF == 2 ) { PPostaci.y = 235; PPostaciNF = 1; } } if( NRPostaci == 0.1 ) { SDL_BlitSurface( Normal_Boy, NULL, Ekran, & PPostaci ); } SDL_Flip( Ekran ); } return 0; }
|
|
SeaMonster131 |
» 2014-07-02 17:12:08 Jak są eventy lub funkcje do tego stworzone, to z nich skorzystaj. Jak nie, to: bool click = false;
if( jakisKlawisz && !click ) { ... click = true; }
if( !jakisKlawisz && click ) click = false;
|
|
Blablabla99pl Temat założony przez niniejszego użytkownika |
Yhhhhhhhhhhhh :( » 2014-07-02 18:11:52 Takie coś nadal nie pomogło : 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_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; }
:( oh |
|
pekfos |
» 2014-07-02 18:16:04 Dlaczego po prostu nie obsłużysz zdarzenia SDL_KEYDOWN..? To robi dokładnie to, czego chcesz. |
|
« 1 » 2 3 |