Events clavier + resume avec echap

This commit is contained in:
attilavs2 2025-07-01 15:36:01 +02:00
parent cd15a6802c
commit 80688b4e26

View file

@ -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;
}