Агуулгын хүснэгт:
Видео: Сансрын уралдааны тоглоомын хувилбар 2: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Хөөе бүгдээрээ. Тоглоомын энэ хувилбараас өмнө би тоглоомын анхны хувилбарыг нийтэлсэн. Өнөөдөр би танд 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 => Хурд
Зөвлөмж болгож буй:
Сансрын довтлогчидтой Lego зөөврийн тоглоомын консол: 4 алхам
Space Invaders-тэй Lego зөөврийн тоглоомын консол: Та тоглоом хөгжүүлэгч байх, өөрийн тоглоомын консолыг бүтээх талаар бодож байсан уу? Танд хэрэгтэй зүйл бол жаахан хугацаа, техник хангамжLego bricksa Mini-Calliope (энэ вэбсайтаас захиалж болно https://calliope.cc/en) болон зарим ур чадвар
DIY уралдааны тоглоомын симуляторыг бүтээсэн хэсэг 1: 6 алхам
DIY уралдааны тоглоомын симуляторыг бүтээсэн 1 -р хэсэг: Сайн байцгаана уу, өнөөдөр би танд "уралдааны тоглоомын симулятор" хэрхэн бүтээхээ үзүүлэх болно. Arduino UNO -ийн тусламжтайгаар. YouTube суваг " та миний A сувгийг захиалж байгаа эсэхээ шалгаарай (Энд дарна уу) " Энэ бол бүтээх блог юм, тиймээс
DIY уралдааны тоглоомын симулятор -- F1 симулятор: 5 алхам
DIY уралдааны тоглоомын симулятор || F1 СИМУЛЯТОР: Сайн байцгаана уу Миний сувагт тавтай морилно уу, Өнөөдөр би танд "Тэмцээний тоглоомын симулятор" хэрхэн бүтээхээ үзүүлэх болно. Arduino UNO -ийн тусламжтайгаар. Энэ бол бүтээх блог биш, зөвхөн симуляторын тойм, туршилт юм. Бүрэн бүтээх блог тун удахгүй
Кербалын сансрын хөтөлбөрийн физик үе шатыг ашиглан өөрийн сансрын хөөргөлтийг сайжруулаарай: 6 алхам
Кербалын сансрын хөтөлбөрийн физик шатлалын товчлуур ашиглан өөрийн сансрын хөөргөлтийг сайжруулаарай: Би саяхан Кербал сансрын хөтөлбөрийн демо хувилбарыг авлаа. Кербал сансрын хөтөлбөр бол симулятор тоглоом бөгөөд пуужин зохион бүтээх, хөөргөх, алс холын сар, гариг руу чиглүүлэх боломжийг олгодог. Би саран дээр амжилттай буух гэж оролдсоор л байна (o
KerbalController: Кербал сансрын пуужингийн тоглоомын тусгай хяналтын самбар: 11 алхам (зурагтай)
KerbalController: Пуужингийн тоглоомын тусгай хяналтын самбар Kerbal Space Program: KerbalController -ийг яагаад бүтээх ёстой юм бэ? Ялангуяа энэ нь том улаан хамгаалалтын унтраалга бөгөөд та эхлээд тагийг нь нээх ёстой бол унтраалгыг дарна уу