ዝርዝር ሁኔታ:

የጠፈር ውድድር ጨዋታ ስሪት 2: 5 ደረጃዎች
የጠፈር ውድድር ጨዋታ ስሪት 2: 5 ደረጃዎች

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

ቪዲዮ: የጠፈር ውድድር ጨዋታ ስሪት 2: 5 ደረጃዎች
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ሀምሌ
Anonim
Image
Image

ሰላም ሁላችሁም። ከዚህ የጨዋታ ስሪት በፊት ፣ first የመጀመሪያውን የጨዋታ ስሪት አሳተመ። ዛሬ ፣ Space የጠፈር ውድድር ጨዋታ ስሪት 2. ያሳየዎታል። ደረጃዎችን እንይ…

ደረጃ 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); // (ክሊክ ፣ ሲን ፣ ዲሲ ፣ ፣ መጀመሪያ ፣ ሴ)

ቡሊያን ኮንትሮል = እውነት;

ቡሊያን ዱስማኖልዱ = እውነት;

ውጫዊ uint8_t SmallFont ; // ቅርጸ -ቁምፊዎችን ይግለጹ

ውጫዊ uint8_t MediumNumbers ; ውጫዊ uint8_t arac ; // የእኛን ቅርፅ ይግለጹ uint8_t dusmanAraci ; // desribe የጠላት ቅርፅ const int xpin = A0; // ጆይስቲክ x ፒን ቻር pozisyon = 3; // ቦታውን ይግለጹ ፣ የእኛ ቅርፅ መነሻ ሥፍራ 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // ጠላትን ይግለጹ 1 x አካባቢ int dusmankonum2; // ጠላት 2 x ሥፍራ int dusmankonum3 ን ይግለጹ; // ጠላት 3 x ሥፍራ int dusmankonum4 ን ይግለጹ ፣ // ጠላት 4 x ሥፍራ int dusmankonum5 ን ይግለጹ ፤ // ጠላት ይግለጹ 5 x አካባቢ int dusmaninYdekonumu;

ባዶ oyunEkrani () {// የጨዋታ ማያ ገጽ ያዘጋጁ

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // እኛ አራት ማእዘን እንሳልለን lcd.setFont (SmallFont); // አዘጋጅ ቅርጸ ቁምፊ lcd.print ("skor", 57, 1); // የህትመት ውጤት lcd.print ("ሒዝ" ፣ 60 ፣ 24); // የህትመት ፍጥነት lcd.setFont (መካከለኛ ቁጥሮች); // አዘጋጅ ቅርጸ -ቁምፊ lcd.printNumI (skor ፣ 55 ፣ 8); // ውጤት ያግኙ lcd.printNumI (ሒዝ ፣ 63 ፣ 32) ፤ // ፍጥነትን ያግኙ lcd.update (); }

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

(yer == 1) {lcd..drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} ከሆነ (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } ከሆነ (yer == 4) {lcd.drawBitmap (26 ፣ asama ፣ dusmanAraci ፣ 7, 7) ፤ lcd.update () ፤} ከሆነ (yer == 5) {lcd.drawBitmap (34 ፣ asama ፣ dusmanAraci ፣ 7 ፣ 7) ፤ lcd.update () ፤} ከሆነ (yer == 6) {lcd.drawBitmap (42 ፣ አሳማ ፣ ዱሳንማን ፣ 7 ፣ 7) ፤ lcd.update () ፤}}

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

(1) {መዘግየት (100); // ይጠብቁ 1 ሚሊሰከንዶች lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // የህትመት ጨዋታ በ lcd.print ("skorunuz =", 3, 30); // ውጤትዎን ያትሙ lcd.setFont (መካከለኛ ቁጥሮች); lcd.printNumI (skor, 60, 25); // የመጨረሻውን ውጤት ያግኙ lcd.update (); }}

ባዶነት ማዋቀር () {

pinMode (BL ፣ ውፅዓት); // የኋላ ብርሃን ያዘጋጁ የውጤት ፒን ሞዶ (xpin ፣ INPUT); // አዘጋጅ x ፒን እንደ ግብዓት lcd. InitLCD (); // የ lcd ማያ ገጽን ያስጀምሩ lcd.setContrast (55); // ንፅፅር ያዘጋጁ (ከ 0 እስከ 127 ድረስ) Serial.begin (9600); // ተከታታይ መገናኘት ይጀምሩ}

ባዶነት loop () {

አናሎግ ፃፍ (BL ፣ 350); oyunEkrani ();

// አስደሳች ደስታ ዱሩሙ… // የደስታን ቦታ ያዘጋጁ…

int durumx = analogRead (xpin); ከሆነ (durumx <300 && pozisyon! = 1 && kontrol == true) {// አካባቢ ከሆነ! = 1 ፣ x state600 && pozisyon! = 6 && kontrol == እውነት) {// አካባቢ ከሆነ! = 3 ፣ x ሁኔታ> 600 እና ቁጥጥር እውነተኛ pozisyon ++ ነው ፤ // ቦታውን ይጨምሩ ማለት ቅርፁን ወደ ትክክለኛው kontrol = ሐሰት ማንቀሳቀስ ማለት ነው። } ሌላ ከሆነ (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // የአቀማመጥ ሁኔታ… ከሆነ (pozisyon == 1) {// ቦታ ከሆነ = 1; lcd. lcd.update ();} ከሆነ (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} ከሆነ (pozisyon == 4) {lcd.drawBitmap (26 ፣ 41 ፣ አራክ ፣ 7 ፣ 7) ፤ lcd.update () ፤} ከሆነ (pozisyon == 5) {lcd.drawBitmap (34 ፣ 41 ፣ አራክ ፣ 7 ፣ 7) ፤ == 6) {lcd.drawBitmap (42 ፣ 41 ፣ arac ፣ 7 ፣ 7) ፤ lcd.update () ፤}

(dusmanoldu) {// የጠላት ቅርፅ ከሞተ ፣ እነሱ መሞታቸውን ያረጋግጡ

dusmankonum1 = pozisyon; // የመጀመሪያውን የጠላት ቅርፅ ይሳሉ dusmankonum2 = የዘፈቀደ (0 ፣ 6) ፤ // ሌላ የጠላት ቅርፅ ይሳሉ dusmankonum3 = የዘፈቀደ (0 ፣ 6); dusmankonum4 = በዘፈቀደ (0, 6); dusmankonum5 = በዘፈቀደ (0, 6); dusmaninYdekonumu = 0; // ጠላቱን ከላይ dusmanoldu = ሐሰት አምጡ ፤} // ጠላት አልሞቱም

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); // የመጀመሪያውን የጠላት ቅርፅ ይሳሉ እና ከላይ ወደ ታች ያግኙት

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); // ሁለተኛውን የጠላት ቅርፅ ይሳሉ እና ከላይ ወደ ታች ዱስማንአራክዱሩም (ዱስማንኮን 3 ፣ ዱስማኒን ኢዴኮኑሙ) ፣ ዱስማኒን ኢኮኮሙ ++ ፤ dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// ቅርጻችን የሚነካ ከሆነ ጠላት ኦይኒቢቲ ()); // ጨዋታው አልቋል}

if (dusmaninYdekonumu> 42) {// ቅርጻችን ከጠላቶች ቢያመልጥ

dusmanoldu = እውነት; // የጠላት ቅርጾችን skor ++ ይገድሉ ፤ // ውጤቱን አንድ በአንድ ጨምር}

// skora gore hizi artiriyoruz // በውጤቱ መሠረት ፍጥነት ይጨምሩ

ከሆነ (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; መዘግየት (5); }

}

ደረጃ 4: ኮድ ቢትማፕ

በተጨማሪም ፣ ለቅርጾች የ bitmap ግራፊክ ማካተት አለብዎት። እሱ የ.c ፋይል መሆን አለበት።

#ያካትቱ // ለፕሮሜሜም ተግባር ያካትቱ

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

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

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

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

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

የአንዳንድ ቃላት ትርጉም -

ኦዩን => ጨዋታ

Arac => ቅርፅ

ዱስማን => ጠላት

kontrol => ቁጥጥር

ኮኖም ፣ ያር => አካባቢ

ኦዩን ቢቲ => ጨዋታ አብቅቷል

ስኮር => ውጤት

ሒዝ => ፍጥነት

የሚመከር: