Spisu treści:

LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2: 7 kroków
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2: 7 kroków

Wideo: LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2: 7 kroków

Wideo: LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2: 7 kroków
Wideo: [2bajty] Lecimy w kosmos 2024, Listopad
Anonim
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2
LCD Invaders: Space Invaders jak gra na wyświetlaczu LCD 16x2

Nie ma potrzeby przedstawiania legendarnej gry „Space Invaders”. Najciekawszą cechą tego projektu jest to, że wykorzystuje on wyświetlanie tekstu do wyjścia graficznego. Osiąga się to poprzez zaimplementowanie 8 niestandardowych znaków.

Tutaj możesz pobrać kompletny szkic Arduino:

github.com/arduinocelentano/LCD_invaders/

Kieszonkowe dzieci

Płytka Arduino UNO

Osłona klawiatury LCD

Kabel USB do przesyłania szkiców

Krok 1: Projekt gry

Design gry
Design gry

Ekran nie pozwala na kontrolowanie oddzielnych pikseli i zapewnia tylko dwie linijki tekstu, co nie wystarcza do gry. Ale pozwala na zaimplementowanie do 8 niestandardowych znaków. Sztuczka polega na przetworzeniu każdego znaku 5x8 pikseli jako dwóch komórek gry o wymiarach 5x4 pikseli. To znaczy, że będziemy mieć pole gry 16x4, co ma sens. 8 znaków wystarczy, aby zaimplementować sprite'y dla statku kosmicznego gracza, pociski i animowanych kosmitów. Ponieważ sprite'y są 5x4, a postacie 5x8, będziemy potrzebować postaci z dwoma sprite'ami, takimi jak sprite „statek kosmiczny i kula”, „obcy i sprite kula” itp. Wszystkie niestandardowe postacie są pokazane na obrazku.

Krok 2: Przyciski przetwarzania

Przyciski przetwarzania
Przyciski przetwarzania

Zazwyczaj wszystkie przyciski na ekranie LCD są podłączone do tego samego pinu analogowego. Istnieją różne wersje osłony LCD, więc prawdopodobnie będziesz musiał nieznacznie zmienić literały całkowite w moim kodzie przetwarzania przycisków.

Krok 3: Hierarchia klas

Hierarchia klas
Hierarchia klas

Zaimplementowałem klasę bazową GameObject, która posiada współrzędne i pola prędkości oraz procesy kolizji. Po nim dziedziczone są klasy Statek, Alien i Bullet.

Krok 4: Aktualizacja ekranu

Aktualizacja ekranu
Aktualizacja ekranu

Logika renderowania może wydawać się nieco skomplikowana, ponieważ musimy przekształcić logikę gry 16x4 w wyświetlacz 16x2. Proszę przeczytać komentarze w kodzie w celu uzyskania dalszych informacji. Aby uniknąć migotania, użyłem dwuwymiarowej tablicy znaków jako bufora tekstowego. Pozwala na wykonanie kilku (po jednej na każdą linię) operacji drukowania w celu aktualizacji ekranu.

Krok 5: Logika gry

Logika gry
Logika gry

Oto serce gry. Pętla główna zmienia współrzędne wszystkich obiektów, sprawdza wszelkiego rodzaju kolizje i zdarzenia naciśnięcia przycisku. Szybkość obcych i prawdopodobieństwo ich strzelania wzrasta z poziomu na poziom. Ale nagroda za wynik również wzrasta.

Krok 6: Pisanka

Pisanka
Pisanka

Nie ma poziomu po 42. Poważnie. To najwyższy poziom życia, wszechświata i wszystkiego.:)

Zalecana: