Mundarija:
- 1 -qadam: QISMLAR
- 2 -qadam: SCHEMA
- 3 -qadam: KOD
- 4 -qadam: BITMAP -ni KODLASH
- 5 -qadam: Ko'rganingiz uchun tashakkur
Video: Kosmik poyga o'yini versiyasi 2: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Hammaga salom. 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 …
1 -qadam: QISMLAR
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, cin, shahar, birinchi, ce)
mantiqiy nazorat = rost;
boolean dusmanoldu = rost;
extern uint8_t SmallFont ; // shriftlarni tavsiflang
extern uint8_t MediumNumbers ; tashqi uint8_t vositasi ; // shaklimizni tasvirlab bering extern uint8_t dusmanAraci ; // dushman shaklini tavsiflang const int xpin = A0; // joystick x pin char pozisyon = 3; // joyni tasvirlab bering, bizning shaklimiz boshlanish joyi 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // dushmanni tavsiflang1 x location int dusmankonum2; // ta'rif dushman2 x manzil int dusmankonum3; // ta'rif dushman3 x manzil int dusmankonum4; // dushmanni tasvirlab bering4 x location int dusmankonum5; // ta'rif dushman5 x manzil int dusmaninYdekonumu;
void oyunEkrani () {// o'yin ekranini o'rnating
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // biz lcd.setFont (SmallFont) to'rtburchaklar chizamiz; // shriftni o'rnatish lcd.print ("skor", 57, 1); // bosma ball lcd.print ("hiz", 60, 24); // bosib chiqarish tezligi lcd.setFont (MediumNumbers); // shriftni o'rnatish lcd.printNumI (skor, 55, 8); // lcd.printNumI ball olish (hiz, 63, 32); // lcd.update () tezligini olish; }
void dusmanAracidurum (int yer, int asama) {// dushman shakllari uchun joylarni belgilang
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 dushman bu joyni chizsa 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 () {// agar muvaffaqiyatsizlikka uchrasak, o'yin tugaydi
while (1) {kechiktirish (100); // kutish 1 milisekund lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", MARKAZI, 8); // lcd.print ustidan o'yinni chop etish ("skorunuz =", 3, 30); // ballaringizni lcd.setFont (MediumNumbers) chop eting; lcd.printNumI (skor, 60, 25); // oxirgi balni olish lcd.update (); }}
bo'sh o'rnatish () {
pinMode (BL, OUTPUT); // orqa nuri o'rnating Chiqish pinMode (xpin, INPUT); // x pinni kirish lcd. InitLCD () sifatida o'rnating; // 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, 350); o'yinEkrani ();
// joyistik holat… // joyistik manzilini belgilash …
int holatx = analogRead (xpin); if (holatx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 va nazorat haqiqiy pozisyon ++; // joylashuvni oshirish, bu shaklni o'ng tomonga siljitish demakdir kontrol = false; } if if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon holati… // pozitsiya holati… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, vosit, 7, 7); lcd.update ();} // bizning kemamizni if (pozisyon == 2) {lcd.drawBitmap (10, 41, vosit, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, vosit, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26), 41, vosit, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, vosit, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, vosit, 7, 7); lcd.update ();}
if (dusmanoldu) {// agar dushman shakli o'lik bo'lsa, ular o'lganligini tekshiring
dusmankonum1 = pozisyon; // birinchi dushman shaklini chizish dusmankonum2 = tasodifiy (0, 6); // boshqa joyga dushman shaklini chizish dusmankonum3 = tasodifiy (0, 6); dusmankonum4 = tasodifiy (0, 6); dusmankonum5 = tasodifiy (0, 6); dusmaninYdekonumu = 0; // dushmanni yuqoridan keltiring dusmanoldu = false;} // dushman qayta yaratildi, shuning uchun ular o'lmagan
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // birinchi dushman shaklini chizish va uni yuqoridan pastgacha olish
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // dushmanning ikkinchi shaklini chizamiz va uni yuqoridan pastgacha olamiz dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// agar bizning shakli dushmanga tegsa); // o'yin tugadi}
if (dusmaninYdekonumu> 42) {// agar bizning shakli dushmanlardan qochsa
dusmanoldu = rost; // dushman shakllarini o'ldirish skor ++; // ballni birma -bir oshiring}
// skora gore hizi artiramiz // ballga qarab tezlikni oshirish
agar (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; kechikish (5); }
}
4 -qadam: BITMAP -ni KODLASH
Bundan tashqari, siz shakllar uchun bitmap grafikasini kiritishingiz kerak, bu.c fayli bo'lishi kerak.
#include // include uchun progmem funktsiyasi
const unsigned char arac PROGMEM = {// bizning shakl bitmapimiz
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// dushman kema bitmapi
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
5 -qadam: Ko'rganingiz uchun tashakkur
Ba'zi so'zlarning ma'nosi:
O'yin => O'yin
Arac => Shakl
Dusman => Dushman
nazorat => nazorat
Konum, Yer => Manzil
O'yin Bitti => O'yin tugadi
Skor => Gol
Hiz => 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
Arduino kosmik poyga o'yini versiyasi _1: 5 qadam
Arduino kosmik poyga o'yini versiyasi _1: Salom do'stlar. Bugun men sizga LCD5110 ekrani va joystik yordamida kosmik poyga o'yinini qanday yaratishni ko'rsatmoqchiman
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