Compare commits
3 Commits
fd9fd453b3
...
b842bd0095
| Author | SHA1 | Date | |
|---|---|---|---|
| b842bd0095 | |||
| bb28285794 | |||
| 6621decc09 |
@@ -113,29 +113,32 @@ void handle_event() {
|
|||||||
ALLEGRO_EVENT evnt;
|
ALLEGRO_EVENT evnt;
|
||||||
al_wait_for_event(event_queue, &evnt);
|
al_wait_for_event(event_queue, &evnt);
|
||||||
|
|
||||||
switch(evnt.type)
|
do
|
||||||
{
|
{
|
||||||
case ALLEGRO_EVENT_TIMER:
|
switch(evnt.type)
|
||||||
redraw = 1;
|
{
|
||||||
break;
|
case ALLEGRO_EVENT_TIMER:
|
||||||
case ALLEGRO_EVENT_DISPLAY_CLOSE:
|
redraw = 1;
|
||||||
run = 0;
|
break;
|
||||||
break;
|
case ALLEGRO_EVENT_DISPLAY_CLOSE:
|
||||||
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;
|
run = 0;
|
||||||
else
|
break;
|
||||||
set_key(evnt.keyboard.keycode, 1);
|
case ALLEGRO_EVENT_KEY_DOWN:
|
||||||
break;
|
if(evnt.keyboard.keycode == ALLEGRO_KEY_H)
|
||||||
case ALLEGRO_EVENT_KEY_UP:
|
show_help = !show_help;
|
||||||
set_key(evnt.keyboard.keycode, 0);
|
else if(evnt.keyboard.keycode == ALLEGRO_KEY_I)
|
||||||
break;
|
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) {
|
int key_is_down(int code) {
|
||||||
|
|||||||
30
src/main.c
30
src/main.c
@@ -20,11 +20,6 @@
|
|||||||
#include "event_manager.h"
|
#include "event_manager.h"
|
||||||
#include "ship.h"
|
#include "ship.h"
|
||||||
|
|
||||||
int run;
|
|
||||||
int redraw;
|
|
||||||
int show_help;
|
|
||||||
int show_info;
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <allegro5/allegro.h>
|
#include <allegro5/allegro.h>
|
||||||
#include <allegro5/allegro_primitives.h>
|
#include <allegro5/allegro_primitives.h>
|
||||||
@@ -38,6 +33,7 @@ const char *help =
|
|||||||
"P - pause/unpause the simulation\n"
|
"P - pause/unpause the simulation\n"
|
||||||
"I - show/hide simulation information\n"
|
"I - show/hide simulation information\n"
|
||||||
"H - show/hide this help information\n"
|
"H - show/hide this help information\n"
|
||||||
|
"F - toggle fullscreen\n"
|
||||||
"Q/ESC - quit";
|
"Q/ESC - quit";
|
||||||
|
|
||||||
const char *info_format =
|
const char *info_format =
|
||||||
@@ -49,6 +45,10 @@ const char *info_format =
|
|||||||
"velY: %f px/sec";
|
"velY: %f px/sec";
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
int run;
|
||||||
|
int redraw;
|
||||||
|
int show_help;
|
||||||
|
int show_info;
|
||||||
char title[32];
|
char title[32];
|
||||||
sprintf(title, "SpaceShipSim v%s", VERSION);
|
sprintf(title, "SpaceShipSim v%s", VERSION);
|
||||||
puts(title);
|
puts(title);
|
||||||
@@ -107,6 +107,7 @@ int main() {
|
|||||||
show_info = 1;
|
show_info = 1;
|
||||||
int paused = 0;
|
int paused = 0;
|
||||||
int old_paused = 0;
|
int old_paused = 0;
|
||||||
|
int just_toggled_fullscreen = 0;
|
||||||
while(run)
|
while(run)
|
||||||
{
|
{
|
||||||
handle_event();
|
handle_event();
|
||||||
@@ -127,6 +128,23 @@ int main() {
|
|||||||
ship_update(&ship);
|
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));
|
al_clear_to_color(al_map_rgb(0, 0, 0));
|
||||||
ship_draw(&ship);
|
ship_draw(&ship);
|
||||||
if(show_info)
|
if(show_info)
|
||||||
@@ -148,7 +166,7 @@ int main() {
|
|||||||
{
|
{
|
||||||
al_draw_multiline_text(font,
|
al_draw_multiline_text(font,
|
||||||
al_map_rgb(0xFF, 0xFF, 0xFF),
|
al_map_rgb(0xFF, 0xFF, 0xFF),
|
||||||
WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2 - 50,
|
(float)WINDOW_WIDTH / 2, (float)WINDOW_HEIGHT / 2 - 50,
|
||||||
WINDOW_WIDTH, 10.0f,
|
WINDOW_WIDTH, 10.0f,
|
||||||
ALLEGRO_ALIGN_CENTRE,
|
ALLEGRO_ALIGN_CENTRE,
|
||||||
help);
|
help);
|
||||||
|
|||||||
Reference in New Issue
Block a user