Events clavier + resume avec echap
This commit is contained in:
parent
cd15a6802c
commit
80688b4e26
1 changed files with 32 additions and 14 deletions
46
src/ui.c
46
src/ui.c
|
@ -148,10 +148,19 @@ void pause_menu_new_game(Game *game){
|
|||
pause_menu_resume(game);
|
||||
}
|
||||
|
||||
void pause_menu_do_event(Widget *widget, Game *game, MTEvent event){
|
||||
if(event.type == EV_Mouse){
|
||||
buttons_do_event(widget, game, event);
|
||||
return;
|
||||
}
|
||||
if(event.key == KEY_ESCAPE)
|
||||
pause_menu_resume(game);
|
||||
}
|
||||
|
||||
Widget pause_menu = {
|
||||
.box = {.x = 0, .y = 0, .width = -1, .height = -1},
|
||||
.draw = pause_menu_draw,
|
||||
.do_event = buttons_do_event,
|
||||
.do_event = pause_menu_do_event,
|
||||
.capt_flags = CF_Mouse | CF_Keyb,
|
||||
.buttons = {
|
||||
{.box = {520,170,240,40},
|
||||
|
@ -220,15 +229,14 @@ void worker_widget_draw(Widget *widget, Game *game){
|
|||
(float)work->fatigue/256.0f*100.0f);
|
||||
}
|
||||
|
||||
void worker_widget_do_event(Widget *widget, Game *game, MTEvent event){
|
||||
if(event.click == MOUSE_BUTTON_LEFT)
|
||||
gui_info.widget_active[2] = false;
|
||||
void worker_widget_close(Game *game){
|
||||
gui_info.widget_active[2] = false;
|
||||
}
|
||||
|
||||
Widget worker_widget = {
|
||||
.box = {.x = 40, .y = 40, .width = 350, .height = 600},
|
||||
.draw = worker_widget_draw,
|
||||
.do_event = worker_widget_do_event,
|
||||
.do_event = buttons_do_event,
|
||||
.capt_flags = CF_Mouse,
|
||||
.buttons = {
|
||||
{.box = {350,50,30,30},
|
||||
|
@ -236,7 +244,7 @@ Widget worker_widget = {
|
|||
.color_1 = BLACK,
|
||||
.color_txt = BLACK,
|
||||
.txt = "X",
|
||||
.handler = NULL
|
||||
.handler = worker_widget_close
|
||||
},
|
||||
},
|
||||
.button_n = 1
|
||||
|
@ -246,11 +254,18 @@ Widget machine_widget = {
|
|||
|
||||
};
|
||||
|
||||
void game_widget_do_event(Widget *widget, Game *game, MTEvent event){
|
||||
if(event.key == KEY_P)
|
||||
game->paused = !game->paused;
|
||||
if(event.key == KEY_ESCAPE)
|
||||
goto_pause_menu(game);
|
||||
}
|
||||
|
||||
Widget game_widget = {
|
||||
.box = {0,0,0,0},
|
||||
.box = {0,0,1280,720},
|
||||
.draw = widget_draw_game,
|
||||
.do_event = NULL,
|
||||
.capt_flags = 0,
|
||||
.do_event = game_widget_do_event,
|
||||
.capt_flags = CF_Keyb,
|
||||
.buttons = {},
|
||||
.button_n = 0
|
||||
};
|
||||
|
@ -378,6 +393,13 @@ void get_keys(Game *game){
|
|||
try_interface(game, GetScreenToWorld2D(mouse_pos,game->camera));
|
||||
}
|
||||
|
||||
int key = GetKeyPressed();
|
||||
while(key){
|
||||
printf("392 : %d\n", key);
|
||||
ui_do_key(game, key);
|
||||
key = GetKeyPressed();
|
||||
}
|
||||
|
||||
if(keydown(KEY_W))
|
||||
game->camera.target.y -= 3;
|
||||
if(keydown(KEY_S))
|
||||
|
@ -389,9 +411,5 @@ void get_keys(Game *game){
|
|||
if(keydown(KEY_UP))
|
||||
game->camera.zoom *= 1.025;
|
||||
if(keydown(KEY_DOWN))
|
||||
game->camera.zoom *= 1/1.025;
|
||||
if(IsKeyPressed(KEY_P))
|
||||
game->paused = !game->paused;
|
||||
if(IsKeyPressed(KEY_ESCAPE))
|
||||
goto_pause_menu(game);
|
||||
game->camera.zoom *= 1/1.025;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue