====== Architektura aplikacji ====== ===== Biblioteki ===== Użyliśmy bibliotek: * pygame (do rysowania gry, odtwarzania efektów dźwiękowych i pobierania inputu) * pytest (do testów hitboxów i wektorów) * pyinstaller (do pakowania gry do dystrybucji) Mogliśmy użyć wektorów z pygame, ale w związku z wymaganiami konkursu (fizykę trzeba było zaimplementowac samodzielnie) zdecydowaliśmy się na napisanie własnych. Napisaliśmy również własne hitboxy. ===== Jak działa nasza aplikacji ===== Punktem startowym aplikacji jest plik main.py. Importuje on klase Game i uruchamia pętlę główną na obiekcie gry. Gra w pętli głównej aktualizuje wszysktie obiekty. Zależnie od stanu gra: * Wyświetla menu główne * Wyświetla ustawienia wyścigu * Wyświetla wyścig * Wyświetla ekran końcowy * Wyświetla ekran z wszystkimi wynikami ===== Struktura plików ===== W folderze assets znajdują się wszystkie assety. Pliki źródłowe znajdują się w folderze głównym. Najważniejsze pliki: * game.py - zawiera klasę gry i całą najważniejszą logikę aplikacji * car.py - zawiera kod samochodów gracza i przeciwników * vector.py - zawiera kod wektorów * main_menu.py, game_settings.py, results_screen.py, end_screen.py - zawierają kod 4 różnych menu * build.bat - skrypt kompilowania gry (na windowsa)