У меня большая проблема с моим университетским проектом.
Я пытался сделать простую игру в Allegro5, но я остановился на создании главного меню.
У меня есть базовый код, но на 4 возможности: начать игру, настройки, кредиты, выход. Я вижу только один из них (выход). Не знаю, как это исправить, можешь мне помочь?
///////////// MENU
string menu[4] = { "Start Game", "Options", "Credits", "Exit" };
while (!quit)
{
ALLEGRO_EVENT ev;
al_wait_for_event(event_queue, &ev);
if (ev.type == ALLEGRO_EVENT_TIMER)
{
redraw = true;
}
if (ev.type == ALLEGRO_EVENT_KEY_DOWN)
{
switch (ev.keyboard.keycode)
{
case ALLEGRO_KEY_UP:
checked--;
break;
case ALLEGRO_KEY_DOWN:
checked++;
break;
case ALLEGRO_KEY_ESCAPE:
quit = true;
break;
case ALLEGRO_KEY_ENTER:
active = true;
break;
}
}
if (checked < 0) //JAK NAM WYJEDZIE PONIZEJ ZERA TO USTAWIAMY NA 3 (ZAPETLA SIE MENU, JAKBYS CHCIAL ZABLOKOWAC TO DAJ NA 0)
{
checked = 3;
}
if (checked > 3)
{
checked = 0;
}
else if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
{
break;
}
**if (redraw && al_is_event_queue_empty(event_queue)) // JEZELI NIE WYKRYWA ZADNEGO RUCHU TO
{
redraw = false; // PRZERYSOWANIE WYNOSI 0
al_clear_to_color(al_map_rgb(0, 0, 0));
for (int i = 0; i < 4; i++)
{
int color;
if (i == checked)
{
color = 255;
}
else
{
color = 11;
}
al_draw_bitmap(mmenu, 0, 0, NULL);
al_draw_text(font, al_map_rgb(123, color, 45), 50, i * 60, NULL, menu[i].c_str()); // I PISZEMY TEKST
}
}
/*else if () // JEDNAK JAK ZOSTANIE WYKRYTY RUCH TO
{
redraw = true; // NASTĘPUJE PRZERYSOWANIE BITMAPY ZE ZMIENIONA OPCJA MENU
}*/**
al_flip_display();
}al_destroy_display(display);
al_destroy_timer(timer);
al_destroy_bitmap(mmenu);
al_destroy_event_queue(event_queue);
return 0;
}
Задача ещё не решена.