Sfml Nazwy objektów jako zmienne

0

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ć?

1

Być może myślisz o std::map<>

0
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?

1
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.

0
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żyjesz std::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

0
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żyjesz std::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
0

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.

0

To co mam zrobić skoro to mi blokuje cały program

1 użytkowników online, w tym zalogowanych: 0, gości: 1