Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Zdravo svima. Prije ove verzije igre, objavio sam prvu verziju igre. Danas ću vam pokazati Space Race Game verziju 2. Pogledajmo korake …
Korak 1: DIJELOVI
Evo popisa dijelova koje sam koristio za izradu ovog projekta:
- Arduino UNO
- Joystick Module
- Kratkospojne žice (muški na muški i muški na ženski)
- Breadboard
Korak 2: SHEMA
VCC -> Arduino 5V
BL -> Arduino pin 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE ili CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
Korak 3: KOD
Kod ima objašnjenja funkcija koda. Lako ćete to razumjeti. Ako imate problem, možete me kontaktirati.
#include
LCD5110 LCD (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean control = true;
boolean dusmanoldu = true;
extern uint8_t SmallFont ; // opisuje fontove
extern uint8_t Srednji brojevi ; extern uint8_t arac ; // opisuje naš oblik extern uint8_t dusmanAraci ; // opis neprijateljskog oblika const int xpin = A0; // joystick x pin char pozisyon = 3; // opisuje lokaciju, početnu lokaciju našeg oblika 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // opišite neprijatelja1 x lokacija int dusmankonum2; // opišite neprijatelja2 x lokaciju int dusmankonum3; // opisuje neprijatelja3 x lokacija int dusmankonum4; // opišite neprijatelja4 x lokaciju int dusmankonum5; // opišite neprijatelja5 x lokaciju int dusmaninYdekonumu;
void oyunEkrani () {// postavlja ekran igre
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // crtamo pravokutnik lcd.setFont (SmallFont); // postavljanje fonta lcd.print ("skor", 57, 1); // ispis rezultata lcd.print ("hiz", 60, 24); // brzina ispisa lcd.setFont (MediumNumbers); // postavljanje fonta lcd.printNumI (skor, 55, 8); // dobije rezultat lcd.printNumI (hiz, 63, 32); // get speed lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// postavljanje lokacija za neprijateljske oblike
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // ako je lokacija = 1 nacrtajte neprijatelja u obliku ove lokacije if (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}
void oyunbitti () {// ako ne uspijemo, igra je gotova
while (1) {odgoda (100); // čekamo 1 milisekundu lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTAR, 8); // ispisuje igru preko lcd.print ("skorunuz =", 3, 30); // ispišite rezultat lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // dobije posljednji rezultat lcd.update (); }}
void setup () {
pinMode (BL, OUTPUT); // postavljanje pozadinskog svjetla Output pinMode (xpin, INPUT); // postavljamo x pin kao ulazni lcd. InitLCD (); // iniciranje lcd ekrana lcd.setContrast (55); // postavljanje kontrasta (amound 0 do 127) Serial.begin (9600); // pokretanje serijske komunikacije}
void loop () {{100} {101}
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu… // postavljanje lokacije joysticka …
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrola == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 i kontrola je istinita pozisyon ++; // povećati lokaciju znači premjestiti oblik udesno kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // stanje pozicije… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // nacrtajmo naš brod if (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// ako je neprijateljski oblik mrtav, provjerite jesu li mrtvi
dusmankonum1 = pozisyon; // nacrtati prvi neprijateljski oblik dusmankonum2 = random (0, 6); // negdje nacrtati drugi neprijateljski oblik dusmankonum3 = random (0, 6); dusmankonum4 = slučajno (0, 6); dusmankonum5 = slučajno (0, 6); dusmaninYdekonumu = 0; // dovesti neprijatelja s vrha dusmanoldu = false;} // neprijatelj je ponovo stvoren tako da nije mrtav
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // nacrtajte prvi neprijateljski oblik i prenesite ga odozgo prema dolje
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // nacrtajte drugi neprijateljski oblik i postavite ga odozgo prema dolje dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// ako naš oblik dodiruje neprijatelja sa oyunbitti (); // igra je gotova}
if (dusmaninYdekonumu> 42) {// ako naš oblik pobjegne od neprijatelja
dusmanoldu = istina; // ubiti neprijateljske oblike skor ++; // povećati jedan po jedan rezultat}
// skora gore hizi artiriyoruz // povećajte brzinu prema rezultatu
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; kašnjenje (5); }
}
Korak 4: KOD BITMAP
Nadalje, morate uključiti bitmap grafiku za oblike. To mora biti.c datoteka.
#include // uključi za funkciju progmem
const unsigned char arac PROGMEM = {// naša bitmapa oblika
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmapa neprijateljskog broda
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Korak 5: Hvala što ste pogledali
Značenje nekih reči:
Oyun => Igra
Arac => Oblik
Dusman => Neprijatelj
kontrol => kontrola
Konum, Yer => Lokacija
Oyun Bitti => Igra je gotova
Skor => Bodovi
Hiz => Brzina