Problem z warunkiem if dla kolizji, SFML

0

Witam wszystkich, nie moge zrozumiec dlaczego moj warunek nie dziala prawidlowo. Dane mamy dwa obiekty: kolo1 i blok1. Instrukcja ma za zadanie sprawdzac czy wspolrzedne obiektow nachodza na siebie, jesli tak to zmienic kolor obiektu blok1 i zmienic wektor predkosci obiektu kolo1. Gdy to nastąpi sprawdzanie wspolrzednych trwa dalej, program dziala dalej, ale przy drugiej detekcji takiej kolizji warunek ma sie juz nie spelnic. Niestety moj kod ciagle zmienia wektor dla kolo1 gdy natrafi na kolizje, niewazne czy to pierwszy drugi czy 10 raz. Mam nadzieje ze dobrze wytłumaczylem o co chodzi :).

bool kolizjaBlok[1] = true;
while(window.isOpen())
  {
  if ((kolo1.getGlobalBounds().intersects( blok[1].getGlobalBounds())) && (kolizjaBlok[1] = true))
        {
            wektorkolo = -wektorkolo;
            blok[1].setFillColor(sf::Color::Black);
            kolizjaBlok[1] = false;
        }
  }
1

= to nie to samo co == (w warunku przypisujesz zamiast porównywać).

0

No nie wieze, że tu błąd zrobilem, szukalem go juz drugą godzine. Dzięki wielkie, problem rozwiązany! :)

0

A ja się zastanawiam czemu ludzie mają manierę robienia porównań wrażeń typu bool do true lub false.
To takie masło maślane. Zrób bool z bool.

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