Orodha ya maudhui:

Mbio wa Mchezo Toleo la 2: 5 Hatua
Mbio wa Mchezo Toleo la 2: 5 Hatua

Video: Mbio wa Mchezo Toleo la 2: 5 Hatua

Video: Mbio wa Mchezo Toleo la 2: 5 Hatua
Video: Маленький лисенок вышел к людям за помощью 2024, Novemba
Anonim
Image
Image

Halo kila mtu. Kabla ya toleo hili la mchezo, ı ilichapisha toleo la kwanza la mchezo. Leo, ı nitakuonyesha Toleo la Mbio za Mbio za Nafasi. Wacha tuangalie hatua…

Hatua ya 1: SEHEMU

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, cin, dc,, rst, ce)

udhibiti wa boolean = kweli;

boolean dusmanoldu = kweli;

nje uint8_t SmallFont ; // kuelezea fonts

nje uint8_t MediumNumbers ; nje uint8_t arac ; // kuelezea sura yetu nje uint8_t dusmanAraci ; // kukataa sura ya adui const int xpin = A0; // fimbo ya shangwe x pin char pozisyon = 3; // kuelezea eneo, sura yetu kuanza eneo 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // eleza adui1 x eneo int dusmankonum2; // eleza adui2 x eneo int dusmankonum3; // eleza adui3 x eneo int dusmankonum4; // eleza adui4 x eneo int dusmankonum5; // eleza adui5 x eneo int dusmaninYdekonumu;

batili oyunEkrani () {// weka skrini ya mchezo

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // tunachora mstatili LCD.setFont (SmallFont); // kuweka font lcd.print ("skor", 57, 1); // alama ya kuchapisha lcd.print ("hiz", 60, 24); // kasi ya kuchapisha lcd.setFont (MediumNumbers); // weka font lcd.printNumI (skor, 55, 8); // pata alama lcd.printNumI (hiz, 63, 32); // pata kasi lcd.update (); }

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

ikiwa (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7);.choraBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} ikiwa (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } ikiwa (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} ikiwa (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} ikiwa (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}

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

wakati (1) {kuchelewesha (100); // subiri 1 milisecond lcd.clrScr (); lcd.setFont (NdogoFont); lcd.print ("OYUN BITTI", KITUO, 8); // mchezo wa kuchapisha juu ya lcd.print ("skorunuz =", 3, 30); // chapisha alama yako lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // pata alama ya mwisho lcd.update (); }}

usanidi batili () {

pinMode (BL, OUTPUT); // kuweka nyuma taa ya Pato ya pini (xpin, INPUT); // weka pini ya x kama pembejeo ya 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, 350); oyunEkrani ();

// durumu ya furaha… // weka eneo la kufurahisha…

int durumx = AnalogSoma (xpin); ikiwa (durumx <300 && pozisyon! = 1 && kontrol == kweli) {// ikiwa eneo! = 1, x state600 && pozisyon! = 6 && kontrol == kweli) {// ikiwa eneo! = 3, x state> 600 na udhibiti ni pozisyon ++ ya kweli; // ongeza eneo inamaanisha hoja sura kwa udhibiti wa kulia = uwongo; } kingine ikiwa (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // hali ya msimamo… ikiwa (pozisyon == 1) {// ikiwa eneo = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // chora meli yetu ikiwa (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} ikiwa (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} ikiwa (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} ikiwa (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}

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

dusmankonum1 = pozisyon; // chora sura ya kwanza ya adui dusmankonum2 = nasibu (0, 6); // chora sura nyingine ya adui mahali pengine dusmankonum3 = nasibu (0, 6); dusmankonum4 = nasibu (0, 6); dusmankonum5 = nasibu (0, 6); dusmaninYdekonumu = 0; // leta adui kutoka juu dusmanoldu = uwongo;} // adui anaundwa tena kwa hivyo hawajafa

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // chora sura ya kwanza ya adui na uipate kutoka juu hadi chini

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // chora sura ya pili ya adui na uipate kutoka juu hadi chini dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; ikiwa (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// ikiwa sura yetu inagusa maumbo ya adui oyunbitti (); // mchezo umeisha}

ikiwa (dusmaninYdekonumu> 42) {// ikiwa umbo letu linatoroka kutoka kwa maadui

dusmanoldu = kweli; // kuua maumbo ya adui skor ++; // ongeza alama moja kwa moja}

// skora gore hizi artiriyoruz // ongeza kasi kulingana na alama

ikiwa (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; kuchelewesha (5); }

}

Hatua ya 4: CODE BITMAP

Kwa kuongezea, lazima ujumuishe picha ya bitmap kwa maumbo. Lazima iwe faili ya.c.

# pamoja na // ni pamoja na kazi ya progmem

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

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

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

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

Hatua ya 5: Asante kwa Kuangalia

Maana ya maneno mengine:

Oyun => Mchezo

Arac => Umbo

Dusman => Adui

kudhibiti => kudhibiti

Konum, Yer => Mahali

Oyun Bitti => Mchezo Umekamilika

Skor => Alama

Hiz => Kasi

Ilipendekeza: