Orodha ya maudhui:

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

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

Video: Toleo la Mchezo wa Mbio za Nafasi ya Arduino _1: Hatua 5
Video: Zuchu Amwaga Machozi Baada Ya kupewa Kiss Na Diamond Platinumz 2024, Novemba
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: