Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

SDL2 Przyciski



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Biblioteki
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
shout



Doczy: 09 Cze 2017
Posty: 2

PostWysany: Pi Cze 09, 2017 3:07 pm  OP    Temat postu: SDL2 Przyciski Odpowiedz z cytatem Pisownia

Witam!

Mj problem polega na tym, ?e mam klas? inputManager w ktrej s? metody : KeyPressed(int key), KeyReleased(int key), ktre wygl?daj? nast?puj?co:

Kod:
bool InputManager::KeyPressed(int key)
{
if (event.key.state == SDL_PRESSED && event.key.repeat == 0)
{
if (event.key.keysym.sym == key )
{
return true;
}
}
return false;
}

bool InputManager::KeyReleased(int key)
{
if (event.key.state == SDL_RELEASED && event.key.repeat == 0)
{
if (event.key.keysym.sym == key)
{
return true;
}
}
return false;
}


Mam te? 2 klasy, ktre wy?wietlaj? obraz. W ka?dej z nich jest metoda Update(), ktra sprawdza czy przycisk jest wci?ni?ty (np. esc), je?li tak zmieni obrazek z klasy1, na obrazek z klasy2.

Problem polega na tym, ?e gdy przytrzymam esc obrazki b?d? si? ci?gle zmienia? mi?dzy sob? (22 razy dla ka?dej klasy). Chcia?bym zrobi? to w ten sposb, ?e gdy przycisn? i przytrzymam esc wtedy z klasy1 zmieni si? na klase2 i zatrzyma, i dopiero wtedy kiedy puszcz? i przycisn? ponownie zmieni si? na klase1. Tutaj mo?e filmik jak to wygl?da : https://www.youtube.com/watch?v=-PlOogBonU0&feature=youtu.be
Pozdrawiam
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
lethern



Doczy: 09 Pa 2007
Posty: 1115

PostWysany: Pi Cze 09, 2017 3:51 pm      Temat postu: Odpowiedz z cytatem Pisownia

Zapisuj stan, np. w postaci flagi, i obs?uguj to jako przej?cia z jednego stanu w inny stan? Wydaje is?, ?e rozr?niasz dwa stany (wy?wietlanie z jednej lub drugiej klasa)

(Bo w tym momencie - tak jak zrozumia?em Twj opis problemu - robisz to bez zapami?tania jakiego? stanu - ile razy z?apie event, tyle razy wykona si? akcja - gdyby? obs?ugiwa? stan, to mg?by? akcj? wykonywa? tylko w okre?lonym stanie. Je?li dobrze odczyta?em, to zaczynasz w stanie "rysuje klasa A", wci?ni?cie klawisza powoduje przej?cie w stan "rysuje klasa B", puszczenie klawisza powoduje powrt do stanu "rysuje klasa A")

Jednak patrz?c na za??czony kod, to nie mam poj?cia co tam si? dzieje i dlaczego co? mo?e nie dzia?a?, wi?c mj opis mo?e si? mija? z rozwi?zaniem...
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email
shout



Doczy: 09 Cze 2017
Posty: 2

PostWysany: Pi Cze 09, 2017 4:08 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Nie chodzi mi tutaj o to, ?e gdy przytrzymam klasa1 zmieni si? na klase2, a jak puszcz? to znw na klase1, tylko o to, ?e gdy przytrzymam esc, wtedy z klasy1 zmieni si? na klase2 i jak pusz? to nadal jest ta klasa2, a? do momentu, kiedy znw klikn? esc. Mo?e s?abo to opisa?em w tym momencie... Przyk?ad: gra cs go, jestem ju? na mapie np. de_dust2 chce zmie? sobie np. g?o?no??, klikam esc i w??czaj? mi si? opcje, potem znw klikam esc i wracam do gry. Nie jest tak, ?e jak przytrzymam esc obraz zaczyna mi miga? z opcji do gry, z gry do opcji itd.
Pyta?em si? kiedy? takiej osoby, dosta?em wtedy odpowied?, ?e powinienem u?y? zmiennej boolean, ale prbowa?em wszystkich opcji z t? zmienn?, nawet takich, ktre nie mia?y ?adnego sensu.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
lethern



Doczy: 09 Pa 2007
Posty: 1115

PostWysany: Pi Cze 09, 2017 5:18 pm      Temat postu: Odpowiedz z cytatem Pisownia

Wci?ni?ty Esc, wykonujesz akcj?, wci?ni?ty drugi raz, wykonujesz inn? akcj? - nie rozumiem gdzie mo?e le?e? problem? Je?li nie tu, to id?c dalej
Mo?e masz problem z okre?leniem "wci?ni?ty klawisz", bo mo?e "pressed" to nie jest event okre?laj?cy wci?ni?cie klawisza ktre tu mam na my?li, tylko zachowuje si? jako "trzymanie klawisza". Je?li nie masz obs?ugi eventa pojedynczego wci?ni?cia klawisza, to potrzebujesz to jako? obej?? - pierwszy press key jest wci?ni?ciem klawisza, kolejne press key s? ignorowane tak d?ugo a? pojawi si? release key

Ponownie, prbuje zrozumie? jak ten problem si? pojawia, ale to nie pasuje do kodu ktry zamie?ci?e?
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Biblioteki Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.11162 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |