Мазмұны:
- 1 -қадам: ҚАЖЕТТІКТЕР
- 2 -қадам: SCHEMA
- 3 -қадам: КОД
- 4 -қадам: BITMAP -ті кодтау
- 5 -қадам: Қарағаныңызға РАХМЕТ
Бейне: Arduino Space Race ойынының нұсқасы _1: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Эй достар. Бүгін мен сізге LCD5110 экраны мен джойстик арқылы ғарыштық жарыс ойынын қалай жасауға болатынын көрсеткім келеді.
1 -қадам: ҚАЖЕТТІКТЕР
Міне, мен осы жобаны жасау үшін пайдаланған бөліктердің тізімі:
- Arduino UNO
- Джойстик модулі
- Jumper Wires (еркектен еркекке және еркектен әйелге)
- Нан тақтасы
2 -қадам: SCHEMA
VCC -> Arduino 5V
BL -> Arduino түйрегіші 3
GND -> Arduino GND
CLK (SCLK) -> Arduino пин 8
DIN (MOSI) -> Arduino PIN 9
DC -> Arduino штыры 10
CE немесе CS -> Arduino pin 12
RST (қалпына келтіру) -> Arduino түйрегіш 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; // джойстик x pin char pozisyon = 2; // орналасқан жерді сипаттаңыз, біздің пішініміздің басталу орны 2 логикалық kontrol = true; логикалық dusmanOldu = ақиқат; int skor = 0; int hiz = 0; int dusmanKonumu1; // сипаттау dush1 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, асама, dusman_araci, 12, 8); }}
void oyunBitti () {// егер біз сәтсіздікке ұшырасақ, ойын аяқталады
while (1) {delay (100); // 1 милисекунд күтіңіз lcd.clrScr (); // экранды тазарту lcd.setFont (SmallFont); // шрифтті орнату lcd.print («GAME OVER», ОРТАЛЫҚ, 20); // lcd.update басып шығару (); // экранды жаңарту}}
void setup () {pinMode (BL, OUTPUT); // артқа қою жарығы Output lcd. InitLCD (); // lcd.setContrast (55) lcd экранын бастаңыз; // контрасты орнатыңыз (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 score lcd.setFont (MediumNumbers); // шрифтті орнату lcd.printNumI (skor, 59, 7); // lcd.setFont (SmallFont) баллын алу; lcd.print («хиз», 56, 25); // басып шығару жылдамдығы lcd.setFont (MediumNumbers); lcd.printNumI (хиз, 59, 32); // lcd.update жылдамдығын алу (); // жаңарту
// джойстиктің орнын орнатыңыз 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; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // x күйін үйрену үшін // форманың орналасуын орнатыңыз lcd.clrScr (); // экранды тазалаңыз if (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 = жалған;} // жау қайта құрылады, сондықтан олар өлі емес dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // жаудың бірінші пішінін сызыңыз және оны жоғарыдан төмен қарай алыңыз dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // жаудың екінші пішінін салыңыз және оны жоғарыдан төменге қарай алыңыз, егер (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// егер біздің пішін жауға тиіп кетсе oyunBitti ();} // ойын аяқталды if (dusmaninYdeKonumu> 40) {// егер біздің формамыз жаулардан қашып кетсе dusmanOldu = true; // жау пішіндерін өлтіру skor ++;} // баллды бір -бірлеп жоғарылату // егер жылдамдыққа сәйкес жылдамдықты жоғарылатса (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; кешіктіру (40); }}
4 -қадам: BITMAP -ті кодтау
Сонымен қатар, пішіндер үшін нүктелік кескін графигін қосу қажет. Бұл файл.c және код атымен бірдей болуы керек, сонымен қатар ол сол файлда болуы керек.
// ------------------------------------------------ ------------------------------ // СКД көмекшісі жасаған файл // https://kz.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include функциясы үшін
const unsigned char arac PROGMEM = {// біздің пішіннің нүктелік картасы
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// жау кемелерінің нүктелік картасы
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
5 -қадам: Қарағаныңызға РАХМЕТ
Мен өз жобаларыммен бөліспес бұрын, мен түрік сөздерімен кодтадым, сондықтан әр сөзді ағылшын тіліне аударуға мүмкіндік болмады.
Ойын = Ойын
Arac = Пішін
Дусман = Жау
бақылау = бақылау
Konum, Yer = Орналасуы
Ойын Бити = Ойын аяқталды
Скор = Ұпай
Хиз = жылдамдық
Ұсынылған:
Пар 3 гольф ойынының автоматты ұпай саны: 12 қадам (суреттермен)
Гольф ойынының 3 -ші атқарушы ойынына автоматты түрде ұпай жинау: Мен жақында портативті және іште де, сыртта да ойнауға болатын қызықты ойын ойнауға арналған нұсқаулықты жарияладым. Ол «Executive Par 3 гольф ойыны» деп аталады. Мен әр ойыншының 9 «саңылауына» ұпай жинау үшін көшірме балл картасын жасадым. Қалай
Төмен құны бар MR ойынының демонстрациясы: 9 қадам
Төмен құны бар MR ойынының демонстрациясы: http://www.bilibili.com/video/av7937721/ (қытай материгіндегі бейне URL) Қарап шығу: Екі осьті ұстағышқа белгі суретін орнатыңыз , Пайдаланушы оны картоннан қараңыз , жабылған монстрты көре аласыз Ойын әлемінде олар бір -бірін атып тастайды. АР көмегімен бұрыштық ставканы анықтаңыз
Арка ойынының стекерлері: 6 қадам (суреттермен)
Арка ойынының стекерлері: Сәлем балалар, бүгін мен сіздермен Ws2812b светодиоды мен микроконтроллер/FPGA көмегімен жасауға болатын таңғажайып аркада ойынымен бөліскім келеді. Backs Stack Overflow - бұл классикалық аркада ойынының біздің аппараттық қосымшасы. Мектеп жобасы неден басталды
Ғарыштық жарыс ойынының нұсқасы 2: 5 қадам
Ғарыштық жарыс ойынының 2 -нұсқасы: Барлығына сәлем. Бұл ойын нұсқасынан бұрын мен ойынның бірінші нұсқасын жарияладым. Бүгін мен сізге Space Race Game 2 нұсқасын көрсетемін. Қадамдарды қарастырайық
PS4 Meme ойынының мұқабасы: 3 қадам
PS4 Meme Game Cover: Біз мемлерді және онымен байланысты барлық нәрсені жақсы көреміз. Біз бұл мембраналар мен ойындарға қызығушылық танытқанымыз үшін PlayStation 4 Big Chungus ойынының мұқабасын жасауды шештік. Біз ойын иллюстраторында өз мұқабамызды жасадық және интернеттен естеліктер алдық. Хара