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