ዝርዝር ሁኔታ:

የአርዱዲኖ የጠፈር ውድድር ጨዋታ ስሪት _1: 5 ደረጃዎች
የአርዱዲኖ የጠፈር ውድድር ጨዋታ ስሪት _1: 5 ደረጃዎች

ቪዲዮ: የአርዱዲኖ የጠፈር ውድድር ጨዋታ ስሪት _1: 5 ደረጃዎች

ቪዲዮ: የአርዱዲኖ የጠፈር ውድድር ጨዋታ ስሪት _1: 5 ደረጃዎች
ቪዲዮ: Arduino በከፊል ሲብራራ https://t.me/arduinoshopping 2024, ሀምሌ
Anonim
Image
Image

ሰላም ወዳጆች። ዛሬ እኔ ጋና እንዴት የ Space555 ጨዋታ በ LCD5110 ማያ ገጽ እና በ joystic ማድረግ እንደሚችሉ ያሳዩዎታል። የእይታ ደረጃዎችን…

ደረጃ 1: ያስፈልገዋል

SCHEMA
SCHEMA

ይህንን ፕሮጀክት ለመሥራት የተጠቀምኩባቸው ክፍሎች ዝርዝር እነሆ-

  • አርዱዲኖ UNO
  • ጆይስቲክ ሞዱል
  • ዝላይ ሽቦዎች (ከወንድ ወደ ወንድ እና ከወንድ ወደ ሴት)
  • የዳቦ ሰሌዳ

ደረጃ 2 SCHEMA

ቪሲሲ -> አርዱዲኖ 5 ቪ

BL -> አርዱዲኖ ፒን 3

GND -> Arduino GND

CLK (SCLK) -> አርዱinoኖ ፒን 8

ዲን (ሞሲ) -> አርዱዲኖ ፒን 9

ዲሲ -> አርዱዲኖ ፒን 10

CE ወይም CS -> አርዱinoኖ ፒን 12

RST (ዳግም አስጀምር) -> አርዱinoኖ ፒን 11

ደረጃ 3 ፦ ኮድ

ኮድ
ኮድ

ኮዱ ስለ ኮድ ተግባራት ማብራሪያዎች አሉት። በቀላሉ ይረዱታል። ችግር ካጋጠመዎት እኔን ማነጋገር ይችላሉ።

#ያካትቱ

LCD5110 lcd (8, 9, 10, 11, 12); // (ክሊክ ፣ ዲን ፣ ዲሲ ፣ መጀመሪያ ፣ ሴ)

int BL = 3;

ውጫዊ uint8_t SmallFont ; // ቅርጸ -ቁምፊዎችን extern uint8_t MediumNumbers ; ውጫዊ uint8_t arac ; // የእኛን ቅርፅ ይግለጹ uint8_t dusman_araci ; // desribe የጠላት ቅርፅ const int xpin = A0; // ጆይስቲክ x ፒን ቻር pozisyon = 2; // ቦታውን ይግለጹ ፣ የእኛ ቅርፅ መነሻ ቦታ 2 ቡሊያን ኮንትሮል = እውነት; ቡሊያን ዱስማን ኦልዱ = እውነት; int skor = 0; int hiz = 0; int dusmanKonumu1; // ጠላትን ይግለጹ 1 x አካባቢ int dusmanKonumu2; // ጠላት 2 x አካባቢ int dusmaninYdeKonumu ይግለጹ; // ጠላቶች y ቦታን ይግለጹ

ባዶነት dusmanAraci (int yer, int asama) {// ለጠላት ቅርጾች ቦታዎችን ያዘጋጁ

ከሆነ (yer == 1) {// አካባቢ ከሆነ = 1; lcd.drawBitmap (2 ፣ asama ፣ dusman_araci ፣ 12 ፣ 8) ፤ // የጠላት ቅርፅ ይሳሉ} (yer == 2) {lcd.drawBitmap (18 ፣ asama ፣ dusman_araci ፣ 12 ፣ 8) ፤ } ከሆነ (yer == 3) {lcd.drawBitmap (34 ፣ asama ፣ dusman_araci ፣ 12 ፣ 8) ፤ }}

ባዶ oyunBitti () {// ካልተሳካልን ጨዋታው አብቅቷል

(1) {መዘግየት (100); // ይጠብቁ 1 ሚሊሰከንዶች lcd.clrScr (); // ማያ ገጹን ያፅዱ lcd.setFont (SmallFont); // አዘጋጅ ቅርጸ ቁምፊ lcd.print ("GAME OVER", CENTER, 20); // ህትመት lcd.update (); // ማያ ገጹን አዘምን}}

ባዶነት ማዋቀር () {pinMode (BL ፣ OUTPUT); // የኋላ ብርሃን ያዘጋጁ የውጤት lcd. InitLCD (); // የ lcd ማያ ገጽን ያስጀምሩ lcd.setContrast (55); // ንፅፅር ያዘጋጁ (ከ 0 እስከ 127 ድረስ) Serial.begin (9600); // ተከታታይ መገናኘት ይጀምሩ}

ባዶነት loop () {

አናሎግ ፃፍ (BL, 200);

// የጨዋታ ማያ ገጽ ያዘጋጁ lcd.drawRect (0, 0, 47, 47); // እኛ አራት ማእዘን እንሳልለን lcd.setFont (SmallFont); // አዘጋጅ ቅርጸ ቁምፊ lcd.print ("skor", 53, 0); // printf ውጤት lcd.setFont (መካከለኛ ቁጥሮች); // አዘጋጅ ቅርጸ -ቁምፊ lcd.printNumI (skor ፣ 59 ፣ 7); // ውጤት ያግኙ lcd.setFont (SmallFont); lcd.print ("ሒዝ" ፣ 56 ፣ 25); // የህትመት ፍጥነት lcd.setFont (መካከለኛ ቁጥሮች); lcd.printNumI (ሂዝ ፣ 59 ፣ 32); // ፍጥነትን ያግኙ lcd.update (); // አዘምን

// የደስታ ምልክት ሥፍራ int x = analogRead (xpin) ያዘጋጁ ፣ ከሆነ (x <300 && pozisyon! = 1 && kontrol == true) {// አካባቢ ከሆነ! = 1 ፣ x state600 && pozisyon! = 3 && kontrol == እውነት) {// አካባቢ ከሆነ! = 3 ፣ x ሁኔታ> 600 እና ቁጥጥር እውነተኛ pozisyon ++ ነው ፤ // ቦታውን ይጨምሩ ማለት ቅርፁን ወደ ትክክለኛው kontrol = ሐሰት ማንቀሳቀስ ማለት ነው። } ሌላ ከሆነ (x> 300 && x <600) {kontrol = true; } Serial.println (x); // ለመማር x ሁኔታ // የእኛን ቅርፅ ቦታ ያዘጋጁ lcd.clrScr (); // (pozisyon == 1) ከሆነ ማያ ገጹን ያፅዱ {// ቦታ ከሆነ = 1; lcd.

ከሆነ (pozisyon == 3) {

lcd.drawBitmap (34 ፣ 37 ፣ አራክ ፣ 12 ፣ 8) ፤}

(dusmanOldu) {// የጠላት ቅርፅ ከሞተ ፣ ሞተው መሆናቸውን ያረጋግጡ

dusmanKonumu1 = pozisyon; // የመጀመሪያውን የጠላት ቅርፅ ይሳሉ dusmanKonumu2 = የዘፈቀደ (0 ፣ 4); // የሆነ ቦታ ሌላ የጠላት ቅርፅ ይሳሉ dusmaninYdeKonumu = 0; // ጠላቱን ከላይ dusmanOldu = ሐሰት አምጡ ፤} // ጠላት እንደገና ተፈጥሯል ስለዚህ አልሞቱም ዱስማንአራሲ (dusmanKonumu1 ፣ dusmaninYdeKonumu) ፤ dusmaninYdeKonumu ++; // የመጀመሪያውን የጠላት ቅርፅ ይሳሉ እና ከላይ ወደ ታች dusmanAraci (dusmanKonumu2 ፣ dusmaninYdeKonumu) ያግኙት ፤ dusmaninYdeKonumu ++; // ሁለተኛውን የጠላት ቅርፅ ይሳሉ እና (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// ቅርጻችን ጠላቱን ቢነካው oyunBitti ();} // ጨዋታው ካለቀ (dusmaninYdeKonumu> 40) {// ቅርጻችን ከጠላቶች dusmanOldu = እውነት ካመለጠ; // የጠላት ቅርጾችን skor ++ ይገድሉ ፣ መዘግየት (40); }}

ደረጃ 4: ኮድ ቢትማፕ

በተጨማሪም ፣ ለቅርጾች የ bitmap ግራፊክ ማካተት አለብዎት። እሱ የ.c ፋይል እና ከኮድ ስም ጋር ተመሳሳይ ስም መሆን አለበት። እንዲሁም ፣ በተመሳሳይ ፋይል ውስጥ መሆን አለበት።

// ------------------------------------------------ ------------------------------ // በኤልሲዲ ረዳት የመነጨ ፋይል // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #ማካተት // ለፕሮሜሜም ተግባር ያካትቱ

const ያልተፈረመ char arac PROGMEM = {// የእኛ ቅርፅ ቢትማፕ

0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣};

const ያልተፈረመ char dusman_araci PROGMEM = {// የጠላት መርከብ ቢትማፕ

0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣ 0xFF ፣};

ደረጃ 5: ስለተመለከቱ እናመሰግናለን

ስለተመለከቱ እናመሰግናለን
ስለተመለከቱ እናመሰግናለን

My ፕሮጀክቶቼን ማጋራት ከመጀመሬ በፊት Turkish እያንዳንዱን ቃል በእንግሊዝኛ ዕድል እንዳላገኝ Turkish በቱርክኛ ቃላቶች ኮድ ተሰጥቶት ነበር። ይህንን ፕሮጀክት የሚጠቀምበት የቃላት ትርጉም ፣

ኦዩን = ጨዋታ

Arac = ቅርፅ

ዱስማን = ጠላት

kontrol = ቁጥጥር

ኮኖም ፣ ያር = ቦታ

ኦዩን ቢቲ = ጨዋታ አልቋል

ስኮር = ውጤት

ሂዝ = ፍጥነት

የሚመከር: