Taula de continguts:
Vídeo: Space Race Game Versió 2: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola a tothom. Abans d'aquesta versió del joc, publicava la primera versió del joc. Avui us mostraré la versió 2. Space Race Game. Vegem els passos …
Pas 1: PARTS
Aquí teniu una llista de les parts que he utilitzat per fer aquest projecte:
- Arduino UNO
- Mòdul Joystick
- Jumper Wires (home a home i home a dona)
- Taula de pa
Pas 2: ESQUEMA
VCC -> Arduino 5V
BL -> Pin 3 d'Arduino
GND -> Arduino GND
CLK (SCLK) -> Pin 8 d'Arduino
DIN (MOSI) -> Pin 9 d'Arduino
DC -> Pin Arduino 10
CE o CS -> Pin Arduino 12
RST (RESET) -> Pin 11 d'Arduino
Pas 3: CODI
El codi té explicacions sobre les funcions del codi. Ho entendreu fàcilment. Si teniu algun problema, podeu posar-vos en contacte amb mi.
#incloure
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = true;
dusmanoldu booleà = cert;
extern uint8_t SmallFont ; // descriu els tipus de lletra
extern uint8_t MediumNumbers ; extern uint8_t arac ; // descriu la nostra forma extern uint8_t dusmanAraci ; // designar enemic forma const int xpin = A0; // joystick x pin char position = 3; // descriviu la ubicació, la nostra ubicació inicial de forma 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // descriu enemic1 x ubicació int dusmankonum2; // descriu enemic2 x ubicació int dusmankonum3; // descriu enemic3 x ubicació int dusmankonum4; // descriu enemic4 x ubicació int dusmankonum5; // descriu enemic5 x localització int dusmaninYdekonumu;
void oyunEkrani () {// configurar la pantalla del joc
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // dibuixem un rectangle lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // print score lcd.print ("hiz", 60, 24); // velocitat d'impressió lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 55, 8); // get score lcd.printNumI (hiz, 63, 32); // obtenir velocitat lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// estableix ubicacions per a formes enemigues
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 dibuixa l'enemic en aquesta ubicació 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 () {// si fallem, acabem el joc
while (1) {delay (100); // espera 1 mil·lisegon lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTRE, 8); // imprimeix el joc sobre lcd.print ("skorunuz =", 3, 30); // imprimeix la teva puntuació lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // obtenir la darrera puntuació lcd.update (); }}
configuració nul·la () {
pinMode (BL, OUTPUT); // restableix la llum PinMode de sortida (xpin, INPUT); // estableix x pin com a entrada lcd. InitLCD (); // iniciar la pantalla lcd lcd.setContrast (55); // establir contrast (amunt 0 a 127) Serial.begin (9600); // iniciar la comunió en sèrie}
bucle buit () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu … // estableix la ubicació joyistick …
int durumx = analogRead (xpin); if (durumx <300 && position! = 1 && kontrol == true) {// if location! = 1, x state600 && position! = 6 && kontrol == true) {// if location! = 3, x state> 600 i el control és cert lloc ++; // augmentar la ubicació que significa moure la forma a la dreta kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // position durumu … // position state … if (position == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // dibuixar la nostra nau si (situació == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (posició == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (posició == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (posició == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (posició == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// si la forma de l'enemic és morta, comproveu si són morts
dusmankonum1 = posició; // dibuixa la primera forma enemiga dusmankonum2 = aleatòria (0, 6); // dibuixa una altra forma enemiga en algun lloc dusmankonum3 = aleatòria (0, 6); dusmankonum4 = aleatori (0, 6); dusmankonum5 = aleatori (0, 6); dusmaninYdekonumu = 0; // porta l'enemic des de la part superior dusmanoldu = fals;} // l'enemic es recrea perquè no estiguin morts
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // dibuixa la primera forma enemiga i aconsegueix-la de dalt a baix
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // dibuixa la segona forma enemiga i aconsegueix-la de dalt a baix dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == posició) || (dusmankonum2 == posició) || (dusmankonum3 == posició) || (dusmankonum4 == posició))) {// si la nostra forma toca formes enemigues oyunbitti (); //el joc s'ha acabat }
if (dusmaninYdekonumu> 42) {// si la nostra forma s’escapa dels enemics
dusmanoldu = true; // matar les formes enemigues skor ++; // augmentar un a un la puntuació}
// skora gore hizi artiriyoruz // augmenta la velocitat segons la puntuació
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; retard (5); }
}
Pas 4: CODI BITMAP
A més, heu d’incloure gràfics de mapa de bits per a les formes. Ha de ser un fitxer.c.
#include // include per a la funció progmem
const unsigned char arac PROGMEM = {// el nostre mapa de bits de forma
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// mapa de bits del vaixell enemic
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Pas 5: gràcies per veure-ho
Significat d'algunes paraules:
Oyun => Joc
Arac => Forma
Dusman => Enemic
kontrol => control
Konum, Yer => Ubicació
Oyun Bitti => Joc acabat
Skor => Puntuació
Hiz => Velocitat
Recomanat:
E-dohicky, la versió electrònica del mesurador de potència làser de Russ Dohicky: 28 passos (amb imatges)
E-dohicky, la versió electrònica del mesurador de potència làser de Russ Dohicky: eina elèctrica làser. E-dohicky és la versió electrònica del dohicky de Russ SADLER. Russ anima el molt bon canal de youtube SarbarMultimedia https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER presenta un accessori fàcil i barat
El ThreadBoard (versió no impresa en 3D): Tauler de prototipatge ràpid per a e-tèxtil: 4 passos (amb imatges)
El ThreadBoard (versió no impresa en 3D): Taula de prototipatge ràpid per a e-tèxtil: es pot trobar aquí la versió per imprimir en 3D del ThreadBoard V2. La versió 1 del ThreadBoard es pot trobar aquí. A través dels obstacles del cost, viatges, pandèmies i altres barreres, és possible que no tingueu accés a una impressora 3D però que vulgueu
Fer un robot senzill a partir de les coses que podeu trobar a casa vostra (versió de la roda ràpida): 5 passos
Fent un robot senzill amb les coses que podeu trobar a casa (versió de la roda ràpida): aquest manual us mostrarà com fer una roda ràpida que funcioni per si sola i que funcioni amb bateries de doble A. Només haureu d’utilitzar coses que molt probablement trobareu a casa vostra. Tingueu en compte que aquest robot probablement no anirà exactament recte, un
Arduino Volt Meter (0-100V DC) - Versió 2 (millor): 3 passos
Arduino Volt Meter (0-100V DC) - Versió 2 (millor): en aquesta instrucció, he construït un voltímetre per mesurar tensions altes DC (0-100v) amb una precisió i precisió relativa mitjançant un Arduino Nano i un ADS 1115 ADC .Aquesta és una segona versió del voltímetre que he utilitzat aquí: https: // ww
Arduino Space Race Game Versió _1: 5 passos
Arduino Space Race Game Versió _1: Ei amics. Avui sóc ganna us mostraré com podeu fer un joc de carreres espacials mitjançant pantalla LCD5110 i joystic