Chcę nauczyć się kolejnego języka programowania. Padło na c++, a że ja najlepiej przyswajam wiedzę robiąc coś a nie wkuwając teorię to napisałem sobie arkanoida przy użyciu SDL i OpenGL.
Wiem, że kod nie jest idealny i wymaga poprawek jednak wrzucam go by nie robić poprawek w ciemno tylko by uzyskać rady i wskazówki jak zrobić to dobrze.
Kilka informacji na temat "ficzerów" gry:
- Cztery mapy.
- Trzy piłeczki ("życia").
- Splash screen i ekrany powiadamiające o wygranej/przegranej/przejściu poziomu.
Znane bugi:
- Kolizje nie są do końca poprawnie wykrywane. Prawdopodobnie spowodowane jest to tym że róg prostokąta należy tak samo do poziomej ściany jak i pionowej przez co gdy sprawdzam kolizję ze ścianami to wykrywa ją podwójnie.
- Nie zwalnia tekstur przez co są wycieki pamięci.
TODO:
- Menu.
- Punkty za zbijanie bloczków.
- Wyświetlanie punktów i ilości pozostałych piłeczek.
- Większa ilość bloczków które trzeba zbić uderzając 2 lub więcej razy.
- Bonusy (szersza paletka, dodatkowa piłeczka, większa/mniejsza prędkość piłeczki itp.).
- Większa ilość map.
- Grafika (jakieś sensowne tekstury).
- Dźwięk.
Poprawki w kodzie które wiem, że muszę zrobić:
- Wydzielenie klasy bazowej dla podstawowego obiektu gry po której będą dziedziczyły klasy paletki, piłeczki, bloczku i poziomu.
- Wydzielenie klasy bazowej dla ekranów typu SplashScreen czy informujących o przejściu poziomu/gry itp.
Najbardziej interesuje mnie informacja czy mam w kodzie jakieś UB i jak się go pozbyć, oraz jakie są zasady formatowania kodu c++, ale oczywiście każda wskazówka, rada czy konstruktywna krytyka jest mile widziana :)
Kod w załączniku. Zwykłe archiwum RAR wirusów nie ma ewentualnie link do GitHub: https://github.com/babubabu89/Arkanoid
- Arkanoid.rar (53 KB) - ściągnięć: 111
rar
ów nikt nie lubi - wrzucajzip
y jak już coś - przynajmniej system będzie umiał je rozpakować :P