From 5e2c6ce15856bb89e58291af9d099386fc47c85e Mon Sep 17 00:00:00 2001 From: aleksav013 Date: Sun, 23 May 2021 22:13:57 +0200 Subject: Adding dt; Removing global vars --- main.cpp | 95 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/main.cpp b/main.cpp index 9b50140..13c4757 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,13 @@ +#include #include #include #include -std::mt19937 rng(time(0)); -const int n=20; +class Global +{ + public: + static std::mt19937 rng; +}; +std::mt19937 Global::rng = std::mt19937(time(0)); class Entity { public: @@ -24,19 +29,20 @@ class Enemy:public Entity public: bool ziv=1; Enemy():Entity() {} - Enemy(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja):Entity(pozicija,velicina,boja) {} - void kaigracu(float igracx,float igracy); + Enemy(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja); + void kaigracu(float igracx,float igracy,float dt); }; -void Enemy::kaigracu(float igracx,float igracy) +Enemy::Enemy(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja):Entity(pozicija,velicina,boja) {} +void Enemy::kaigracu(float igracx,float igracy,float dt) { - float k=(igracy-y)/(igracx-x); - float r=1.0; - float dx=r/std::sqrt(1+k*k); - if(igracx-x<0) dx=-dx; - float dy=k*dx; + float k=(igracy-y)/(igracx-x); + float r=100*dt; + float dx=r/std::sqrt(1+k*k); + if(igracx-x<0) dx=-dx; + float dy=k*dx; - x+=dx; - y+=dy; + x+=dx; + y+=dy; } class Player:public Entity @@ -47,31 +53,22 @@ class Player:public Entity float stomptime; Player():Entity() {} - Player(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja):Entity(pozicija,velicina,boja) - { - health=100; - xp=0; - stomptime=0; - } - void stomp(Enemy neprijatelj[]); + Player(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja); }; -void Player::stomp(Enemy neprijatelj[]) +Player::Player(sf::Vector2f pozicija,sf::Vector2f velicina,sf::Color boja):Entity(pozicija,velicina,boja) { - stomptime=3; - for(int i=0;i neprijatelj; sf::RenderWindow prozor; int visina,sirina; sf::CircleShape krug; @@ -92,7 +89,7 @@ Game::Game() sirina=prozor.getSize().x; prozor.setFramerateLimit(60); igrac = Player(sf::Vector2f((float)sirina/2,(float)visina/2),sf::Vector2f(100.0f,100.0f),sf::Color::White); - for(int i=0;i0) igrac.y-=dist; if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)&&igrac.x>0) igrac.x-=dist; if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)&&igrac.y2.8) prozor.draw(krug); + if(igrac.stomptime>4.6) prozor.draw(krug); prozor.draw(igrac.telo); - for(int i=0;i0) igrac.stomptime-=0.01; + if(igrac.stomptime>0) igrac.stomptime-=dt; igrac.telo.setPosition(igrac.x,igrac.y); - for(int i=0;i