我的大学项目存在很大问题。 我试图在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;
}