Add fullscreen mode support.
This commit is contained in:
@@ -113,29 +113,32 @@ void handle_event() {
|
||||
ALLEGRO_EVENT evnt;
|
||||
al_wait_for_event(event_queue, &evnt);
|
||||
|
||||
switch(evnt.type)
|
||||
do
|
||||
{
|
||||
case ALLEGRO_EVENT_TIMER:
|
||||
redraw = 1;
|
||||
break;
|
||||
case ALLEGRO_EVENT_DISPLAY_CLOSE:
|
||||
run = 0;
|
||||
break;
|
||||
case ALLEGRO_EVENT_KEY_DOWN:
|
||||
if(evnt.keyboard.keycode == ALLEGRO_KEY_H)
|
||||
show_help = !show_help;
|
||||
else if(evnt.keyboard.keycode == ALLEGRO_KEY_I)
|
||||
show_info = !show_info;
|
||||
else if(evnt.keyboard.keycode == ALLEGRO_KEY_Q ||
|
||||
evnt.keyboard.keycode == ALLEGRO_KEY_ESCAPE)
|
||||
switch(evnt.type)
|
||||
{
|
||||
case ALLEGRO_EVENT_TIMER:
|
||||
redraw = 1;
|
||||
break;
|
||||
case ALLEGRO_EVENT_DISPLAY_CLOSE:
|
||||
run = 0;
|
||||
else
|
||||
set_key(evnt.keyboard.keycode, 1);
|
||||
break;
|
||||
case ALLEGRO_EVENT_KEY_UP:
|
||||
set_key(evnt.keyboard.keycode, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ALLEGRO_EVENT_KEY_DOWN:
|
||||
if(evnt.keyboard.keycode == ALLEGRO_KEY_H)
|
||||
show_help = !show_help;
|
||||
else if(evnt.keyboard.keycode == ALLEGRO_KEY_I)
|
||||
show_info = !show_info;
|
||||
else if(evnt.keyboard.keycode == ALLEGRO_KEY_Q ||
|
||||
evnt.keyboard.keycode == ALLEGRO_KEY_ESCAPE)
|
||||
run = 0;
|
||||
else
|
||||
set_key(evnt.keyboard.keycode, 1);
|
||||
break;
|
||||
case ALLEGRO_EVENT_KEY_UP:
|
||||
set_key(evnt.keyboard.keycode, 0);
|
||||
break;
|
||||
}
|
||||
} while(al_get_next_event(event_queue, &evnt));
|
||||
}
|
||||
|
||||
int key_is_down(int code) {
|
||||
|
||||
19
src/main.c
19
src/main.c
@@ -38,6 +38,7 @@ const char *help =
|
||||
"P - pause/unpause the simulation\n"
|
||||
"I - show/hide simulation information\n"
|
||||
"H - show/hide this help information\n"
|
||||
"F - toggle fullscreen\n"
|
||||
"Q/ESC - quit";
|
||||
|
||||
const char *info_format =
|
||||
@@ -107,6 +108,7 @@ int main() {
|
||||
show_info = 1;
|
||||
int paused = 0;
|
||||
int old_paused = 0;
|
||||
int just_toggled_fullscreen = 0;
|
||||
while(run)
|
||||
{
|
||||
handle_event();
|
||||
@@ -127,6 +129,23 @@ int main() {
|
||||
ship_update(&ship);
|
||||
}
|
||||
|
||||
if (key_is_down(KEY_FULLSCREEN) && !just_toggled_fullscreen)
|
||||
{
|
||||
if(al_get_display_flags(display) & ALLEGRO_FULLSCREEN_WINDOW)
|
||||
{
|
||||
al_set_display_flag(display, ALLEGRO_FULLSCREEN_WINDOW, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
al_set_display_flag(display, ALLEGRO_FULLSCREEN_WINDOW, 1);
|
||||
}
|
||||
just_toggled_fullscreen = 1;
|
||||
}
|
||||
else if (!key_is_down(KEY_FULLSCREEN) && just_toggled_fullscreen)
|
||||
{
|
||||
just_toggled_fullscreen = 0;
|
||||
}
|
||||
|
||||
al_clear_to_color(al_map_rgb(0, 0, 0));
|
||||
ship_draw(&ship);
|
||||
if(show_info)
|
||||
|
||||
Reference in New Issue
Block a user