Агуулгын хүснэгт:
- Алхам 1: ХЭРЭГЦЭЭ
- Алхам 2: SCHEMA
- Алхам 3: КОД
- Алхам 4: BITMAP -ийг кодлох
- Алхам 5: Үзсэнд баярлалаа
Видео: Arduino Space Race тоглоомын хувилбар _1: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Хөөе найзуудаа. Өнөөдөр би LCD5110 дэлгэц, джойстик ашиглан сансрын уралдааны тоглоомыг хэрхэн яаж хийхийг танд үзүүлэх гэж байна. Алхам алхмуудыг харцгаая …
Алхам 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, din, dc, rst, ce)
int BL = 3;
extern uint8_t SmallFont ; // фонтыг тайлбарлах extern uint8_t MediumNumbers ; extern uint8_t arac ; // бидний хэлбэрийг дүрсэлнэ extern uint8_t dusman_araci ; // дайсны хэлбэрийг тайлбарлах const int xpin = A0; // joystick x pin char pozisyon = 2; // байршлыг тайлбарлах, бидний хэлбэр эхлэх байршил 2 boolean kontrol = үнэн; boolean dusmanOldu = үнэн; int skor = 0; int hiz = 0; int dusmanKonumu1; // тайлбарлах dushman1 x байршил int dusmanKonumu2; // тайлбарлах душман2 x байршил int dusmaninYdeKonumu; // дайснуудын байршлыг тайлбарлах
void dusmanAraci (int yer, int asama) {// дайсны дүрсийг байршуулах
if (yer == 1) {// if location = 1; lcd.drawBitmap (2, асама, dusman_araci, 12, 8); // дайсны дүрсийг зурах} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// хэрэв бид бүтэлгүйтвэл тоглоом дуусна
while (1) {саатал (100); // 1 миллисекунд lcd.clrScr () хүлээнэ үү; // дэлгэцийг цэвэрлэх lcd.setFont (SmallFont); // фонтыг тохируулах lcd.print ("GAME OVER", CENTER, 20); // lcd.update хэвлэх (); // дэлгэцийг шинэчлэх}}
void setup () {pinMode (BL, OUTPUT); // арын гэрлийг тохируулах Гаралт lcd. InitLCD (); // lcd дэлгэцийг эхлүүлэх lcd.setContrast (55); // тодосгогчийг тохируулах (0 -ээс 127 хүртэл) Serial.begin (9600); // цуврал холбоог эхлүүлэх}
void loop () {
analogWrite (BL, 200);
// тоглоомын дэлгэцийг тохируулах lcd.drawRect (0, 0, 47, 47); // бид тэгш өнцөгт lcd.setFont (SmallFont) зурдаг; // фонтыг тохируулах lcd.print ("skor", 53, 0); // printf оноо lcd.setFont (MediumNumbers); // фонтыг тохируулах lcd.printNumI (skor, 59, 7); // оноо авах lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // хэвлэх хурд lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // lcd.update () хурд авах; // шинэчлэх
// joyistick байршлыг тохируулах 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 ба хяналт нь үнэн pozisyon ++; // байршлыг нэмэгдүүлэх нь хэлбэрээ баруун тийш шилжүүлэх гэсэн утгатай kontrol = false; } if if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // x төлөвийг сурахын тулд // бидний хэлбэрийн байршлыг тохируулна уу lcd.clrScr (); // хэрэв дэлгэцийг цэвэрлэ (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // манай хөлөг онгоцыг зурвал if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}
хэрэв (байрлал == 3) {
lcd.drawBitmap (34, 37, arac, 12, 8);}
if (dusmanOldu) {// хэрэв дайсны хэлбэр үхсэн бол тэд үхсэн эсэхийг шалгаарай
dusmanKonumu1 = байрлал; // эхний дайсны хэлбэрийг зур dusmanKonumu2 = санамсаргүй (0, 4); // өөр дайсны хэлбэрийг хаа нэгтээ зур dusmaninYdeKonumu = 0; // дайсныг дээд талаас нь авчирна dusmanOldu = false;} // дайсан дахин бүтээгдсэн тул тэд үхээгүй байна dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // дайсны анхны хэлбэрийг зураад дээрээс доош нь ав dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // дайсны хоёр дахь дүрсийг зурж, дээрээс нь доош нь аваарай (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) // хэрэв бидний хэлбэр дайсандаа хүрвэл oyunBitti ();} // тоглоом дууссан бол (dusmaninYdeKonumu> 40) {// хэрэв бидний хэлбэр дайснуудаас зугтвал dusmanOldu = true; // дайсны хэлбэрийг устгах skor ++;} // оноог нэг нэгээр нэмэгдүүлэх // онооны дагуу хурдыг нэмэгдүүлэх (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; саатал (40); }}
Алхам 4: BITMAP -ийг кодлох
Цаашилбал, та дүрс зургийн график дүрс оруулах ёстой. Энэ нь.c файл байх ёстой бөгөөд кодын нэртэй ижил нэртэй байх ёстой, мөн ижил файл дотор байх ёстой.
// ------------------------------------------------ ------------------------------ // LCD туслагчийн үүсгэсэн файл // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include for progmem function
const unsigned char arac PROGMEM = {// бидний хэлбэрийн bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// дайсны хөлөг онгоцны bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Алхам 5: Үзсэнд баярлалаа
Би төслүүдээ хуваалцахаасаа өмнө турк хэлээр кодлосон тул үг бүрийг англи хэл рүү орчуулах боломжгүй байсан.
Оюун = Тоглоом
Arac = хэлбэр
Дусман = Дайсан
хяналт = хяналт
Конум, Ер = Байршил
Оюун Бити = Тоглоом дууслаа
Скор = Оноо
Хиз = хурд
Зөвлөмж болгож буй:
(ШИНЭЧЛЭХ - ХЯЛБАР АСУУДАЛ БАЙНА) PC тоглоомын USB тоглоомын хянагч: 10 алхам (зурагтай)
(ШИНЭЧЛЭХ - ХЯЛБАР АСУУДАЛ БАЙНА) USB тоглоомын хянагч PC
Arduino Rhythm Тоглоомын Хянагч (Миний Тоглоомын хувьд): 6 алхам
Arduino Rhythm Тоглоомын Хянагч (Миний Тоглоомын хувьд): Энэхүү зааварчилгаанд би энэхүү хэмнэлийн тоглоомын хянагчийг хэрхэн эхнээс нь бүтээж байгааг харуулах болно. Үүнд мод боловсруулах үндсэн ур чадвар, 3d хэвлэх үндсэн ур чадвар, гагнуурын үндсэн ур чадвар орно. Хэрэв танд хуучин нөхөр байхгүй бол та энэ төслийг амжилттай барьж чадна
Arduino дээр суурилсан DIY тоглоомын хянагч - Arduino PS2 тоглоомын хянагч - DIY Arduino Gamepad ашиглан Tekken тоглох: 7 алхам
Arduino дээр суурилсан DIY тоглоомын хянагч | Arduino PS2 тоглоомын хянагч | DIY Arduino Gamepad ашиглан Tekken тоглох: Сайн байна уу залуусаа, тоглоом тоглох нь үргэлж хөгжилтэй байдаг, гэхдээ өөрийн гараар хийсэн DIY тоглоомын хянагчтай тоглох нь илүү хөгжилтэй байдаг тул бид энэ зааварт arduino pro micro ашиглан тоглоом хянагч хийх болно
Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам
Сансрын уралдааны тоглоомын хувилбар 2: Бүгдээрээ сайн уу. Тоглоомын энэ хувилбараас өмнө би тоглоомын анхны хувилбарыг нийтэлсэн. Өнөөдөр би танд Space Race Game 2 хувилбарыг үзүүлэх болно
Olympus Evolt E510 алсын кабелийн хувилбар (Алсын удирдлага дээр автомат фокус бүхий 2 -р хувилбар): 6 алхам (зурагтай)
Olympus Evolt E510 алсын кабелийн хувилбар (Алсын удирдлага дээр автомат фокус бүхий 2 -р хувилбар): Өчигдөр би Olympus E510 -ийнхээ нэг товчлууртай энгийн алсын удирдлагыг бүтээсэн. Ихэнх камерууд хоёр горимтой Хөшиг суллах товчлууртай (зураг дарах гэж дардаг). Хэрэв товчлуурыг дарвал камер автоматаар фокуслаж, гэрлийг хэмжих болно