Mundarija:
- 1 -qadam: kerak
- 2 -qadam: SCHEMA
- 3 -qadam: KOD
- 4 -qadam: BITMAP -ni KODLASH
- 5 -qadam: Ko'rganingiz uchun RAHMAT
Video: Arduino kosmik poyga o'yini versiyasi _1: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Salom do'stlar. Bugun men sizga LCD5110 ekrani va joystik yordamida kosmik poyga o'yinini qanday yaratishni ko'rsatmoqchiman.
1 -qadam: kerak
Men bu loyihani amalga oshirish uchun ishlatgan qismlar ro'yxati:
- Arduino UNO
- Joystik moduli
- Jumper simlari (erkakdan erkakga va erkakdan ayolga)
- Non paneli
2 -qadam: 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
Idoralar yoki CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
3 -qadam: KOD
Kodda kod funktsiyalarining tushuntirishlari mavjud. Siz buni osongina tushunasiz. Agar sizda muammo bo'lsa, men bilan bog'lanishingiz mumkin.
#qo'shing
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, DC, birinchi, ce)
int BL = 3;
extern uint8_t SmallFont ; // shriftlarni tavsiflang extern uint8_t MediumNumbers ; tashqi uint8_t vositasi ; // shaklimizni tasvirlab bering extern uint8_t dusman_araci ; // dushman shaklini tavsiflang const int xpin = A0; // joystick x pin char pozisyon = 2; // joyni tasvirlab bering, bizning shakl boshlanish joyi 2 boolean kontrol = rost; boolean dusmanOldu = rost; int skor = 0; int hiz = 0; int dusmanKonumu1; // dushmanni tasvirlab bering1 x manzil int dusmanKonumu2; // dushmanni tasvirlab bering2 x manzil int dusmaninYdeKonumu; // dushmanlarning joylashishini tasvirlab bering
void dusmanAraci (int yer, int asama) {// dushman shakllari uchun joylarni belgilang
if (yer == 1) {// agar manzil = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // dushman shaklini chizish} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// agar muvaffaqiyatsizlikka uchrasak, o'yin tugaydi
while (1) {kechiktirish (100); // kutish 1 milisekund lcd.clrScr (); // ekranni tozalash lcd.setFont (SmallFont); // shriftni o'rnatish lcd.print ("O'YIN OVER", MARKAZI, 20); // lcd.update () ni chop eting; // ekranni yangilang}}
void setup () {pinMode (BL, OUTPUT); // orqa nuri o'rnating Chiqish lcd. InitLCD (); // lcd.setContrast (55) LCD displeyini ishga tushiring; // kontrastni o'rnatish (0 dan 127 gacha) Serial.begin (9600); // ketma -ket muloqotni boshlash}
void loop () {
analogWrite (BL, 200);
// o'yin ekranini o'rnatish lcd.drawRect (0, 0, 47, 47); // biz lcd.setFont (SmallFont) to'rtburchaklar chizamiz; // shriftni o'rnatish lcd.print ("skor", 53, 0); // printf ball lcd.setFont (MediumNumbers); // lcd.printNumI shriftini o'rnating (skor, 59, 7); // lcd.setFont (SmallFont) ballini oling; lcd.print ("hiz", 56, 25); // bosib chiqarish tezligi lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // lcd.update () tezligini olish; // yangilash
// joyistik manzilini belgilang int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// agar manzil! = 3, x holati> 600 va nazorat haqiqiy pozisyon ++; // joylashuvni oshirish, bu shaklni o'ng tomonga siljitish demakdir kontrol = false; } if if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // x holatini o'rganish uchun // formamiz o'rnini belgilang lcd.clrScr (); // ekranni tozalang if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, vosit, 12, 8);} // bizning kemani chizish agar (pozisyon == 2) {lcd.drawBitmap (18, 37, vosit, 12, 8);}
agar (pozisyon == 3) {
lcd.drawBitmap (34, 37, vosit, 12, 8);}
if (dusmanOldu) {// agar dushman shakli o'lik bo'lsa, ular o'lganligini tekshiring
dusmanKonumu1 = pozisyon; // birinchi dushman shaklini chizish dusmanKonumu2 = tasodifiy (0, 4); // boshqa joyga dushman shaklini chizish dusmaninYdeKonumu = 0; // dushmanni yuqoridan keltiring dusmanOldu = false;} // dushman qayta yaratildi, shuning uchun ular o'lik emas dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // birinchi dushman shaklini chizish va uni yuqoridan pastgacha olish dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // dushmanning ikkinchi shaklini chizamiz va uni yuqoridan pastgacha olamiz, agar (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// agar bizning shakli dushmanga tegsa o'yinBitti ();} // o'yin tugadi if (dusmaninYdeKonumu> 40) {// agar bizning shakli dushmanlardan qochsa dusmanOldu = true; // dushman shakllarini o'ldiring skor ++;} // ballni birma -bir oshiring // agar skorga ko'ra tezlikni oshiring (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; kechikish (40); }}
4 -qadam: BITMAP -ni KODLASH
Bundan tashqari, siz shakllar uchun bitmap grafikasini kiritishingiz kerak, bu.c fayli va kod nomi bilan bir xil nom bo'lishi kerak, shuningdek, u xuddi shu faylda bo'lishi kerak.
// ------------------------------------------------ ------------------------------ // LCD yordamchisi yaratgan fayl // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // programma funktsiyasi uchun o'z ichiga oladi
const unsigned char arac PROGMEM = {// bizning shakl bitmapimiz
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// dushman kema bitmapi
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
5 -qadam: Ko'rganingiz uchun RAHMAT
Men o'z loyihalarimni baham ko'rishni boshlashimdan oldin, men turkcha so'zlar bilan kodladim, shuning uchun har bir so'zni inglizchaga aylantira olmadim.
O'yin = O'yin
Arak = Shakl
Dusman = Dushman
nazorat = nazorat
Konum, Yer = Manzil
O'yin Bitti = O'yin tugadi
Skor = ball
Xiz = tezlik
Tavsiya:
DIY poyga o'yini simulyatori 1 -qism: 6 qadam
DIY poyga o'yini simulyatori 1 -QISM: Hammaga salom, xush kelibsiz, bugun men sizga "Racing Game Simulator" ni qanday yaratishni ko'rsataman. Arduino UNO yordamida. YouTube kanali " kanalimga obuna bo'lishingizga ishonch hosil qiling A Builds (Bu yerni bosing) " Bu qurilish blogi, shuning uchun
DIY poyga o'yini simulyatori -- F1 simulyatori: 5 qadam
DIY poyga o'yini simulyatori || F1 simulyatori: Hammaga salom Kanalimga xush kelibsiz, bugun men sizga "Racing Game Simulator" ni qanday yaratishni ko'rsataman. Arduino UNO yordamida. bu blog emas, balki simulyatorning umumiy ko'rinishi va sinovi. To'liq qurilish blogi yaqinda keladi
Kosmik poyga o'yini versiyasi 2: 5 qadam
Space Race Game 2 -versiya: Salom hammaga. O'yin versiyasidan oldin men o'yinning birinchi versiyasini e'lon qildim. Bugun men sizga Space Race Game 2 versiyasini ko'rsataman. Keling, qadamlarni ko'rib chiqaylik
Birinchi poyga o'yini yarating: 10 qadam
Birinchi poyga o'yiningizni yarating: Agar siz Python -da kod yozgan bo'lsangiz va o'yin yozmoqchi bo'lsangiz, Pygame Zero -da bo'lishi mumkin. Bu qo'llanmada biz oddiy poyga o'yini yozamiz
Kosmik poyga: Bolalar bilan qilish mumkin bo'lgan oddiy Arduino Clicker o'yini: 7 qadam
Kosmik poyga: Bolalar bilan ishlash uchun oddiy Arduino Clicker o'yini: ¡ Men bugun qanday ishlashini ko'rsatadigan videoni yuklayman! Keling, bolalar bilan birga tayyorlanishi mumkin bo'lgan bo'sh joy mavzusidagi ko'rsatma bilan zavqlanamiz, keyin esa ular yolg'iz o'yinchoq sifatida zavqlanishadi. Siz ularni hamkorlik haqida tarixni o'rgatish vositasi sifatida ishlatishingiz mumkin