Toleo la Mchezo wa Mbio za Nafasi ya Arduino _1: Hatua 5
Toleo la Mchezo wa Mbio za Nafasi ya Arduino _1: Hatua 5
Anonim
Image
Image

Haya marafiki. Leo ni ganna kukuonyesha jinsi unaweza kutengeneza Mchezo wa Mbio za Nafasi na skrini ya LCD5110 na joystic. Wacha tuangalie hatua…

Hatua ya 1: MAHITAJI

SCHEMA
SCHEMA

Hapa kuna orodha ya sehemu ambazo nilikuwa nikifanya mradi huu:

  • Arduino UNO
  • Moduli ya Joystick
  • Wiring Jumper (wa kiume hadi wa kiume na wa kiume kwa wa kike)
  • Bodi ya mkate

Hatua ya 2: SCHEMA

VCC -> Arduino 5V

BL -> pini ya Arduino 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pini 8

DIN (MOSI) -> Arduino pini 9

DC -> Siri ya Arduino 10

CE au CS -> pini ya Arduino 12

RST (Rudisha) -> Arduino pin 11

Hatua ya 3: CODE

CODE
CODE

Nambari hiyo ina maelezo ya kazi za kificho. Utaielewa kwa urahisi. Ikiwa una shida, unaweza kuwasiliana nami.

# pamoja

LCD5110 LCD (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

nje uint8_t SmallFont ; // eleza fonti za nje uint8_t MediumNumbers ; nje uint8_t arac ; // kuelezea sura yetu nje uint8_t dusman_araci ; // kukataa sura ya adui const int xpin = A0; // fimbo ya shangwe x pin char pozisyon = 2; // kuelezea eneo, sura yetu kuanza eneo 2 boolean kontrol = kweli; dusman wa booleanOldu = kweli; int skor = 0; int hiz = 0; int dusmanKonumu1; // eleza adui1 x eneo int dusmanKonumu2; // eleza adui2 x eneo int dusmaninYdeKonumu; // kuelezea maadui y eneo

utupu dusmanAraci (int yer, int asama) {// weka maeneo ya maumbo ya adui

ikiwa (yer == 1) {// ikiwa eneo = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // chora sura ya adui} ikiwa (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } ikiwa (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

batili oyunBitti () {// ikiwa tutashindwa, mchezo umekamilika

wakati (1) {kuchelewesha (100); // subiri 1 milisecond lcd.clrScr (); // futa skrini LCD.setFont (SmallFont); // weka font lcd.print ("MCHEZO JUU", KITUO, 20); // chapa lcd.update (); // sasisha skrini}}

kuanzisha batili () {pinMode (BL, OUTPUT); // kuweka nyuma Pato la taa la LCD InitLCD (); // initilaze skrini ya LCD lcd.setContrast (55); // kuweka tofauti (karibu 0 hadi 127) Serial.begin (9600); // kuanza uunganishaji mfululizo]

kitanzi batili () {

AnalogWrite (BL, 200);

// kuweka skrini ya mchezo lcd.drawRect (0, 0, 47, 47); // tunachora mstatili LCD.setFont (SmallFont); // kuweka font lcd.print ("skor", 53, 0); // alama ya printf lcd.setFont (MediumNumbers); // weka font lcd.printNumI (skor, 59, 7); // pata alama lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // kasi ya kuchapisha lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // pata kasi lcd.update (); // sasisho

// weka eneo la joyistick int x = analogRead (xpin); ikiwa (x <300 && pozisyon! = 1 && kontrol == kweli) {// ikiwa eneo! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 na udhibiti ni pozisyon ++ ya kweli; // ongeza eneo inamaanisha hoja sura kwa udhibiti wa kulia = uwongo; } kingine ikiwa (x> 300 && x <600) {kontrol = true; } Serial.println (x); // kwa kujifunza x hali // kuweka eneo la sura yetu lcd.clrScr (); // futa skrini ikiwa (pozisyon == 1) {// ikiwa eneo = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // chora meli yetu ikiwa (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

ikiwa (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

ikiwa (dusmanOldu) {// ikiwa sura ya adui imekufa, angalia wamekufa

dusmanKonumu1 = pozisyon; // chora sura ya kwanza ya adui dusmanKonumu2 = nasibu (0, 4); // chora sura nyingine ya adui mahali pengine dusmaninYdeKonumu = 0; // leta adui kutoka kwa dusman wa juuOldu = uwongo;} // adui ameumbwa tena kwa hivyo hawajafa dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // chora sura ya kwanza ya adui na uipate kutoka juu hadi chini dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // chora sura ya pili ya adui na uipate kutoka juu hadi chini ikiwa (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// ikiwa sura yetu inagusa maumbo ya adui oyunBitti ();} // mchezo umeisha ikiwa (dusmaninYdeKonumu> 40) {// ikiwa umbo letu linatoroka kutoka kwa maadui dusmanOldu = kweli; // kuua maumbo ya adui skor ++;} // ongeza moja kwa moja alama // ongeza kasi kulingana na alama ikiwa (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; kuchelewesha (40); }}

Hatua ya 4: CODE BITMAP

Kwa kuongezea, lazima ujumuishe picha ya bitmap kwa maumbo. Lazima iwe faili ya.c na jina moja na jina la nambari. Pia, inapaswa kuwa katika faili moja.

// ------------------------------------------------ ------------------ / bitmap_converter / // ------------------------------------------ ----------------------------------- pamoja na // pamoja na kazi ya progmem

const unsigned char arac PROGMEM = {// sura yetu bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// adui meli bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Hatua ya 5: ASANTE KWA KUANGALIA

ASANTE KWA KUANGALIA
ASANTE KWA KUANGALIA

Kabla ı kuanza kushiriki miradi yangu, ı ilikuwa na maandishi kwa maneno ya Kituruki kwa hivyo sikuweza kutoa nafasi kwa kila maneno kwenda kwa kiingereza. Hapa maneno ya kutafsiri ambayo ı hutumia mradi huu, Oyun = Mchezo

Arac = Umbo

Dusman = Adui

kudhibiti = kudhibiti

Konum, Yer = Mahali

Oyun Bitti = Mchezo Umekamilika

Skor = Alama

Hiz = Kasi

Ilipendekeza: