mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-08 06:06:43 +01:00
add some basic HUD
This commit is contained in:
parent
389c4c27aa
commit
8b1b60ebde
2 changed files with 11 additions and 6 deletions
15
src/level.c
15
src/level.c
|
@ -115,7 +115,7 @@ bool Move(struct Game *game, struct TM_Action *action, enum TM_ActionState state
|
||||||
|
|
||||||
bool ShowMeter(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
bool ShowMeter(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
||||||
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
||||||
game->level.meter_alpha+=tps(game, 60*3);
|
game->level.meter_alpha+=tps(game, 60*4);
|
||||||
if (game->level.meter_alpha>=255) {
|
if (game->level.meter_alpha>=255) {
|
||||||
game->level.meter_alpha=255;
|
game->level.meter_alpha=255;
|
||||||
return true;
|
return true;
|
||||||
|
@ -327,9 +327,11 @@ void Level_Draw(struct Game *game) {
|
||||||
al_hold_bitmap_drawing(false);
|
al_hold_bitmap_drawing(false);
|
||||||
|
|
||||||
al_set_target_bitmap(game->level.meter_bmp);
|
al_set_target_bitmap(game->level.meter_bmp);
|
||||||
al_draw_horizontal_gradient_rect(0, 0, al_get_bitmap_width(game->level.meter_bmp), al_get_bitmap_height(game->level.meter_bmp), al_map_rgb(255,0,0), al_map_rgb(0,255,0));
|
al_clear_to_color(al_map_rgba(0,0,0,0));
|
||||||
|
al_draw_horizontal_gradient_rect(al_get_bitmap_width(game->level.meter_bmp)-al_get_display_width(game->display)*0.215, (al_get_bitmap_height(game->level.meter_bmp)-al_get_display_height(game->display)*0.025)/2, al_get_display_width(game->display)*0.215, al_get_display_height(game->display)*0.025, al_map_rgb(255,0,0), al_map_rgb(0,255,0));
|
||||||
|
al_draw_bitmap(game->level.meter_image, 0, 0, 0);
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
al_draw_tinted_bitmap(game->level.meter_bmp, al_map_rgba(game->level.meter_alpha,game->level.meter_alpha,game->level.meter_alpha,game->level.meter_alpha), al_get_display_width(game->display)*0.75, al_get_display_height(game->display)*0.925, 0);
|
al_draw_tinted_bitmap(game->level.meter_bmp, al_map_rgba(game->level.meter_alpha,game->level.meter_alpha,game->level.meter_alpha,game->level.meter_alpha), al_get_display_width(game->display)*0.95-al_get_bitmap_width(game->level.meter_bmp), al_get_display_height(game->display)*0.975-al_get_bitmap_height(game->level.meter_bmp), 0);
|
||||||
|
|
||||||
TM_Process();
|
TM_Process();
|
||||||
}
|
}
|
||||||
|
@ -576,6 +578,7 @@ void Level_UnloadBitmaps(struct Game *game) {
|
||||||
al_destroy_bitmap(game->level.welcome);
|
al_destroy_bitmap(game->level.welcome);
|
||||||
al_destroy_bitmap(game->level.obst_bmps.pie);
|
al_destroy_bitmap(game->level.obst_bmps.pie);
|
||||||
al_destroy_bitmap(game->level.meter_bmp);
|
al_destroy_bitmap(game->level.meter_bmp);
|
||||||
|
al_destroy_bitmap(game->level.meter_image);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -602,8 +605,10 @@ void Level_PreloadBitmaps(struct Game *game) {
|
||||||
al_clear_to_color(al_map_rgba(0,0,0,0));
|
al_clear_to_color(al_map_rgba(0,0,0,0));
|
||||||
al_draw_text_with_shadow(game->menu.font_title, al_map_rgb(255,255,255), al_get_display_width(game->display)*0.5, al_get_display_height(game->display)*0.1, ALLEGRO_ALIGN_CENTRE, "Level 1");
|
al_draw_text_with_shadow(game->menu.font_title, al_map_rgb(255,255,255), al_get_display_width(game->display)*0.5, al_get_display_height(game->display)*0.1, ALLEGRO_ALIGN_CENTRE, "Level 1");
|
||||||
al_draw_text_with_shadow(game->menu.font_subtitle, al_map_rgb(255,255,255), al_get_display_width(game->display)*0.5, al_get_display_height(game->display)*0.275, ALLEGRO_ALIGN_CENTRE, "Fluttershy");
|
al_draw_text_with_shadow(game->menu.font_subtitle, al_map_rgb(255,255,255), al_get_display_width(game->display)*0.5, al_get_display_height(game->display)*0.275, ALLEGRO_ALIGN_CENTRE, "Fluttershy");
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
|
||||||
|
|
||||||
game->level.meter_bmp = al_create_bitmap(al_get_display_width(game->display)*0.2, al_get_display_height(game->display)*0.025);
|
game->level.meter_image = LoadScaledBitmap("levels/meter.png", al_get_display_width(game->display)*0.075, al_get_display_width(game->display)*0.075*0.96470588235294117647);
|
||||||
|
game->level.meter_bmp = al_create_bitmap(al_get_display_width(game->display)*0.2+al_get_bitmap_width(game->level.meter_image), al_get_bitmap_height(game->level.meter_image));
|
||||||
|
|
||||||
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ struct Level {
|
||||||
ALLEGRO_BITMAP *welcome;
|
ALLEGRO_BITMAP *welcome;
|
||||||
ALLEGRO_BITMAP **derpy_sheet; /*!< Active Derpy sprite sheet. */
|
ALLEGRO_BITMAP **derpy_sheet; /*!< Active Derpy sprite sheet. */
|
||||||
ALLEGRO_BITMAP *derpy; /*!< Derpy sprite. */
|
ALLEGRO_BITMAP *derpy; /*!< Derpy sprite. */
|
||||||
ALLEGRO_BITMAP *meter_bmp;
|
ALLEGRO_BITMAP *meter_bmp, *meter_image;
|
||||||
struct Spritesheet* derpy_sheets; /*!< List of sprite sheets of Derpy character. */
|
struct Spritesheet* derpy_sheets; /*!< List of sprite sheets of Derpy character. */
|
||||||
struct Spritesheet* pony_sheets; /*!< List of sprite sheets of character rescued by Derpy. */
|
struct Spritesheet* pony_sheets; /*!< List of sprite sheets of character rescued by Derpy. */
|
||||||
struct {
|
struct {
|
||||||
|
|
Loading…
Reference in a new issue