Nie wiem gdzie popełniłem błąd, wyświetla się tylko jeden obiekt d[].dd, podczas gdy powinno 10.
#include <SFML/Graphics.hpp>
#include <windows.h>
#include <sstream>
#include <string>
#include <fstream>
#include "dzida.h"
using namespace std;
int main()
{
sf::RenderWindow okno(sf::VideoMode(800, 600, 32), "Odbijacz");
fstream plik ("ranking.txt", ios::in | ios::out);
sf::Clock zegar;
sf::Time CzasOdAktualizacji = sf::Time::Zero;
const sf::Time KrokCzasowy = sf::seconds(1.f/100.f);
sf::Texture tex_hero, tex_tlo;
sf::Time Czas;
tex_hero.loadFromFile("hero.png");
tex_tlo.loadFromFile("tlo.png");
Dzida d[10];
for (int i=0; i<10; i++)
{
d[i].hi();
}
sf::Sprite hero, tlo;
tlo.setTexture(tex_tlo);
hero.setTexture(tex_hero);
sf::Event zdarzenie;
// bool prawo = 0, lewo = 0, gora = 0, dol = 0;
while (okno.isOpen())
{
okno.clear();
Czas = zegar.restart();
CzasOdAktualizacji += Czas;
while(CzasOdAktualizacji > KrokCzasowy) //jeśli COOA większe od kroku czasowego
{
CzasOdAktualizacji -= KrokCzasowy;
while (okno.pollEvent(zdarzenie))
{
if (zdarzenie.type == sf::Event::Closed)
okno.close();
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
hero.move(5,0);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
hero.move(-5,0);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
hero.move(0,-5);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
hero.move(0,5);
}
hero.setTexture(tex_hero);
tlo.setTexture(tex_tlo);
for (int i=0; i<10; i++)
{
d[i].dd.move(0,2);
}
}
okno.draw(tlo, sf::RenderStates::Default);
okno.draw(hero);
for (int i=0; i<10; i++)
{
okno.draw(d[i].dd);
}
okno.display();
}
return 0;
}