Агуулгын хүснэгт:

Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам
Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам

Видео: Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам

Видео: Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам
Видео: 🎶 ДИМАШ "ОПЕРА 2". История выступления и анализ успеха | Dimash "Opera 2" 2024, Долдугаар сарын
Anonim
Image
Image

Хөөе бүгдээрээ. Тоглоомын энэ хувилбараас өмнө би тоглоомын анхны хувилбарыг нийтэлсэн. Өнөөдөр би танд Space Race Game 2 хувилбарыг үзүүлэх болно.

Алхам 1: Хэсэг

Схем
Схем

Миний энэ төслийг хийхэд ашиглаж байсан хэсгүүдийн жагсаалт энд байна.

  • Ардуино НҮБ
  • Joystick модуль
  • Холбогч утас (эрэгтэй, эрэгтэй, эрэгтэй эмэгтэй)
  • Талхны самбар

Алхам 2: SCHEMA

VCC -> Arduino 5V

BL -> Arduino pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino зүү 9

DC -> Arduino зүү 10

CE эсвэл CS -> Arduino pin 12

RST (дахин тохируулах) -> Arduino pin 11

Алхам 3: КОД

КОД
КОД

Код нь кодын функцын тайлбартай байдаг. Та үүнийг амархан ойлгох болно. Хэрэв танд асуудал байгаа бол надтай холбоо барьж болно.

#оруулах

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

логик хяналт = үнэн;

boolean dusmanoldu = үнэн;

extern uint8_t SmallFont ; // фонтуудыг тайлбарлах

extern uint8_t MediumNumbers ; extern uint8_t arac ; // бидний хэлбэрийг дүрсэлнэ extern uint8_t dusmanAraci ; // дайсны хэлбэрийг тайлбарлах const int xpin = A0; // joystick x pin char pozisyon = 3; // байршлыг тайлбарлах, бидний хэлбэр эхлэх байршил 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // дайсан тайлбарлах1 x байршил int dusmankonum2; // тайлбарлах душман2 x байршил int dusmankonum3; // душманыг тайлбарлах3 x байршил int dusmankonum4; // тайлбарлах душман4 x байршил int dusmankonum5; // тайлбарлах дайсан5 x байршил int dusmaninYdekonumu;

void oyunEkrani () {// тоглоомын дэлгэцийг тохируулах

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // бид тэгш өнцөгт lcd.setFont (SmallFont) зурдаг; // фонтыг тохируулах lcd.print ("skor", 57, 1); // хэвлэх оноо lcd.print ("hiz", 60, 24); // хэвлэх хурд lcd.setFont (MediumNumbers); // фонтыг тохируулах lcd.printNumI (skor, 55, 8); // оноо авах lcd.printNumI (hiz, 63, 32); // lcd.update () хурд авах; }

void dusmanAracidurum (int yer, int asama) {// дайсны дүрсийг байршуулах

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if байршил = 1 дайсан энэ газрыг байрлуулбал (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 () {// хэрэв бид бүтэлгүйтвэл тоглоом дуусна

while (1) {саатал (100); // 1 миллисекунд lcd.clrScr () хүлээнэ үү; lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", ТӨВ, 8); // тоглоомыг lcd.print дээр хэвлэх ("skorunuz =", 3, 30); // оноогоо хэвлэ lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // сүүлчийн оноог авах lcd.update (); }}

хүчингүй тохиргоо () {

pinMode (BL, OUTPUT); // арын гэрлийг тохируулах Гаралтын pinMode (xpin, INPUT); // x pin -ийг оролтын lcd. InitLCD () болгон тохируулах; // lcd дэлгэцийг эхлүүлэх lcd.setContrast (55); // тодосгогчийг тохируулах (0 -ээс 127 хүртэл) Serial.begin (9600); // цуврал холбоог эхлүүлэх}

void loop () {

analogWrite (BL, 350); oyunEkrani ();

// баяр баясгалангийн байдал… // джойстикийн байршлыг тохируулах …

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 ба хяналт нь үнэн pozisyon ++; // байршлыг нэмэгдүүлэх нь хэлбэрээ баруун тийш шилжүүлэх гэсэн утгатай kontrol = false; } if 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 ();} // манай хөлөг онгоцыг зурвал 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) {// хэрэв дайсны хэлбэр үхсэн бол тэд үхсэн эсэхийг шалгаарай

dusmankonum1 = байрлал; // дайсны анхны хэлбэрийг зур dusmankonum2 = санамсаргүй (0, 6); // хаа нэгтээ өөр дайсны дүрсийг зур dusmankonum3 = санамсаргүй (0, 6); dusmankonum4 = санамсаргүй (0, 6); dusmankonum5 = санамсаргүй (0, 6); dusmaninYdekonumu = 0; // дайсныг дээд талаас нь авчир dusmanoldu = false;} // дайсныг дахин бүтээсэн тул тэд үхээгүй байна

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // дайсны анхны хэлбэрийг зураад дээрээс доош нь ав

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // дайсны хоёр дахь дүрсийг зураад дээрээс доош нь аваарай dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) ||); // тоглоом дууслаа}

if (dusmaninYdekonumu> 42) {// хэрэв бидний хэлбэр дайснуудаас зугтах юм бол

dusmanoldu = үнэн; // дайсны хэлбэрийг алах skor ++; // оноог нэг нэгээр нэмэгдүүлэх}

// skora gore hizi artiriyoruz // онооны дагуу хурдыг нэмэгдүүлэх

хэрэв (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; саатал (5); }

}

Алхам 4: BITMAP -ийг кодлох

Цаашилбал, та дүрсний хувьд битийн зургийн график оруулах ёстой бөгөөд энэ нь.c файл байх ёстой.

#include // include for progmem function

const unsigned char arac PROGMEM = {// бидний хэлбэрийн bitmap

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

const unsigned char dusmanAraci PROGMEM = {// дайсны хөлөг онгоцны bitmap

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

Алхам 5: Үзсэнд баярлалаа

Зарим үгсийн утга:

Oyun => Тоглоом

Arac => Хэлбэр

Дусман => Дайсан

kontrol => хяналт

Конум, Ер => Байршил

Oyun Bitti => Тоглоом дууслаа

Skor => Оноо

Hiz => Хурд

Зөвлөмж болгож буй: