Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Hej allihopa. Innan den här spelversionen publicerade jag den första versionen av spelet. Idag visar jag Space Race Game version 2. Låt oss titta på steg …
Steg 1: DELAR
Här är en lista över delar som jag använde för att göra detta projekt:
- Arduino UNO
- Joystick -modul
- Jumper Wires (man till man och man till kvinna)
- Bakbord
Steg 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino stift 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino stift 9
DC -> Arduino stift 10
CE eller CS -> Arduino pin 12
RST (ÅTERSTÄLL) -> Arduino -stift 11
Steg 3: KOD
Koden har förklaringar av kodfunktioner. Du kommer lätt att förstå det. Om du har problem kan du kontakta mig.
#omfatta
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
booleskt kontroll = sant;
booleska dusmanoldu = true;
extern uint8_t SmallFont ; // beskriv typsnitt
extern uint8_t MediumNumbers ; extern uint8_t arac ; // beskriv vår form extern uint8_t dusmanAraci ; // beskriv fiendeform const int xpin = A0; // joystick x pin pin char pozisyon = 3; // beskriv platsen, vår form startplats 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // beskriv fiende1 x plats int dusmankonum2; // beskriv fiende2 x plats int dusmankonum3; // beskriv fiende3 x plats int dusmankonum4; // beskriv fiende4 x plats int dusmankonum5; // beskriv fiende5 x plats int dusmaninYdekonumu;
void oyunEkrani () {// ställ in spelskärm
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // vi ritar rektangel lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // print score lcd.print ("hiz", 60, 24); // utskriftshastighet lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 55, 8); // få poäng lcd.printNumI (hiz, 63, 32); // få hastighet lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// ange platser för fiendens former
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 rita fienden form denna plats om (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 () {// om vi misslyckas, är spelet över
medan (1) {delay (100); // vänta 1 milisekund lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // skriv ut spel över lcd.print ("skorunuz =", 3, 30); // skriv ut din poäng lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // få sista poäng lcd.update (); }}
void setup () {
pinMode (BL, OUTPUT); // återställ ljus Output pinMode (xpin, INPUT); // ställ in x pin som ingång lcd. InitLCD (); // initilaze lcd screen lcd.setContrast (55); // ställ in kontrast (mellan 0 och 127) Serial.begin (9600); // starta seriell kommunikation}
void loop () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu … // ställ in joyistick -platsen …
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 och kontrollen är sann pozisyon ++; // öka platsen det betyder flytta form till höger kontroll = false; } annars if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu … // position state … if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // rita vårt skepp om (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 ();}
om (dusmanoldu) {// om fiendens form är död, kontrollera om de är döda
dusmankonum1 = pozisyon; // rita första fiendens form dusmankonum2 = slumpmässigt (0, 6); // rita en annan fiendens form någonstans dusmankonum3 = random (0, 6); dusmankonum4 = slumpmässig (0, 6); dusmankonum5 = slumpmässig (0, 6); dusmaninYdekonumu = 0; // ta med fienden från toppen dusmanoldu = false;} // fienden återskapas så att de inte är döda
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // rita första fiendens form och få den uppifrån och ner
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // rita andra fiendens form och få den uppifrån och ner dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// om vår form berör fiendens former oyunbitti (); //spelet är över }
if (dusmaninYdekonumu> 42) {// om vår form flyr från fiender
dusmanoldu = sant; // döda fiendens former skor ++; // öka poängen en efter en}
// skora gore hizi artiriyoruz // öka hastigheten enligt poäng
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; fördröjning (5); }
}
Steg 4: KODBITMAPP
Dessutom måste du inkludera bitmappsgrafik för former. Det måste vara en.c -fil.
#include // include för programfunktion
const osignerad char arac PROGMEM = {// vår form bitmapp
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const osignerad char dusmanAraci PROGMEM = {// fiendens skepps bitmapp
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Steg 5: Tack för att du tittade
Betydelse av några ord:
Oyun => Spel
Arac => Form
Dusman => Fiend
kontroll => kontroll
Konum, Yer => Plats
Oyun Bitti => Game Over
Skor => Poäng
Hiz => Hastighet