Witam. Posiadam wiele obiektow o nazwie B1,B2,B3...
if (Keyboard::isKeyPressed(Keyboard::W) && !Postac.getGlobalBounds().intersects(B1.getGlobalBounds()))
potrzebuje sposobu aby zamienić to B1 w ifie np na coś z tablicy w której będę przechowywał nazwy tych obiektów, Co można z tym zrobić?
Być może myślisz o std::map<>
AnyKtokolwiek napisał(a):
Być może myślisz o std::map<>
zrobiłem mapę ale jak mam to wykorzystać w np. w wyżej wymienionym ifie?
DzialajacaNazwa napisał(a):
Witam. Posiadam wiele obiektow o nazwie B1,B2,B3...
zmienna których nazwy różnią się tylko indeksem, oznaczają, że potrzebujesz po prostu tablicy. Zamiast b1
ma być b[0]
itd.
Najlepiej jak do ego celu użyjesz std::vector
, a zamiast pisać b[2]
użyjesz pętli, która będzie operować po kolejnych wartościach tablicy/wektora.
MarekR22 napisał(a):
DzialajacaNazwa napisał(a):
Witam. Posiadam wiele obiektow o nazwie B1,B2,B3...
zmienna których nazwy różnią się tylko indeksem, oznaczają, że potrzebujesz po prostu tablicy. Zamiast
b1
ma byćb[0]
itd.
Najlepiej jak do ego celu użyjeszstd::vector
, a zamiast pisaćb[2]
użyjesz pętli, która będzie operować po kolejnych wartościach tablicy/wektora.
pokazuje mi się wtedy, że po lewej ".getGlobalBounds" musi być typ struct/union
MarekR22 napisał(a):
DzialajacaNazwa napisał(a):
Witam. Posiadam wiele obiektow o nazwie B1,B2,B3...
zmienna których nazwy różnią się tylko indeksem, oznaczają, że potrzebujesz po prostu tablicy. Zamiast
b1
ma byćb[0]
itd.
Najlepiej jak do ego celu użyjeszstd::vector
, a zamiast pisaćb[2]
użyjesz pętli, która będzie operować po kolejnych wartościach tablicy/wektora.
Spróbowałem zrobić unie:
union unia {
std::vector<RectangleShape> B = {B1, B2, B3, B4, B5, B6, B7, B8, B9, B10 };
};
unia test;
a potem
if (Keyboard::isKeyPressed(Keyboard::W) && !Postac.getGlobalBounds().intersects(test.B[0].getGlobalBounds()))
i w programie wszytko ładnie się podkreśla, koloruje czyli raczej dobrze (jak mam źle składnie to bez kolorów dlatego tak sądze) ale w liście błędów mam :
„main::unia”: destruktor został niejawnie zdefiniowany jako usunięty
„main::unia::unia(void)”: próba odwania do usuniętej funkcji
NIE UŻYWAJ unii! To jest staroć, która sprawia więcej problemów niż pożytku.
Błąd wspomina o unii tylko z powodów formalnych, a nie jako bezwzględny nakaz.
To co mam zrobić skoro to mi blokuje cały program