Spisu treści:
Wideo: Kosmiczna gra wyścigowa wersja 2: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Hej wszystkim. Przed tą wersją gry opublikowałem pierwszą wersję gry. Dzisiaj pokażę Wam Space Race Game w wersji 2. Przyjrzyjmy się krokom…
Krok 1: CZĘŚCI
Oto lista części, których użyłem do wykonania tego projektu:
- Arduino UNO
- Moduł joysticka
- Przewody połączeniowe (męski na męski i męski na żeński)
- Deska do krojenia chleba
Krok 2: SCHEMAT
VCC -> Arduino 5V
BL -> pin Arduino 3
GND -> GND Arduino
CLK (SCLK) -> pin Arduino 8
DIN (MOSI) -> pin Arduino 9
DC -> pin Arduino 10
CE lub CS -> pin Arduino 12
RST (RESET) -> pin Arduino 11
Krok 3: KOD
Kod zawiera objaśnienia funkcji kodu. Łatwo to zrozumiesz. Jeśli masz problem, możesz się ze mną skontaktować.
#włączać
LCD5110 LCD (8, 9, 10, 11, 12); //(clk, cin, dc,, rst, ce)
kontrola logiczna=prawda;
boole'owskie dusmanoldu=prawda;
extern uint8_t SmallFont; //opisz czcionki
extern uint8_t MediumNumbers; extern uint8_t arac; //opisz nasz kształt extern uint8_t dusmanAraci; //opisz kształt wroga const int xpin=A0; //joystick x pin char pozisyon=3; //opisz lokalizację, nasz kształt początkowa lokalizacja 3 int BL=3; int skor=0; int hiz=0; int dusmankonum1; //opisz wroga1 x położenie int dusmankonum2; //opisz wroga2 x położenie int dusmankonum3; //opisz wroga3 x położenie int dusmankonum4; //opisz wroga4 x położenie int dusmankonum5; //opisz wroga5 x położenie int dusmaninYdekonumu;
void oyunEkrani() { //ustaw ekran gry
lcd.clrScr(); lcd.drawRect(0, 0, 47, 47); //rysujemy prostokąt lcd.setFont(SmallFont); //ustaw czcionkę lcd.print("skor", 57, 1); //drukuj wynik lcd.print("hiz", 60, 24); //szybkość drukowania lcd.setFont(MediumNumbers); //ustaw czcionkę lcd.printNumI(skor, 55, 8); //pobierz wynik lcd.printNumI(hiz, 63, 32); //pobierz prędkość lcd.update(); }
void dusmanAracidurum(int yer, int asama){ //ustaw lokalizacje dla wrogich kształtów
if(yer==1){ lcd.drawBitmap(2, asama, dusmanAraci, 7, 7);lcd.update();}//if location=1 narysuj wroga kształt tej lokalizacji if(yer==2){ lcd.drawBitmap(10, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==3){ lcd.drawBitmap(18, asama, dusmanAraci, 7, 7);lcd.update(); } if(yer==4){ lcd.drawBitmap(26, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==5){ lcd.drawBitmap(34, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==6){ lcd.drawBitmap(42, asama, dusmanAraci, 7, 7);lcd.update();} }
void oyunbitti(){ //jeśli nam się nie uda, gra się kończy
while(1){opóźnienie(100); //czekaj 1 milisekundę lcd.clrScr(); lcd.setFont(MałeCzcionki); lcd.print("OYUN BITTI", CENTRUM, 8); //drukuj grę przez lcd.print("skorunuz=", 3, 30); //wydrukuj swój wynik lcd.setFont(MediumNumbers); lcd.printNumI(skor, 60, 25); //pobierz ostatni wynik lcd.update(); } }
pusta konfiguracja () {
pinMode(BL, WYJŚCIE); //ustaw podświetlenie Output pinMode(xpin, INPUT); //ustaw pin x jako wejście lcd. InitLCD(); //zainicjuj ekran lcd lcd.setContrast(55); //ustaw kontrast(od 0 do 127) Serial.begin(9600); //rozpocznij komunikację szeregową }
pusta pętla () {
analogZapis (BL, 350); oyunEkrani();
//joyistic durumu… //ustaw lokalizację joysticka…
int durumx=analogRead(xpin); if(durumx <300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=6 && kontrol==true){ //if location!=3, x state> 600 i kontrola to prawdziwa pozisyon++; //zwiększenie położenia to znaczy przesunięcie kształtu w prawo kontrol=false; } else if(durumx >300 && durumx <600){ kontrol=true; } //pozycja durumu… //stan pozycji… if(pozycja==1){ //jeśli lokalizacja=1; lcd.drawBitmap(2, 41, arac, 7, 7);lcd.update();}//narysuj nasz statek if(pozisyon==2){ lcd.drawBitmap(10, 41, arac, 7, 7); lcd.update();} if(pozycja==3){lcd.drawBitmap(18, 41, arac, 7, 7);lcd.update();} if(pozycja==4){lcd.drawBitmap(26), 41, arac, 7, 7);lcd.update();} if(pozycja==5){ lcd.drawBitmap(34, 41, arac, 7, 7);lcd.update();} if(pozycja ==6){lcd.drawBitmap(42, 41, arac, 7, 7);lcd.update();}
if(dusmanoldu){ //jeśli kształt wroga jest martwy, sprawdź, czy jest martwy
dusmankonum1=pozycja; //narysuj pierwszy wrogi kształt dusmankonum2=random(0, 6);//narysuj gdzieś inny wrogi kształt dusmankonum3=random(0, 6); dusmankonum4=losowy(0, 6); dusmankonum5=losowy(0, 6); dusmaninYdekonumu=0; //przynieś wroga z góry dusmanoldu=false;} //wróg jest odtwarzany, aby nie był martwy
dusmanAracidurum(dusmankonum1, dusmaninYdekonumu);dusmaninYdekonumu++; //narysuj pierwszy kształt wroga i zdobądź go od góry do dołu
dusmanAracidurum(dusmankonum2, dusmaninYdekonumu);dusmaninYdekonumu++; //narysuj drugi kształt wroga i przenieś go od góry do dołu dusmanAracidurum(dusmankonum3, dusmaninYdekonumu);dusmaninYdekonumu++; dusmanAracidurum(dusmankonum4, dusmaninYdekonumu);dusmaninYdekonumu++; if(dusmaninYdekonumu>35 && ((dusmankonum1 ==pozycja)||(dusmankonum2 ==pozycja)||(dusmankonum3 ==pozycja)||(dusmankonum4 ==pozycja))){ //jeśli nasz kształt dotyka wrogich kształtów oyunbitti(); //gra skończona }
if(dusmaninYdekonumu >42){//jeśli nasz kształt ucieknie przed wrogami
dusmanoldu = prawda; //zabij wrogie kształty skor++; //zwiększaj jeden po drugim wynik }
//skora gore hizi artiriyoruz //zwiększ prędkość zgodnie z wynikiem
if (skor>=0 && skor=10 && skor=20 && skor=30 && skor=40 && skor=50){ hiz=6; opóźnienie(5); }
}
Krok 4: MAPA BITOWA KODU
Ponadto musisz dołączyć grafikę bitmapową dla kształtów. Musi to być plik.c.
#include //include dla funkcji programu
const unsigned char arac PROGMEM = { //nasza bitmapa kształtu
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusmanAraci PROGMEM = { //bitmapa statku wroga
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Krok 5: Dzięki za oglądanie
Znaczenie niektórych słów:
Ojun => Gra
Arac = > Kształt
Dusman => Wróg
kontroluj = >kontroluj
Konum, Yer => Lokalizacja
Oyun Bitti => Koniec gry
Skok => Wynik
Hiz => Prędkość
Zalecana:
Utwórz stację kosmiczną w TinkerCad Codeblock--Prosty samouczek: 7 kroków (ze zdjęciami)
Utwórz stację kosmiczną w TinkerCad Codeblock||Łatwy samouczek: Chociaż myśl o życiu w kosmosie może wydawać się science fiction, kiedy to czytasz, Międzynarodowa Stacja Kosmiczna krąży wokół Ziemi z prędkością pięciu mil na sekundę, okrążając Ziemię raz co 90 minut. W tym projekcie dowiesz się
Gra Aruduino LED Szybkie klikanie Gra dla dwóch graczy: 8 kroków
Aruduino LED Game Fast Clicking Two Player Game: Ten projekt jest inspirowany @HassonAlkeim. Jeśli chcesz przyjrzeć się bliżej, oto link, który możesz sprawdzić https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Ta gra jest ulepszoną wersją Alkeima. To jest
Stwórz swoją pierwszą grę wyścigową: 10 kroków
Stwórz swoją pierwszą grę wyścigową: Jeśli kodujesz trochę w Pythonie i chcesz napisać grę, którą możesz mieć w Pygame Zero.W tym samouczku napiszemy prostą grę wyścigową
Bransoletka wyścigowa na orientację: 11 kroków
Bransoletka wyścigu na orientację: Czy kiedykolwiek próbowałeś przejść na wyższy poziom biegów na orientację? Czy masz wszystkie potrzebne informacje? Tutaj zobaczysz, w jaki sposób poprawiliśmy wspaniałą aktywność za pomocą technologii.Stworzymy bransoletkę orientacji, która da ci wiele informacji
Szybka gra reakcji: Wersja na odległość: 5 kroków (ze zdjęciami)
Szybka gra reakcji: Odległość Wersja: Cześć. To jest instrukcja, jak stworzyć grę, która sprawdza zarówno twój czas reakcji, jak i poczucie odległości. Ten projekt jest oparty na starym projekcie, który wykonałem z udziałem dwóch graczy rywalizujących, aby zobaczyć, kto miał szybszy czas reakcji, klikając przycisk w