Мазмұны:
Бейне: Иілгіш құс: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бүгін біз TFT LCD көмегімен ойын жасаймыз. Бұл шынымен де танымал ойынға ұқсайды және көптеген адамдар бұл ойынды әлі де ойнайды. Ойын Flappy Bird деп аталады, бірақ бұл ойын біршама ерекшеленеді, себебі UI әр түрлі, сонымен қатар ойын әдісі. Мен бұл ойынды Floppy Bird деп атадым, себебі бұл авторлық құқық мәселелеріне әкелуі мүмкін. Дегенмен, бұл өте қызықты ойын және оны жасау оңай. Мен бұл нұсқаулықты жасадым, бұл сізге ойынды толығымен жасауға және оны мен сияқты жұмыс істеуге мүмкіндік береді. Егер сізде сұрақтар туындаса, төменде түсініктеме беріңіз, мен бұл сұрақтарға мүмкіндігінше тез жауап беруге тырысамын.
Жабдықтар
- Arduino Mega 2560 және кабель
- Arduino Mega Shield
- Arduino TFT LCD Arduino Mega 2560 үйлесімді
- SD картасы
1 -қадам: TFT СКД жинау
Енді біз TFT СКД құрастыруды бастай аламыз. Біз TFT LCD экранын қалқанға қосамыз, сондықтан алдымен TFT СКД алып, оны қалқандағы түйреуіштермен туралаңыз. Түйреуіштерді туралағаннан кейін, TFT СКД төмен қарай итеріңіз, ол орнына сәйкес келеді. Барлық түйреуіш бастары қалқанға қойылғанда және түйреуіш бастарын көре алмайтын кезде, TFT СКД дұрыс қосылғанын білесіз. Әрі қарай, біз қалқаны Arduino Mega 2560 -ке қосамыз. Ардуино Мега қалқанының түйреуіштерін туралаңыз және қосыңыз. Барлық түйреуіш бастары Arduino Mega -де болғанда және түйреуіш бастарын көре алмасаңыз, бұл TFT СКД дұрыс жалғанғанын және оны қосуға дайын екенін білсеңіз. СКД -ді дұрыс қосқаныңызды білу үшін Arduino -ны қосыңыз, егер СКД қосылып, экран ақ болса, құттықтаймыз, сіз TFT СК -ні сәтті жалғадыңыз, енді ол бағдарламалануға дайын. Ақырында, бізде бір нәрсе бар, ол - SD картасын СКД -ге қосу. TFT СКД артқы жағында SD картасының ұясы бар, оны жай ғана SD картасын қосуға болады. Сондықтан, оны жай ғана қосыңыз және ол аяқталды.
2 -қадам: TFT СКД бағдарламалау
Енді біз LCD -ді бағдарламалайтын боламыз, ол ойынды басқарады және біз оны ойнай аламыз. Төменде Arduino IDE көмегімен құрастыру және жүктеу қажет код бар.
Сізде болуы мүмкін проблемалар:
Сізде бар модельге сәйкес TFT СКД параметрлерін өзгертіңіз.
ТОЛЫҚ КОД:
#қосу #қосу #қосу
// ==== Объектілерді құру
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Параметрлер сіздің Display/Shield үлгісіне сәйкес реттелуі тиіс URTouch myTouch (6, 5, 4, 3, 2);
// ==== Қаріптерді анықтау
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
extern unsigned int bird01 [0x41A]; // Құстардың нүктелік картасы
int x, y; // Дисплей басылған координаттар үшін айнымалылар
// Иілгіш құс
int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int балл = 0; int lastSpeedUpScore = 0; int highScore; логикалық экран Pressed = false; логикалық ойынStarted = жалған;
жарамсыз орнату () {
// myGLCD. InitLCD () дисплейін іске қосыңыз; myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); Ең жоғары рейтинг = EEPROM.read (0); // EEPROM inititeGame () бағдарламасынан ең жоғары балды оқыңыз; // Ойынды бастаңыз}
void loop () {
xP = xP-moveRate; // xP - x пиларлардың координаты; диапазон: 319 - (-51) drawPilars (xP, yP); // Құстардың // yB - y координаттарының тіректерін салады, ол құлағанRate айнымалысының мәніне байланысты yB+= fallRateInt; fallRate = fallRate+0,4; // Әрбір инетрацияда құлдырау жылдамдығы артады, осылайша біз үдеу/ гравитациялық әсерге қол жеткізе аламыз fallRateInt = int (fallRate); // Соқтығысуды тексереді, егер (yB> = 180 || yB <= 0) {// жоғарғы және төменгі gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// жоғарғы тірек gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// төменгі тірек gameOver (); } // DrawBird (yB) құсын салады;
// Бағана экран арқылы өткеннен кейін
егер (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y);
myGLCD.setColor (0, 200, 20);
myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } else if (x <= 268) {// myGLCD.setColor (114, 198, 206) бағанының оң жағындағы көк төртбұрышты сызады; myGLCD.fillRect (x+51, 0, x+60, y); // myGLCD.setColor тірегін салады (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // myGLCD.setColor (0, 0, 0) тірегінің қара жақтауын салады; myGLCD.drawRect (x+50, 0, x, y); // myGLCD.setColor (114, 198, 206) бағананың сол жағындағы көк тіктөртбұрышты салады; myGLCD.fillRect (x-1, 0, x-3, y);
// Төменгі тірек
myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, y+80, x+60, 204); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, y+81, x+1, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, y+80, x, 204); myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, y+80, x-3, 204); } // myGLCD.setColor (0, 0, 0) ұпайын шығарады; myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (балл, 100, 220); }
// ====== drawBird () - реттелетін функция
void drawBird (int y) {// Құсты салады - myGLCD.drawBitmap нүктелік картасы (50, y, 35, 30, bird01); // myGLCD.setColor (114, 198, 206) жай -күйін тазарту үшін құстың үстінен және астынан көк төртбұрыштар салады; myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Custom Function void gameOver () {delay (3000); // 1 секунд // Экранды тазартады және myGLCD.clrScr () мәтінін басып шығарады; myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print («GAME OVER», ОРТАЛЫҚ, 40); myGLCD.print («Ұпай:», 100, 80); myGLCD.printNumI (балл, 200, 80); myGLCD.print («Қайта бастау …», ОРТА, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, ОРТА, 150); кешіктіру (1000); myGLCD.printNumI (1, ОРТА, 150); кешіктіру (1000); // EEPROM -да ең жоғары баллды жазады, егер (балл> ең жоғары ұпай) {ең жоғары балл = балл; EEPROM.write (0, ең жоғары рейтинг); } // айнымалыларды xP = 319 позиция мәндерінің бастапқы мәніне қайтарады; yB = 50; fallRate = 0; балл = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = жалған; // inititeGame ойынын қайта іске қосыңыз (); }
3 -қадам: Орындалды
Біз схеманы жасап, кодты құрастырдық. Енді бізге Arduino мегасын қосып, ойын ойнау керек.
Мұнда менде бұл ойынның қалай жұмыс істейтіні және оны орнату үшін не істеу керектігі көрсетілген бейне сілтемесі бар:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Төменде сізде қандай да бір проблемалар болса, маған хабарлаңыз.
Ұсынылған:
Робот құс: 8 қадам
Роботтық құс: Бұл жоба сізге су ішетін роботты қалай жасау керектігін көрсетеді. Сіз видеода жұмыс істейтін құсты көре аласыз. Осциллятор құс екі контактінің біріне тиген кезде іске қосылатын қарапайым аударылмалы контурдан жасалған
Магнитпен қозғалатын құс: 5 қадам
Магнитті мотивацияланған құс: жоба туралы Жоба сізге мотивация ретінде твит жазатын құсты бейнелейтін ойыншық жасауды көрсетеді. Құстың «құрақ қосқыш» деп аталатын белгілі бір сезім мүшесі бар; Магнит осы элементке жақындағанда контактілер жабылады және
Аниматронды құс: 3 қадам
Аниматрондық құс: Бұл аниматоникалық бастапқыда TSA (Технологиялық студенттер қауымдастығы) жобасы болды. Біз аниматрониканы жасап, оның басқару электроникасында қалай жұмыс істейтінін түсіндіруіміз керек болды
Apple II иілгіш Hackintosh I7-7700 3.6Гц: 7 қадам
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Бұл бірінші сурет сізге таза дискіге сілтеме жасау үшін (Apple-дің кемпірқосақ логотипі бар), менде сәл жүгіріс бар. Екінші сурет - бұл ішкі көрініс, мен оны бөлшектемес бұрын суретке түсіруді ұмытып кеттім, сондықтан Гугтың рұқсатымен
Иілгіш ноутбук: 5 қадам (суреттермен)
Иілгіш ноутбук: Бұл менің дизайн мен прототиптік дағдыларды сақтап қалу және NDA -ға жатпайтын немесе біреуге лицензия беру процесінде бөлісу үшін жасаған шағын жоба. Мен оны кәсіби кеңестерге жіберемін және бұл шынымен нұсқаулық