Błąd w kodzie

1

Witam, piszę małą aplikacje w Visual Studio w języku C#. Podczas pracy nad dodawaniem kolejnego elementu pojawił się błąd którego nie jestem wstanie wykryć.
Otóż piłka odbijana przez paletkę zbija klocki, do tego momentu wszystko działa. Chciałem by bo zbiciu klocków pojawiał się obiekt podobny do klocków jednak zaokrąglony który spadał by w dół.
Wszystko działa oprócz jednej rzeczy, gdy piłka zbija więcej klocków (np odbija się od klocka który zbija i zbija kolejny klocek). Zaokrąglony obiekt spada w dół jednak nie jest to obiekt przypisany do zbitego klocka tylko inny. Na obecny moment wszystkie zaokrąglone obiekty nie są ukryte (pomaga to w sprawdzaniu czy błąd nadal występuje). Prosiłbym o pomoc w znalezieniu przyczyny powstającego błędu.
GRA.png
załączam plik z aplikacją
Aplikacja v1.3.zip

1

gra się fajnie, ale ciężko debuguje :D

Może tworzenie logów ułatwiłoby Ci robotę

np. z czym piłeczka się zderzyła (id? coords? nameOfBlock?, który klocek z jakiej pozycji na jaką się przesunął (spadanie) itd

Dodatkowo może dodanie Levela testowego, gdzie piłeczka startuje lub odbija się z takiej pozycji, że zawsze wywoła tego buga też by ułatwiło szukanie.

Lub nawet krok dalej - cały nowy projekt i wrzucenie tylko tych najważniejszych rzeczy (ball, block, improvement, gameLoop) tak aby Ci to ułatwiało szukanie buga, a nie, że musisz wszystko przeklikiwać, odbijać ręcznie, etc...

0

Sprawa rozwiązana. W programie istnieją dwie pętle jedna przechodzi przez listę bloczków, druga przez listę zaokrąglonych obiektów. Kiedy zbijałem bloczek automatycznie usuwałem w pętli klocek z listy i wypadał zaokrąglony obiekt. Który był usuwany gdy napotkał paletkę bądź wyszedł poza pole gry. Problem polegał na tym, że gdy usunąłem i-ty bloczek z listy następnie miał wypadać obiekt z takim samym indeksem jak bloczek który miał być usunięty. Jednak po usunięciu bloczka pod indeksem tym indeksem stał inny klocek dlatego zaokrąglony obiekt wyskakiwał z innego nie zbitego klocka. Wystarczyło że zamiast usuwać klocek ukrywam go a następnie gdy zaokrąglony obiekt jest usuwany ze swojej listy po wyjściu poza pole gry, usuwam również bloczek z listy bloczków.

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