From 3fdf53f3c1fbf58e67ab9570f035756469b99424 Mon Sep 17 00:00:00 2001 From: aleksav013 Date: Sun, 6 Jun 2021 04:13:37 +0200 Subject: Adding Vampiric UI; Using Valgrind to fix errors --- src/Enemy2.cpp | 5 +++++ src/Game.cpp | 44 +++++++++++++++++++++++++++++++++----------- src/includes/Enemy2.hpp | 1 + src/includes/Game.hpp | 5 ++--- 4 files changed, 41 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/Enemy2.cpp b/src/Enemy2.cpp index e89fbb2..a32b8d9 100644 --- a/src/Enemy2.cpp +++ b/src/Enemy2.cpp @@ -21,3 +21,8 @@ void Enemy2::izracunajpoz(float igracx,float igracy,float dt) x+=vx*dt; y+=vy*dt; } +void Enemy2::respawn(int sirina,int visina) +{ + Entity::respawn(sirina,visina); + vx=vy=0; +} diff --git a/src/Game.cpp b/src/Game.cpp index 2991f88..2fadf1c 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -4,16 +4,23 @@ void Game::initshapes() { health.setSize(sf::Vector2f(sirina/3.0,50.0)); - health.setFillColor(sf::Color::Red); + health.setFillColor(sf::Color(255,0,0,200)); healthblank.setSize(sf::Vector2f(sirina/3.0,50.0)); - healthblank.setFillColor(sf::Color::White); + healthblank.setFillColor(sf::Color(255,255,255,200)); stomp.setSize(sf::Vector2f(sirina/3.0,50.0)); - stomp.setFillColor(sf::Color::Blue); + stomp.setFillColor(sf::Color(0,0,255,200)); stomp.setPosition(0,50); stompblank.setSize(sf::Vector2f(sirina/3.0,50.0)); - stompblank.setFillColor(sf::Color::White); + stompblank.setFillColor(sf::Color(255,255,255,200)); stompblank.setPosition(0,50); + + vampiric.setSize(sf::Vector2f(sirina/3.0,50.0)); + vampiric.setFillColor(sf::Color(170,10,10,200)); + vampiric.setPosition(0,100); + vampiricblank.setSize(sf::Vector2f(sirina/3.0,50.0)); + vampiricblank.setFillColor(sf::Color(255,255,255,200)); + vampiricblank.setPosition(0,100); } void Game::initui() { @@ -26,6 +33,11 @@ void Game::initui() stomptext.setCharacterSize(24); stomptext.setPosition(0,50); stomptext.setFillColor(sf::Color::Black); + vampirictext.setFont(*font["default"]); + vampirictext.setString("Vampiric"); + vampirictext.setCharacterSize(24); + vampirictext.setPosition(0,100); + vampirictext.setFillColor(sf::Color::Black); fps.setFont(*font["default"]); fps.setCharacterSize(24); @@ -76,11 +88,6 @@ void Game::updatewin() stompblank.setSize(sf::Vector2f(sirina/3.0,50.0)); fps.setPosition(sirina*5.0/6,0); score.setPosition(sirina*5.0/6,50); - updateui(); -} -Game::Game() -{ - } Game::Game(sf::RenderWindow *glprozor,std::map mainfont,std::map maintex) { @@ -89,10 +96,12 @@ Game::Game(sf::RenderWindow *glprozor,std::map mainfont,s tex=maintex; updatewin(); - initui(); initshapes(); initent(); inittex(); + updatedt(); + initui(); + updateui(); } bool Game::gameover() { @@ -107,7 +116,10 @@ void Game::updatedt() void Game::updateui() { health.setSize(sf::Vector2f(sirina*igrac.health/300.0,50.0)); + if(igrac.health>=100) healthblank.setSize(health.getSize()); + else healthblank.setSize(sf::Vector2f(sirina/3.0,50.0)); stomp.setSize(sf::Vector2f(sirina*(5-igrac.stomptime)/15.0,50.0)); + vampiric.setSize(sf::Vector2f(sirina*(igrac.vampirictime)/36.0,50.0)); fps.setString("fps: "+std::to_string((int)(1/dt))); score.setString("xp: "+std::to_string(igrac.xp)); } @@ -172,6 +184,12 @@ void Game::draw() prozor->draw(stompblank); prozor->draw(stomp); prozor->draw(stomptext); + if(igrac.vampirictime>0) + { + prozor->draw(vampiricblank); + prozor->draw(vampiric); + prozor->draw(vampirictext); + } prozor->draw(fps); prozor->draw(score); } @@ -306,7 +324,11 @@ void Game::run() void Game::loop(bool ischanged,bool pause) { updatedt(); - if(ischanged) updatewin(); + if(ischanged) + { + updatewin(); + updateui(); + } if(!pause) { keyboard(); diff --git a/src/includes/Enemy2.hpp b/src/includes/Enemy2.hpp index c619c54..a224013 100644 --- a/src/includes/Enemy2.hpp +++ b/src/includes/Enemy2.hpp @@ -12,6 +12,7 @@ class Enemy2:public Entity Enemy2(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja); void izracunajbrzinu(float igracx,float igracy,float dt); void izracunajpoz(float igracx,float igracy,float dt); + void respawn(int sirina,int visina); }; #endif diff --git a/src/includes/Game.hpp b/src/includes/Game.hpp index b04b1c3..d893fd8 100644 --- a/src/includes/Game.hpp +++ b/src/includes/Game.hpp @@ -24,8 +24,8 @@ class Game int visina,sirina; sf::RenderWindow *prozor; - sf::RectangleShape health,healthblank,stomp,stompblank; - sf::Text healthtext,stomptext,fps,score; + sf::RectangleShape health,healthblank,stomp,stompblank,vampiric,vampiricblank; + sf::Text healthtext,stomptext,fps,score,vampirictext; void keyboard(); void run(); @@ -44,7 +44,6 @@ class Game void initent(); void updatewin(); public: - Game(); Game(sf::RenderWindow *glprozor,std::map mainfont,std::map maintex); void loop(bool ischanged,bool pause); void draw(); -- cgit v1.2.3