From c3b8819206961ce7e5505b87e2e5c20cc9ec491f Mon Sep 17 00:00:00 2001 From: Petr Sykora Date: Sun, 13 Jul 2008 18:23:57 +0200 Subject: [PATCH] HUD :-) --- ebulanci.c | 30 ++++++++++++++- graphics/hud.svg | 87 +++++++++++++++++++++++++++++++++++++++++++ graphics/hud_ammo.svg | 74 ++++++++++++++++++++++++++++++++++++ graphics/hud_reload.svg | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ graphics/mines.svg | 31 ++++++++++------ 5 files changed, 308 insertions(+), 13 deletions(-) create mode 100644 graphics/hud.svg create mode 100644 graphics/hud_ammo.svg create mode 100644 graphics/hud_reload.svg diff --git a/ebulanci.c b/ebulanci.c index 8dc655a..8d51dfa 100644 --- a/ebulanci.c +++ b/ebulanci.c @@ -702,6 +702,12 @@ Sprite *kul; Sprite *kulka; Sprite *mine; Sprite *mines; +Sprite *hud; +Sprite *hud_mine; +Sprite *hud_kul; +Sprite *hud_ammo; +Sprite *hud_reload; + int frames=0; void onExit() @@ -728,6 +734,7 @@ void Draw(Game *g){ //Lilaneks for(i=0; i < g->noLilaneks; i++){ SDL_Color c; + double pd; c =g->Lilanek[i].Color; if(g->Lilanek[i].ReloadTime < g->WeaponTemplate[g->Lilanek[i].ActiveWeapon].ReloadTime){ c.r *= 0.5; @@ -735,13 +742,27 @@ void Draw(Game *g){ c.b *= 0.5; }; QueueDrawSpriteColorize(lil[g->Lilanek[i].Orientation], g->Lilanek[i].Pos.x-1.0, g->Lilanek[i].Pos.y-1.0, 1, c ); + QueueDrawSpriteColorize(hud,16.0,4.0*i, 1.0, c ); + switch(g->Lilanek[i].ActiveWeapon){ + case 0: QueueDrawSprite(hud_kul, 16.0, 0.0+4.0*i,0.0); + break; + case 1: QueueDrawSprite(hud_mine, 16.0, 0.0+4.0*i,0.0); + break; + } + pd = (double)g->Lilanek[i].Ammo[g->Lilanek[i].ActiveWeapon]/(double)g->WeaponTemplate[g->Lilanek[i].ActiveWeapon].MaxAmmo; + QueueDrawSpriteColorizeStretch(hud_ammo, 18.0-2.0*pd, 0.0+4.0*i,4.0*pd, 4.0, 2.0,c); + pd = (double)g->Lilanek[i].ReloadTime/(double)g->WeaponTemplate[g->Lilanek[i].ActiveWeapon].ReloadTime; + if(pd>1.0)pd=1.0; + QueueDrawSpriteColorizeStretch(hud_reload, 18.0-2.0*pd, 0.0+4.0*i,4.0*pd, 4.0, 2.0,c); }; //Weapons for(i=0; i < g->noWeapons; i++) if(g->Weapon[i].Exists) switch(g->Weapon[i].WID){ - case 0: QueueDrawSprite(kul, g->Weapon[i].Pos.x - 1.0, g->Weapon[i].Pos.y - 1.0,1.0); break; - case 1: QueueDrawSprite(mines, g->Weapon[i].Pos.x - 1.0, g->Weapon[i].Pos.y - 1.0,1.0); break; + case 0: QueueDrawSprite(kul, g->Weapon[i].Pos.x - 1.0, g->Weapon[i].Pos.y - 1.0,1.0); + break; + case 1: QueueDrawSprite(mines, g->Weapon[i].Pos.x - 1.0, g->Weapon[i].Pos.y - 1.0,1.0); + break; } for(i=0; i < g->noBullets; i++) @@ -784,6 +805,11 @@ int InitAll(Game **g){ kulka = LoadSpriteSVG("graphics/kulka.svg", 0.1, 0.1); mine = LoadSpriteSVG("graphics/mine.svg", 0.5, 0.5); mines = LoadSpriteSVG("graphics/mines.svg", 0.5, 0.5); + hud = LoadSpriteSVG("graphics/hud.svg", 4.0, 4.0); + hud_mine = LoadSpriteSVG("graphics/mines.svg", 2.2, 2.2); + hud_kul = LoadSpriteSVG("graphics/kul.svg", 2.2, 2.2); + hud_ammo = LoadSpriteSVG("graphics/hud_ammo.svg", 4.0, 4.0); + hud_reload = LoadSpriteSVG("graphics/hud_reload.svg", 4.0, 4.0); SDL_AddTimer(1000, callback_fps, NULL); diff --git a/graphics/hud.svg b/graphics/hud.svg new file mode 100644 index 0000000..3bee7c4 --- /dev/null +++ b/graphics/hud.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/graphics/hud_ammo.svg b/graphics/hud_ammo.svg new file mode 100644 index 0000000..6ea9ded --- /dev/null +++ b/graphics/hud_ammo.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/graphics/hud_reload.svg b/graphics/hud_reload.svg new file mode 100644 index 0000000..57ea59f --- /dev/null +++ b/graphics/hud_reload.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/graphics/mines.svg b/graphics/mines.svg index 9438c43..5e56de3 100644 --- a/graphics/mines.svg +++ b/graphics/mines.svg @@ -2,7 +2,7 @@ + id="defs3158"> + + + inkscape:window-width="1272" + inkscape:window-height="976" + inkscape:window-x="0" + inkscape:window-y="0" + showgrid="false" /> @@ -56,14 +65,14 @@ inkscape:groupmode="layer" id="layer1">