Mundarija:

Kosmik poyga o'yini versiyasi 2: 5 qadam
Kosmik poyga o'yini versiyasi 2: 5 qadam

Video: Kosmik poyga o'yini versiyasi 2: 5 qadam

Video: Kosmik poyga o'yini versiyasi 2: 5 qadam
Video: КАТТА УЙИН.Хиндистон киноси узбек тилида.БОЛЬШОЙ ИГРА.ИНДИЙСКИЙ ФИЛЬМ. 2024, Noyabr
Anonim
Image
Image

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

SCHEMA
SCHEMA

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

KOD
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: