W sensie, że zamiast napisania 300 razy tego:
window.draw(trees[0]);
Chciałbyś to zrobić w paru linijkach? Jeśli o to ci chodzi, to możesz to zrobić po prostu za pomocą pętli. To chyba proste, co nie? No jak możesz się uczyć SFML-a, nie pamiętając tak podstawowego mechanizmu jak pętla? :)
Czy ty w ogóle czytałeś kurs i dokumentację SFML? Używasz metody draw z klasy sf::RenderWindow na każdym sprite i to wszystko.
Nie gwarantuje, że program będzie działał płynnie,a nawet jestem pewien, że nie będzie, ale wystarczy wszystko rysować w pętli.
for (auto& i : trees) { window.draw(i); }
Jak chcesz, by to działało płynnie, to polecam poczytać o VertexArrayach.
Jeżeli te 300 obiektów jest identyczne, to (prawdopodobnie) lepiej jest przechować np gdzieś ich pozycję i rysować kolejno po sobie tylko 1 sprite'a zmieniając jego pozycję:
Sprite tree; Vector2f treePos[300]; ... // <- ustawienie pozycji drzew .... window.clear(); for (int i=0; i<300; ++i) { tree.setPosition(treePos[300]); window.draw(tree); } window.display();
93,440 zapytań
142,431 odpowiedzi
322,679 komentarzy
62,802 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj