zderzenia SFML

0

Poniższy kod powinien działać , jednak działa do pewnego czasu , w pewnym momencie przestaje działać dla jekiegoś któregoś z kolei sprajta i za chwile znowu wszystko pięknie( wszystkie następne działają , a żeby zrobić zderzenie z niedziałającym trzeba poświęcić conajmniej parenaście prób) , jakieś pomysły?


for(int i = 2 ; i<=20 ; ++i) 
{ 
  volatile bool a =(  weza[0].GetPosition().x == jabko.GetPosition().x or weza[0].GetPosition().x+i  == jabko.GetPosition().x or weza[0].GetPosition().x - i == jabko.GetPosition().x) ; 

volatile bool b =(weza[0].GetPosition().y == jabko.GetPosition().y or weza[0].GetPosition().y+i  == jabko.GetPosition().y or weza[0].GetPosition().y - i == jabko.GetPosition().y); 

if( a and   b) 
{ 

 dlugosc=dlugosc+5; 
 wspolzedna_x=( rand() % 1272) + 4; 
     wspolzedna_y =( rand() % 952 ) + 10; 
      jabko.SetPosition(wspolzedna_x , wspolzedna_y); 

} 

} 

weza[0] to pierwszy , poruszający się sprajt o szer i wys 20 px
jabko nieruchomy sprajt raszta tak samo
*jeżeli zły dział proszę o przeniesienie

  • jeżeli potrzebne jest więcej danych ( np. cały kod ) pisać wrzuce
0

podaj może typy tych twoich zmiennych bo tak to można wróżyć. Przypuszczam, że problem może wynikać z mieszania operacji na liczbach całkowitych oraz zmiennoprzecinkowych.

0

wszystkie zmienne typu int
jakieś inne pomysły/ może wrzucić cały kod programu w razie czego moge porobic w nim komentarze , wg. mnie nie powinno być tych bugów i wszystko powinno śmigać , lecz pewnie jest to jakiś głupi ( lecz prosty błąd) , może coś z losowaniem nowej pozycji?

0

any ideas?
zmieniłem wspolzwdna_x i wspolzwdna_y na float ( tak miało być ) jednak bezskutecznie , dalej ten sam bug

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