Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Hallo allerseits. Vor dieser Spielversion veröffentlichte ı die erste Version des Spiels. Heute zeigt ı Ihnen Space Race Game Version 2. Schauen wir uns die Schritte an…
Schritt 1: TEILE
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
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, cin, dc,, rst, ce)
boolesches kontrol=true;
boolescher Wert dusmanoldu=wahr;
extern uint8_t SmallFont; //beschreibe die Schriftarten
extern uint8_t MediumNumbers; extern uint8_t arac; //beschreibe unsere Form extern uint8_t dusmanAraci; // feindliche Form beschreiben const int xpin=A0; // Joystick x Stiftzeichen pozisyon = 3; // den Ort beschreiben, unsere Formstartposition 3 int BL=3; int skor=0; int hiz=0; int dusmankonum1; //beschreibe Feind1 x Standort int dusmankonum2; // Feind2 x Standort beschreiben int dusmankonum3; // Feind3 x Standort beschreiben int dusmankonum4; // Feind4 x Standort beschreiben int dusmankonum5; // Feind beschreiben5 x Standort int dusmaninYdekonumu;
Void oyunEkrani () {//Spielbildschirm einstellen
lcd.clrScr(); lcd.drawRect(0, 0, 47, 47); // wir zeichnen ein Rechteck lcd.setFont (SmallFont); // Schriftart einstellen lcd.print ("skor", 57, 1); // Partitur drucken lcd.print ("hiz", 60, 24); // Druckgeschwindigkeit lcd.setFont (MediumNumbers); // Schriftart einstellen lcd.printNumI (skor, 55, 8); // Punktzahl abrufen lcd.printNumI (hiz, 63, 32); // Geschwindigkeit abrufen lcd.update (); }
void dusmanAracidurum (int yer, int asama) {//setze Orte für feindliche Formen
if(yer==1){ lcd.drawBitmap(2, asama, dusmanAraci, 7, 7);lcd.update();} //if location=1 zeichne die feindliche Form dieses Ortes 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 () {// wenn wir scheitern, ist das Spiel vorbei
während (1) { Verzögerung (100); // 1 Millisekunde warten lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", MITTE, 8); // Spiel über lcd.print("skorunuz=", 3, 30) drucken; // Drucken Sie Ihre Partitur lcd.setFont (MediumNumbers); lcd.printNumI(skor, 60, 25); // Letzte Punktzahl abrufen lcd.update (); } }
Leere Einrichtung () {
PinMode (BL, AUSGANG); // Licht zurücksetzen Ausgang PinMode (xpin, INPUT); // x-Pin als Eingang setzen lcd. InitLCD (); // lcd-Bildschirm initialisieren lcd.setContrast (55); // Kontrast einstellen (ca. 0 bis 127) Serial.begin (9600); // Serielle Kommunikation starten}
Leere Schleife () {
analogWrite (BL, 350); oyunEkrani();
//joyistic durumu… //setze die Joyistick-Position…
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 und Kontrolle ist wahr pozisyon++; // Erhöhen Sie die Position, dh die Form nach rechts verschieben kontrol=false; aufrechtzuerhalten. Sonst if(durumx >300 && durumx <600){ kontrol=true; } //pozisyon durumu… //Positionsstatus… if(pozisyon==1){ //if location=1; lcd.drawBitmap(2, 41, arac, 7, 7); lcd.update();} // Zeichne unser Schiff 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) {// Wenn die feindliche Form tot ist, überprüfen Sie, ob sie tot sind
dusmankonum1=pozisyon; // erste feindliche Form zeichnen dusmankonum2 = zufällig (0, 6); // eine andere feindliche Form irgendwo zeichnen dusmankonum3 = zufällig (0, 6); dusmankonum4 = zufällig (0, 6); dusmankonum5 = zufällig (0, 6); dusmaninYdekonumu=0; //Feind von oben bringen dusmanoldu=false;} //Feind wird neu erstellt, damit er nicht tot ist
dusmanAracidurum(dusmankonum1, dusmaninYdekonumu);dusmaninYdekonumu++; // erste feindliche Form zeichnen und von oben nach unten erhalten
dusmanAracidurum(dusmankonum2, dusmaninYdekonumu);dusmaninYdekonumu++; // Zweite feindliche Form zeichnen und von oben nach unten erhalten dusmanAracidurum(dusmankonum3, dusmaninYdekonumu);dusmaninYdekonumu++; dusmanAracidurum(dusmankonum4, dusmaninYdekonumu);dusmaninYdekonumu++; if(dusmaninYdekonumu>35 && ((dusmankonum1 == pozisyon)||(dusmankonum2 == pozisyon)||(dusmankonum3 == pozisyon)||(dusmankonum4 == pozisyon))) {//wenn unsere Form Feindformen berührt oyunbitti(); //Das Spiel ist vorbei }
if(dusmaninYdekonumu >42){//wenn unsere Form den Feinden entkommt
dusmanoldu = wahr; // feindliche Formen töten skor++; // Erhöhen Sie die Punktzahl nacheinander}
//skora gore hizi artiriyoruz //Geschwindigkeit entsprechend der Punktzahl erhöhen
if (skor>=0 && skor=10 && skor=20 && skor=30 && skor=40 && skor=50){hiz=6; Verzögerung(5); }
}
Schritt 4: CODE BITMAP
Außerdem müssen Sie Bitmap-Grafiken für Formen einfügen. Es muss eine.c-Datei sein.
#include //include für die Programmfunktion
const unsigned char arac PROGMEM = { //unsere Form-Bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusmanAraci PROGMEM = { // Feindesschiff-Bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Schritt 5: Danke fürs Ansehen
Bedeutung einiger Wörter:
Oyun => Spiel
Arac = > Form
Dusman => Feind
Kontrolle = >Kontrolle
Konum, Yer => Standort
Oyun Bitti => Spiel vorbei
Skor => Punktzahl
Hiz => Geschwindigkeit