• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [C++][SFML] rysowanie setki sprite'ow

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
1,315 wizyt
pytanie zadane 25 lipca 2016 w C i C++ przez mrdropex Początkujący (430 p.)
zamknięte 26 lipca 2016 przez mrdropex
Witam :)     

Mam pewnien problem tworze gre w sfml i posiadam tablice ze spritami.

sf::Sprite trees[300];

i teraz bardzo proste pytanie chcem aby program co klatke wyswietlal 300 obiektow ;p jak to zrobic? ;0

EDIT:Dziekuje wszystkim! :)

for (int i = 0; i<300; ++i)
            {
                app.draw(trees[i]);
            }

zadzialalo ! :D
komentarz zamknięcia: bo tak

4 odpowiedzi

0 głosów
odpowiedź 25 lipca 2016 przez niezalogowany

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? :)

komentarz 25 lipca 2016 przez mrdropex Początkujący (430 p.)
postaram sie cos wymyslec
0 głosów
odpowiedź 25 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)

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.

komentarz 26 lipca 2016 przez mrdropex Początkujący (430 p.)
musialbym napisac 300 linijek lol
komentarz 26 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)
A słyszałeś o czymś takim jak pętle?
0 głosów
odpowiedź 25 lipca 2016 przez dubgron Mądrala (5,620 p.)

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.

0 głosów
odpowiedź 25 lipca 2016 przez niezalogowany

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();

 

Podobne pytania

0 głosów
0 odpowiedzi 129 wizyt
pytanie zadane 30 stycznia 2022 w C i C++ przez toko Dyskutant (8,030 p.)
0 głosów
1 odpowiedź 1,039 wizyt
pytanie zadane 25 kwietnia 2018 w C i C++ przez Don Corleone Obywatel (1,210 p.)
0 głosów
1 odpowiedź 221 wizyt
pytanie zadane 8 września 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

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

...