Inhaltsverzeichnis:

Arduino Space Race Spielversion _1 - Gunook
Arduino Space Race Spielversion _1 - Gunook

Video: Arduino Space Race Spielversion _1 - Gunook

Video: Arduino Space Race Spielversion _1 - Gunook
Video: Was ist das für ein Lenkrad!? 2024, November
Anonim
Image
Image

Hallo Freunde. Heute am ganna zeigen Sie, wie Sie ein Weltraumrennen-Spiel mit LCD5110-Bildschirm und Joystic machen können. Schauen wir uns die Schritte an …

Schritt 1: BEDÜRFNISSE

SCHEMA
SCHEMA

Hier ist eine Liste von Teilen, die ich verwendet habe, um dieses Projekt zu machen:

  • Arduino UNO
  • Joystick-Modul
  • Überbrückungsdrähte (männlich zu männlich und männlich zu weiblich)
  • Steckbrett

Schritt 2: SCHEMA

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 oder CS -> Arduino-Pin 12

RST (RESET) -> Arduino-Pin 11

Schritt 3: CODE

CODE
CODE

Der Code enthält Erläuterungen zu Codefunktionen. Sie werden es leicht verstehen. Wenn Sie ein Problem haben, können Sie mich kontaktieren.

#enthalten

LCD5110 LCD (8, 9, 10, 11, 12); //(clk, din, dc, rst, ce)

int BL = 3;

extern uint8_t SmallFont; //Schriftarten beschreiben extern uint8_t MediumNumbers; extern uint8_t arac; //beschreibe unsere Form extern uint8_t dusman_araci; // feindliche Form beschreiben const int xpin=A0; // Joystick x Stiftzeichen pozisyon = 2; // den Ort beschreiben, unsere Form Startort 2 boolean kontrol = true; boolescher Wert dusmanOldu = true; int skor=0; int hiz=0; int dusmanKonumu1; //beschreibe den Feind1 x Standort int dusmanKonumu2; // Feind2 x Standort beschreiben int dusmaninYdeKonumu; //beschreibe den Standort der Feinde

void dusmanAraci (int yer, int asama) {//Orte für feindliche Formen festlegen

wenn (yer==1){//wenn Standort=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); // feindliche Form zeichnen} if (yer = = 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); aufrechtzuerhalten. Wenn (yer = = 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti() {//wenn wir scheitern, ist das Spiel vorbei

während (1) { Verzögerung (100); // 1 Millisekunde warten lcd.clrScr (); // den Bildschirm löschen lcd.setFont (SmallFont); // Schriftart einstellen lcd.print ("GAME OVER", CENTER, 20); // lcd.update () drucken; // den Bildschirm aktualisieren }}

Void setup () { PinMode (BL, OUTPUT); // Licht zurücksetzen Ausgang lcd. InitLCD (); // lcd-Bildschirm initialisieren lcd.setContrast (55); // Kontrast einstellen (ca. 0 bis 127) Serial.begin (9600); // Serielle Kommunikation starten}

Leere Schleife () {

analogWrite(BL, 200);

// Spielbildschirm einstellen lcd.drawRect (0, 0, 47, 47); // wir zeichnen ein Rechteck lcd.setFont (SmallFont); // Schriftart einstellen lcd.print ("skor", 53, 0); // printf-Score lcd.setFont (MediumNumbers); // Schriftart einstellen lcd.printNumI (skor, 59, 7); // Punktzahl abrufen lcd.setFont (SmallFont); lcd.print("hiz", 56, 25); // Druckgeschwindigkeit lcd.setFont (MediumNumbers); lcd.printNumI(hiz, 59, 32); // Geschwindigkeit abrufen lcd.update (); //aktualisieren

// setze die Joyistick-Position int x = analogRead (xpin); if(x<300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=3 && kontrol==true){ //if location!=3, x state> 600 und Kontrolle ist wahr pozisyon++; // Erhöhen Sie die Position, dh die Form nach rechts verschieben kontrol=false; aufrechtzuerhalten. Sonst if(x>300 && x<600){ kontrol=true; } Serial.println (x); // zum Erlernen des x-Zustands // Legen Sie die Position unserer Form fest lcd.clrScr (); // lösche den Bildschirm, wenn (pozisyon = = 1) {// if location = 1; lcd.drawBitmap(2, 37, arac, 12, 8);} // unser Schiff zeichnen if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}

wenn (pozisyon==3){

lcd.drawBitmap(34, 37, arac, 12, 8);}

If (dusmanOldu) {// Wenn die feindliche Form tot ist, überprüfen Sie, ob sie tot sind

dusmanKonumu1 = pozisyon; // erste feindliche Form zeichnen dusmanKonumu2 = random (0, 4); // eine andere feindliche Form irgendwo zeichnen dusmaninYdeKonumu = 0; // Feind von oben bringen dusmanOldu = false;} // Feind wird neu erstellt, damit er nicht tot ist dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; // Erste feindliche Form zeichnen und von oben nach unten erhalten dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; //Zeigt die zweite feindliche Form und holt sie von oben nach unten if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))){ //wenn unsere Form die feindlichen Formen berührt oyunBitti();} //Das Spiel ist vorbei if (dusmaninYdeKonumu>40){ //wenn unsere Form vor Feinden entkommt dusmanOldu = true; // feindliche Formen töten skor++;} // Erhöhen Sie die Punktzahl nacheinander // Erhöhen Sie die Geschwindigkeit entsprechend der Punktzahl if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; Verzögerung (40); } }

Schritt 4: CODE BITMAP

Außerdem müssen Sie Bitmap-Grafiken für Formen einfügen. Es muss eine.c-Datei sein und den gleichen Namen wie den Codenamen haben. Außerdem muss sie sich in derselben Datei befinden.

//------------------------------------------------ ------------------------------------------// Vom LCD-Assistenten generierte Datei // https://en.radzio.dxp.pl /bitmap_converter/ //--------------------------------------------- --------------------------------- #include //include für die Programmfunktion

const unsigned char arac PROGMEM = { //unsere Form-Bitmap

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

const unsigned char dusman_araci PROGMEM = { // Feindesschiff-Bitmap

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

Schritt 5: DANKE FÜR DAS ANSEHEN

DANKE FÜRS ANSEHEN
DANKE FÜRS ANSEHEN

Bevor ı anfing, meine Projekte zu teilen, codierte ich türkische Wörter, damit ich nicht jedes Wort ins Englische ändern konnte. Hier die Wortübersetzung, die ı dieses Projekt verwendet, Oyun = Spiel

Arac = Form

Dusman = Feind

Kontrolle = Kontrolle

Konum, Yer = Standort

Oyun Bitti = Spiel vorbei

Skor = Punktzahl

Hiz = Geschwindigkeit

Empfohlen: