Mündəricat:
- Addım 1: hissələr
- Addım 2: SCHEMA
- Addım 3: KOD
- Addım 4: BITMAP -ı KODLAYIN
- Addım 5: Baxdığınız üçün təşəkkürlər
Video: Space Race Game Version 2: 5 Addımlar
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Hamıya salam. Bu oyun versiyasından əvvəl oyunun ilk versiyasını nəşr etdim. Bu gün sizə Space Race Game 2 versiyasını göstərəcəm.
Addım 1: hissələr
Bu layihəni hazırladığım hissələrin siyahısı:
- Arduino UNO
- Joystick Modulu
- Jumper telləri (kişidən kişiyə və kişidən qadına)
- Çörək lövhəsi
Addım 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino pin 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE və ya CS -> Arduino pin 12
RST (SIFIRLA) -> Arduino pin 11
Addım 3: KOD
Kodda kod funksiyalarının izahları var. Asanlıqla başa düşəcəksiniz. Bir probleminiz varsa mənimlə əlaqə saxlaya bilərsiniz.
#daxil edin
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, ilk, ce)
boolean kontrol = doğru;
boolean dusmanoldu = doğru;
extern uint8_t SmallFont ; // şriftləri təsvir edin
extern uint8_t MediumNumbers ; xarici uint8_t vasitə ; // şəklimizi təsvir edin extern uint8_t dusmanAraci ; // düşmən formasını təsbit edin const int xpin = A0; // joystick x pin char pozisyon = 3; // yeri təsvir edin, formamızın başlanğıc yeri 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // düşməni təsvir edin1 x yeri int dusmankonum2; // düşməni təsvir edin2 x yeri int dusmankonum3; // düşməni təsvir edin3 x yeri int dusmankonum4; // düşməni təsvir edin4 x yeri int dusmankonum5; // düşməni təsvir edin5 x yeri int dusmaninYdekonumu;
void oyunEkrani () {// oyun ekranını təyin edin
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // düzbucaqlı lcd.setFont (SmallFont) çəkirik; // yazı tipi lcd.print ("skor", 57, 1); // çap lcd.print ("hiz", 60, 24); // çap sürəti lcd.setFont (Medium Numbers); // font lcd.printNumI təyin edin (skor, 55, 8); // lcd.printNumI xalı alın (hiz, 63, 32); // sürəti lcd.update () əldə edin; }
void dusmanAracidurum (int yer, int asama) {// düşmən formaları üçün yerləri təyin edin
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 düşmən bu məkanı şəkilləndirərsə (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 () {// uğursuz olsaq, oyun bitər
isə (1) {gecikmə (100); // 1 milisaniyə gözləyin lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", MƏRKƏZ, 8); // oyunu lcd.print üzərində çap et ("skorunuz =", 3, 30); // hesabınızı çap edin lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // son balı əldə edin lcd.update (); }}
boş quraşdırma () {
pinMode (BL, ÇIXIŞ); // işığı geri çəkin Çıxış pinMode (xpin, INPUT); // x pinini giriş lcd. InitLCD () olaraq təyin edin; // lcd ekran lcd.setContrast (55) başlatın; // kontrastı təyin edin (0 ilə 127 arasında) Serial.begin (9600); // seriyalı ünsiyyətə başlayın}
boşluq döngəsi () {
analogWrite (BL, 350); oyunEkrani ();
// joyistik vəziyyət… // joyistick yerini təyin et …
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == doğru) {// əgər yer! = 1, x state600 && pozisyon! = 6 && kontrol == doğru) {// əgər yer! = 3, x vəziyyəti> 600 və nəzarət doğru pozisyon ++; // yerini artırmaq deməkdir ki, formanı sağa keçir = saxta; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // mövqe vəziyyəti… if (pozisyon == 1) {// yeri = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // əgər gəmimizi çəkin (pozisyon == 2) {lcd.drawBitmap (10, 41, vasitə, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, vasitə, 7, 7); lcd.update ();}
if (dusmanoldu) {// düşmən forması ölmüşsə, yox olduqlarını yoxlayın
dusmankonum1 = mövqe; // ilk düşmən şəklini çək dusmankonum2 = təsadüfi (0, 6); // bir yerə başqa bir düşmən şəkli çək dusmankonum3 = təsadüfi (0, 6); dusmankonum4 = təsadüfi (0, 6); dusmankonum5 = təsadüfi (0, 6); dusmaninYdekonumu = 0; // düşməni yuxarıdan gətir dusmanoldu = false;} // düşmən yenidən yaradılır ki, ölməsinlər
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // ilk düşmən şəklini çəkin və yuxarıdan aşağıya doğru alın
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // ikinci düşmən şəklini çək və yuxarıdan aşağıya dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) //); // oyun bitdi}
if (dusmaninYdekonumu> 42) {// formamız düşmənlərdən qaçsa
dusmanoldu = doğru; // düşmən formalarını öldür++; // hesabı bir -bir artırmaq}
// skora gore hizi artirırıq // skora görə sürəti artırın
əgər (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; gecikmə (5); }
}
Addım 4: BITMAP -ı KODLAYIN
Bundan əlavə, şekiller üçün bitmap qrafikini daxil etməlisiniz. Bir c fayl olmalıdır.
Proqram funksiyası üçün #include // include
const unsigned char arac PROGMEM = {// forma bitmapimiz
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// düşmən gəmisinin bitmapi
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Addım 5: Baxdığınız üçün təşəkkürlər
Bəzi sözlərin mənası:
Oyun => Oyun
Arac => Forma
Dusman => Düşmən
kontrol => nəzarət
Konum, Yer => Yer
Oyun Bitti => Oyun bitdi
Skor => Qol
Hiz => Sürət
Tövsiyə:
7 Segment Clock Version 2: 4 Addımlar
7 Segment Clock Version 2: Salam! Instructables istifadəçisindən 12 saat formatının mövcudluğu ilə bağlı sorğusundan sonra, orijinal layihədə maddi dəyişikliklər etməkdən istifadə etdim. 1-ci versiyadan istifadə edərkən tək başına bir versiyaya ehtiyac duydum, buna görə də bacardım
Homemade Combat Robot Version 2: 6 Addımlar
Homemade Combat Robot Version 2: Beləliklə … Bu, mənim ağır çəkiyə qarşı döyüş robotumun ikinci versiyasıdır! Sizə " Sidewinder " Bu layihə üçün 3D çaplı hissələri (mənim hazırladığım) və 100 dollardan aşağı qiymətə aldığım bəzi elektron parçaları istifadə etdim. CAD istifadə etdim
OBI Wlan Steckdose Version 2 ESP WROOM 02: 4 Addımlar
OBI Wlan Steckdose Version 2 ESP WROOM 02: Dekabr 2018 tarixində WLAN Steckdose və ESP WROOOM 02 Çipləri təqdim edildi. Bu, CE -nin tarixindən asılı olmayaraq, Steckdose -un ən böyük uğuru idi. Jedenfalls texnologiyasından istifadə etmək çox çətindir
Arduino Space Race Oyunun Versiyası _1: 5 Addım
Arduino Space Race Oyunun Versiyası _1: Hey dostlar. Bu gün sizə LCD5110 ekranı və joystic ilə Space Race Oyunu necə edə biləcəyinizi göstərmək istəyirəm
Space Race: Uşaqlarla etmək üçün sadə Arduino Clicker Oyunu: 7 addım
Space Race: Uşaqlarla Birlikdə Olan Arduino Sadə Oyun: Bu gün necə işlədiyini göstərən bir video yükləyirəm! Uşaqlarla birlikdə hazırlana bilən və sonradan tək başına oyuncaq olaraq zövq ala biləcəyiniz bir yer mövzulu təlimatla əylənin. Onlara əməkdaşlıq haqqında tarix öyrətmək üçün bir vasitə kimi istifadə edə bilərsiniz