Witam! Mam pewien problem w mojej grze "Rpg", otóż po naciśnięciu spacji, nasza postać strzela takim kwadratem jeszcze bez tekstury, w pliku player.h, dodałem zmienne bool reloading = false; , oraz int ammo = 10, strzelanie odbywa się w pętli głównej programu, więc co strzał ammo jest dekrementowane, linijkę poniżej jest if który sprawdza czy ammo nie ma w sobie zera, jeżeli ma, musi przestawić reloading na true, przez co nie będzie dało się strzelać, po przestawieniu, if ma odliczyć dwie sekundy na "zmianę magazynka", i po odczekaniu dwóch sekund dać ammo spowrotem zawartość = 10, oraz ponownie wznowić możliwość strzelania zmieniając reload spowrotem na false, i czy ktos mi podpowie jak mam zrobić te uprzykrzające mi od trzech dni życie odliczanie? próbowałem na wiele sposobów, nie poszło...(w konsoli, 10 razy wyświetli się cout strzal i odrazu reload).
if (Player1.reload == false)
{
// Fires projectile (Space bar)
if (elapsed1.asSeconds() >= 0.1)
{
clock.restart();
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
{
projectile1.rect.setPosition(Player1.rect.getPosition().x + Player1.rect.getSize().x / 2 - projectile1.rect.getSize().x / 2, Player1.rect.getPosition().y + Player1.rect.getSize().y / 2 - projectile1.rect.getSize().y / 2);
projectile1.direction = Player1.direction;
projectileArray.push_back(projectile1);
Player1.ammo--;
cout << "strzal"<<endl;
if (Player1.ammo == 0)
{
Player1.reload = true;
cout << "reloading!" << endl;
//Tu musi byc odliczenie dwóch sekund
Player1.ammo = 10;
Player1.reload = false;
}
}
}
}