Dodany gitignore, poprawiona struktura folderów i plików w repozytorium, dodane pierwsze pliki projektu w Quartus.
Założenie repozytorium
Zakończenie przerabiania książki "Systemy embedded w FPGA" autorstwa dr. Piotra Rzeszuta, będącej zbiorem podstawowej wiedzy potrzebnej do rozpoczęcia pracy w środowisku Quartus na płytce MAXimator.
Zrobiony sterownik HDMI ze sprzętowym, testowym generatorem obrazu.
Dołączony VRAM, działający connector RAM-u i sterownika HDMI, poprawione adresowanie pikseli w sterowniku.
Podmiana statycznego obrazu z inicjalizacji pamięci VRAM, obrazem statycznym ustawionym z "kodu".
Zaiplementowany licznik do likwidacji drgania styków i porty wejścia/ wyjścia na przyciski. W oprogramowaniu dodana obsługa przerwań i wyświetlanie reagującego na nie kwadratu.
Gotowy silnik gry (zoptymalizowany po przesadzeniu z zajmowaną przez oprogramowanie pamięcią o jakieś 14kB). W pełni funkcjonalny z obsługą przerwań i interfejsem typu process input, update, render. Na wideo latająca piłka, na razie bez ograniczeń, sterowana przez przyciski. Przycisk "L" kieruje piłkę w lewy górny róg, "R" w prawy dolny, a "RES" zatrzymuje.
Implementacja renderowania obiektów przeniesiona do obiektu "Rectangle" należącego do silnika. Tym samym programista samej gry nie musi się zastanawiać jak wyrenderować swój obiekt. "Tosz to nie jego zmartwienie":wink:
Po drodze było dosyć ciekawie:
Gotowe obiekty dla gracza, siatki i paletki. Do zrobienia jeszcze piłka. Najbliższe plany:
- kolizje, poruszanie piłki, poruszanie AI
- zliczanie punktów
- gameplay, czyli przyspieszająca piłka i inne łakocie
- start gry "Press RES to start". Na razie sam press przez przycisk "RES".
- renderowanie tekstu
Zaiplementowany ruch piłki, paletki gracza, paletki "AI" (na podstawie wysokości piłki wysyłane są polecenia processInput tj. funkcji, która przy normalnym graczu jest używana do reakcji paletki na przerwania), kolizje piłki ze ścianami i paletkami (AABB), paletki ze ścianami(zwykłe blokowanie ruchu jeżeli paletka jest przy granicy). Najbliższe plany:
- gameplay, czyli przyspieszająca piłka i inne łakocie
- zliczanie punktów i renderowanie jako tekst
- start gry "Press RES to start"
Szybka poprawa jakości kodu, niestety z naciskiem nie na wygląd i uniwersalność, ale na ilość zajmowanej pamięci. Na razie uzysk to około 312 bajtów. Nie jest to wiele ale przy obecnych planach i wyniku 3016 bajtów pozostałych na stack i heap to całkiem nieźle. Najbliższe plany:
- gameplay, czyli przyspieszająca piłka i inne łakocie
- zliczanie punktów i renderowanie jako tekst
- start gry "Press RES to start"
Implementacja wyświetlania znaków, która w grze została użyta do wyświetlenia wyników. Zaimplementowane również przyspieszanie piłki po kolizji z dowolnym obiektem. Resetowanie wyników po przekroczeniu 9 punktu oznacza wygraną zawodnika, którego punkty przekroczyły limit.
Poprawiony gameplay przez zwiększenie prędkości startowej piłki i odpowiednie ograniczone zmniejszanie opóźnienia update-u. Podobnie paletka ma mniej ograniczoną częstotliwość updatu, dzięki czemu prędkość wzrosła ponad dwa razy. To jest prawdopodobnie koniec tej wersji projektu.