Korzystając z dobrodziejstwa bibliotek na TFT przygotowanych przez Mirka przygotowałem port klasycznej gierki na zestaw ATB. Opis hardware/połączeń: - ATB-GLCD TFT konwerter podłączony jest do portu A (dane), portu C (linie sterujące) oraz PD.2/INT0 (reakcja na dotyk). Domyślnie jak w przykładzie z książki. - Karta SD podłączona jest do portu B od 1 do 7 pinu. Nawet nie trzeba za bardzo kombinować - połączenie 1 do 1 7-żyłową taśmą (lub 8-żyłową, gdzie ostatnia linia jest niewykorzystana ). Wystarczy tylko zdjąć zworkę PwrON. - Buzzer podłączony jest do PB.0.
Założenia gry: - Gra polega na ułożeniu obrazka z 12 elementów, gdzie 1 jest pusty. Przykład na zdjęciu poniżej.
- Można przesunąć element tylko na pustą pozycję. Gra kończy się, gdy wszystkie elementy znajdą się na właściwym miejscu. Nie jest liczony czas, a liczba wykonanych ruchów. Wynik ten jest pokazywany na końcu raz oczywiście podczas gry na wolnym polu.
Założenia programu: - Postanowiłem skorzystać z wolnej pamięci w sterowniku wyświetlacza o czym jest mowa w książce "Język C Pasja programowania mikrokontrolerów 8-bitowych" tak więc nie jest widoczne wczytywanie żadnych grafik z karty SD. Wykorzystałem wszystkie dostępne bufory, które na początku ładowane są 11 obrazkami, a w trakcie gry tylko zamieniane. Jako, że w tle modyfikowane są 4 ekrany, a wyświetlany jest 5 to przesuwanie bloków i zmiana 4 małych obrazków zajmuje około sekundy skorzystałem z buzzera, który sygnalizuje gotowość do reakcji na kolejny dotyk. - Obrazek do gry to specjalnie przygotowane 12 plików w formacie rg8 (opis w książce, jest on podobny do bmp, ale bez niepotrzebnych danych oraz odpowiednio uszeregowaną kolejnością bajtów RGB). Troszkę czasu zajęłoby przygotowanie tych plików na piechotę. Dlatego też przygotowałem programik do konwersji dowolnych obrazków na 12 plików w formacie rg8, który najpierw skaluje obraz do rozdzielczości 320x240, a następnie zapisuje 12, 16, 20 lub 25 plików (do wyboru) w formacie rg8 lub bmp z kolejnymi numerami. W nazwie nie może być cyfr, ponieważ program na AVR przeszukuje kartę SD i ciąg liter to część wspólna wykorzystana do sklejania nazw plików wyświetlanych na TFT.
Nie zastosowałem, żadnego algorytmu losowania początkowego ułożenia "kafelków". Co oczywiście można zrobić jak ktoś uzna, że ma za łatwo. Tutaj również zawsze ostatni z elementów jest w prawym dolnym rogu co znacznie ułatwia ukończenie tego wyzwania.
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- reszta to kody dołączone do drugiej książki Mirka.
Jak będzie potrzeba to oczywiście mogę wytłumaczyć działanie poszczególnych funkcji, ale do zabawy wystarczy plik hex, którym nalezy zaprogramować ATMEGĘ644PA i przestawić na zewnętrzne taktowanie 20MHz oraz program do generowania obrazków. Następnie obrazki należy wrzucić na kartę, ale wszystkie inne obrazki w formacie rg8 muszą zostać z niej usunięte. Przy starcie program najpierw szuka plików i jak znajdzie to wyświetla nazwę serii i od razu ładuje 4 ekrany. Jak pojawi się napis READY należy dotknąć ekran i ładowany jest jeszcze jeden ekran. Po usłyszeniu sygnału dźwiękowego można zacząć główkować.
Załączniki:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
Krauser ---> matko jedyna ależ ty masz pomysły ..... normalnie odjazd .... i już nie chodzi mi o to że to na ATB czy ze zdjęciem ATB - ale o fakt właśnie pokazania TAK FAJNEGO wykorzystania tego buforowania sprzętowego w wyświetlaczu !!!
no przy takiej grze tzn przy takich reakcjach ekranu kto by pomyślał że za jego plecami kryje się taki mały 8-bitowy biedny mały pikuś , który ponoć jest już na wymarciu
Świetny pomysł, rewelacyjna realizacja, dodatkowo program na PC, normalnie prześliczny PROJEKT !!! z mojej strony pełen szacunek za pokazanie kolejny raz takich swoich możliwości. SZOK i uznanie.
Po twoich projektach mam normalnie chęć rzucić wszystko inne i zająć się tylko takimi rzeczami .... ale niestety rzeczywistość jeszcze mnie przytłacza wieloma innymi obowiązkami i muszę to wciąż zostawiać sobie na później i później .... kuuuuurka wodna
hmmm.... no dobra super gratka Krauser rządzisz .....
_________________ Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]
Aż chce się rzucić wszystko i też fajną grę na te małe 8 bitowce stworzyć , i poczuć się jak był rok 1987, kiedy to pisząc grę liczyło się każdy cykl procesora aby tylko zdążyć przed kolejnym odświeżaniem pionowym ekranu:)
Krauser chyba nie jednego tu z Nas na forum podpaliłeś do napisania jakiejś gierki.
No ja wczoraj podczas podróży jako pasażer grywałem sobie w Stunt Car Racer na emulatorze C64 na Androidzie ... mam ostatnio takie chęci żeby w te staruchy sobie pograć.
No ja wczoraj podczas podróży jako pasażer grywałem sobie w Stunt Car Racer na emulatorze C64 na Androidzie ... mam ostatnio takie chęci żeby w te staruchy sobie pograć.
Super sprawa, widać wielkie umiejętności i doświadczenie kolegi Krauser. Osobiście posiadam ten wyświetlacz oraz konwerter więc na pewno przetestuje!! Osobiście pełen szacun !! Pzdr
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników