#include"includes/Global.hpp" #include"includes/Game.hpp" #include void Game::initshapes() { krug.setRadius(igrac.stomprad); krug.setFillColor(sf::Color::Black); krug.setOutlineThickness(10); krug.setOutlineColor(sf::Color::White); krug.setOrigin(krug.getRadius(),krug.getRadius()); health.setSize(sf::Vector2f(sirina/3.0,50.0)); health.setFillColor(sf::Color::Red); healthblank.setSize(sf::Vector2f(sirina/3.0,50.0)); healthblank.setFillColor(sf::Color::White); stomp.setSize(sf::Vector2f(sirina/3.0,50.0)); stomp.setFillColor(sf::Color::Blue); stomp.setPosition(0,50); stompblank.setSize(sf::Vector2f(sirina/3.0,50.0)); stompblank.setFillColor(sf::Color::White); stompblank.setPosition(0,50); } void Game::initui() { if(!font.loadFromFile("../assets/fonts/LiberationMono-Regular.ttf")) { std::cerr<<"Font not found\n"; } healthtext.setFont(font); healthtext.setString("Health"); healthtext.setCharacterSize(24); healthtext.setFillColor(sf::Color::Black); stomptext.setFont(font); stomptext.setString("Stomp"); stomptext.setCharacterSize(24); stomptext.setPosition(0,50); stomptext.setFillColor(sf::Color::Black); fps.setFont(font); fps.setCharacterSize(24); fps.setFillColor(sf::Color::White); fps.setPosition(sirina*5.0/6,0); score.setFont(font); score.setCharacterSize(24); score.setFillColor(sf::Color::White); score.setPosition(sirina*5.0/6,50); } void Game::inittex() { if(!healthtex.loadFromFile("../assets/images/healing.png")) { std::cerr<<"Texture not found\n"; } if(!neprijateljtex.loadFromFile("../assets/images/nep.png")) { std::cerr<<"Texture not found\n"; } for(size_t i=0;igetSize().y; sirina=prozor->getSize().x; healthblank.setSize(sf::Vector2f(sirina/3.0,50.0)); 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(sf::RenderWindow *glprozor) { prozor=glprozor; initui(); updatewin(); initent(); initshapes(); inittex(); } bool Game::gameover() { if(igrac.health<=0) { prozor->close(); std::cout<<"\n\nGame over. Wanna try again?\n"; return 1; } return 0; } void Game::updatedt() { dt=sat.restart().asMicroseconds()/1000000.0; } void Game::updateui() { health.setSize(sf::Vector2f(sirina*igrac.health/300.0,50.0)); stomp.setSize(sf::Vector2f(sirina*(5-igrac.stomptime)/15.0,50.0)); fps.setString("fps: "+std::to_string((int)(1/dt))); score.setString("xp: "+std::to_string(igrac.xp)); } void Game::stompmain() { igrac.stomptime=5; krug.setPosition(igrac.x,igrac.y); for(size_t i=0;i0) igrac.y-=dist; if((sf::Keyboard::isKeyPressed(sf::Keyboard::A)||sf::Keyboard::isKeyPressed(sf::Keyboard::Left))&&igrac.x>0) igrac.x-=dist; if((sf::Keyboard::isKeyPressed(sf::Keyboard::S)||sf::Keyboard::isKeyPressed(sf::Keyboard::Down))&&igrac.yclear(); if(igrac.stomptime>4.6) prozor->draw(krug); prozor->draw(igrac.telo); for(size_t i=0;idraw(nep1.at(i).telo); for(size_t i=0;idraw(nep2.at(i).telo); for(size_t i=0;idraw(nep3.at(i).telo); for(size_t i=0;idraw(pow.at(i).telo); prozor->draw(healthblank); prozor->draw(health); prozor->draw(healthtext); prozor->draw(stompblank); prozor->draw(stomp); prozor->draw(stomptext); prozor->draw(fps); prozor->draw(score); prozor->display(); } void Game::position() { igrac.telo.setPosition(igrac.x,igrac.y); for(size_t i=0;i