Tabla de contenido:

Space Race Game Versión 2: 5 pasos
Space Race Game Versión 2: 5 pasos

Video: Space Race Game Versión 2: 5 pasos

Video: Space Race Game Versión 2: 5 pasos
Video: Game in a Nutshell - Space Race (how to play) 2024, Noviembre
Anonim
Image
Image

Hola a todos. Antes de esta versión del juego, publiqué la primera versión del juego. Hoy, te mostraré la versión 2 del juego Space Race. Veamos los pasos …

Paso 1: PIEZAS

ESQUEMA
ESQUEMA

Aquí hay una lista de partes que utilicé para hacer este proyecto:

  • Arduino UNO
  • Módulo de joystick
  • Cables de puente (macho a macho y macho a hembra)
  • Tablero de circuitos

Paso 2: ESQUEMA

VCC -> Arduino 5V

BL -> Pin 3 de Arduino

GND -> Arduino GND

CLK (SCLK) -> Pin 8 de Arduino

DIN (MOSI) -> Pin 9 de Arduino

DC -> Pin 10 de Arduino

CE o CS -> Pin 12 de Arduino

RST (RESET) -> Pin 11 de Arduino

Paso 3: CÓDIGO

CÓDIGO
CÓDIGO

El código tiene explicaciones de las funciones del código. Lo entenderá fácilmente. Si tienes algún problema, puedes contactarme.

#incluir

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc, rst, ce)

kontrol booleano = verdadero;

booleano dusmanoldu = verdadero;

extern uint8_t SmallFont ; // describe las fuentes

extern uint8_t MediumNumbers ; extern uint8_t arac ; // describe nuestra forma extern uint8_t dusmanAraci ; // describe la forma del enemigo const int xpin = A0; // joystick x pin char pozisyon = 3; // describe la ubicación, la ubicación de inicio de nuestra forma 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // describe enemigo1 x ubicación int dusmankonum2; // describe enemigo2 x ubicación int dusmankonum3; // describe enemigo3 x ubicación int dusmankonum4; // describe enemigo4 x ubicación int dusmankonum5; // describe enemigo5 x ubicación int dusmaninYdekonumu;

void oyunEkrani () {// establecer la pantalla del juego

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // dibujamos el rectángulo lcd.setFont (SmallFont); // establecer fuente lcd.print ("skor", 57, 1); // imprimir puntuación lcd.print ("hiz", 60, 24); // velocidad de impresión lcd.setFont (MediumNumbers); // establece la fuente lcd.printNumI (skor, 55, 8); // obtener puntuación lcd.printNumI (hiz, 63, 32); // obtener velocidad lcd.update (); }

void dusmanAracidurum (int yer, int asama) {// establecer ubicaciones para las formas enemigas

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 dibuja la forma del enemigo en esta ubicación 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 fallamos, el juego termina

while (1) {retraso (100); // espera 1 milisegundo lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTRO, 8); // imprime el juego sobre lcd.print ("skorunuz =", 3, 30); // imprime tu partitura lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // obtener la última puntuación lcd.update (); }}

configuración vacía () {

pinMode (BL, SALIDA); // establecer la salida de luz de fondo pinMode (xpin, INPUT); // establece x pin como entrada lcd. InitLCD (); // iniciar la pantalla lcd lcd.setContrast (55); // establecer contraste (de 0 a 127) Serial.begin (9600); // iniciar la comunicación en serie}

bucle vacío () {

analogWrite (BL, 350); oyunEkrani ();

// joyistic durumu… // establece la ubicación de joyistick…

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 y el control es verdadero pozisyon ++; // aumentar la ubicación significa mover la forma a la derecha kontrol = false; } más si (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // estado de la posición… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // dibujamos nuestro barco 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) {// si la forma del enemigo está muerta, verifica si están muertos

dusmankonum1 = pozisyon; // dibuja la primera forma enemiga dusmankonum2 = random (0, 6); // dibuja otra forma enemiga en algún lugar dusmankonum3 = random (0, 6); dusmankonum4 = aleatorio (0, 6); dusmankonum5 = aleatorio (0, 6); dusmaninYdekonumu = 0; // traer al enemigo desde arriba dusmanoldu = false;} // el enemigo es recreado para que no esté muerto

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // dibuja la primera forma del enemigo y obténla de arriba a abajo

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // dibuja la segunda forma enemiga y obténla de arriba a abajo dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// si nuestra forma toca al enemigo (da forma a oyunbit)); //el juego ha terminado }

if (dusmaninYdekonumu> 42) {// si nuestra forma escapa de los enemigos

dusmanoldu = verdadero; // matar formas enemigas skor ++; // aumenta uno a uno la puntuación}

// skora gore hizi artiriyoruz // aumenta la velocidad según la puntuación

if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; retraso (5); }

}

Paso 4: CODIGO BITMAP

Además, debe incluir un gráfico de mapa de bits para las formas. Debe ser un archivo.c.

#include // incluir para la función progmem

const unsigned char arac PROGMEM = {// nuestro mapa de bits de forma

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

const unsigned char dusmanAraci PROGMEM = {// mapa de bits de la nave enemiga

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

Paso 5: gracias por ver

Significado de algunas palabras:

Oyun => Juego

Arac => Forma

Dusman => Enemigo

kontrol => control

Konum, Yer => Ubicación

Oyun Bitti => Fin del juego

Skor => Puntuación

Hiz => Velocidad

Recomendado: