[SDL] Problem z menu gry.
Witam serdecznie. Tworzę grafikę i obsługę zdarzeń do gry w statki (C++). Gra posiada menu, okazuje się, że dość złożone.
Na początku pojawia się ekran z wyborem:
NEW GAME LOAD GAME END GAME
Na tym etapie wszystko gra, ponieważ jak klikam w END GAME, gra się wyłącza. LOAD GAME na razie pomijam, bo jeszcze nie go nie programowałem.
Problem zaczyna się przy NEW GAME, bo choć gdy klikam w niego pojawia się kolejny ekran z wyborem:
ATTACK MOVE
To dalej nie jest już tak jak sobie tego życzyłem. Otóż dalej w zamyśle programu jest wybór działka, czyli wyświetlenie kolejnego ekranu:
CANNON BOMBCANNON SPREADCANNON
Dopiero po tym wyborze powinny wyświetlać się mapy (gracza i komputera). Następnie gracz miałby szansę wytypować pole do ataku, program sprawdziłby to pole, odświeżyłby mapę komputera i przeszedł do części programu odpowiedzialnej za atak komputera.
Mam nadzieję, że opisałem to zrozumiale. Problem polega na tym, że po wyborze ATTACK, nie wyświetla mi się wybór działa, tylko od razu pojawiają się mapy. Pokażę wam teraz uproszczony schemat pętli wyboru:
if ( kliknąłem w ATTACK )
{
wyświetl działka do wyboru
if ( kliknąłem w CANNON )
wyświetl mapę komputera
{dalej wybieram pole, sprawdzam itp...
}}
Oczywiście np. "kliknąłem w ATTACK" rozumiem przez instrukcję:
if( event1.type == SDL_MOUSEBUTTONDOWN )
{
if( event1.button.button == SDL_BUTTON_LEFT && //SDL - JESLI ATTACK
( myszkaX1 >= attackbut.x && myszkaX1 <=
attackbut.x + attackbut.w ) &&( myszkaY1 >=
attackbut.y && myszkaY1 <= attackbut.y +
attackbut.h ) )
{
... } }
Nie wiem, może należy jakoś wyczyścić jakiś bufor myszki, by móc dokonywać następnego wyboru przez kliknięcie. Wydaje mi się, że to jakiś problem ze zdarzeniami.
Jestem laikiem w tej kwestii, więc czekam na pomocne odpowiedzi.