İçindekiler:
Video: Disket Kuşu: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bugün TFT LCD kullanarak bir oyun yapacağız. Bu gerçekten popüler olan bir oyuna benziyor ve birçok insan hala bu oyunu oynuyor. Oyunun adı Flappy Bird ama bu oyun biraz farklı çünkü kullanıcı arayüzü ve oyunun çalışma şekli farklı. Telif hakkı sorunlarına yol açabileceğinden bu oyuna Floppy Bird adını verdim. Yine de gerçekten eğlenceli bir oyun ve yapımı da kolay. Oyunu tamamen yapmanıza ve benim yaptığım gibi çalışmasına izin verecek bu talimatı yaptım. Herhangi bir sorunuz varsa, lütfen aşağıya yorum yapın ve bu soruları olabildiğince hızlı cevaplamaya çalışacağım.
Gereçler
- Arduino Mega 2560 ve kablo
- Arduino Mega Kalkanı
- Arduino Mega 2560 ile uyumlu Arduino TFT LCD
- Hafıza kartı
Adım 1: TFT LCD'nin Montajı
Artık TFT LCD'yi monte etmeye başlayabiliriz. TFT LCD'yi kalkana bağlayacağız, bu yüzden önce TFT LCD'yi alın ve temel olarak blendajdaki pimlerle hizalayın. Pimleri hizaladıktan sonra, yerine oturması için TFT LCD'yi aşağı doğru itin. Tüm pin başları blendajdayken ve pin başlarını göremediğinizde, o zaman TFT LCD'nin doğru şekilde bağlandığını bilirsiniz. Ardından Shield'i Arduino Mega 2560'a takabiliriz. Shield'in pinlerini Arduino Mega'da hizalayın ve fişe takın. Tüm pin başları Arduino Mega'dayken ve pin başlarını göremiyorsanız, işte bu TFT LCD'nin doğru şekilde bağlandığını ve açılmaya hazır olduğunu bildiğinizde. LCD'yi düzgün bağlayıp bağlamadığınızı görmek için Arduino'yu takın, LCD açılırsa ve ekran beyazsa tebrikler, TFT LCD'yi başarıyla bağladınız ve şimdi programlanmaya hazır. Son olarak, SD kartı LCD'ye bağlamak için yapmamız gereken bir şey var. TFT LCD'nin arkasında, SD kartı kolayca takabileceğiniz bir SD kart yuvası vardır. Bu nedenle, sadece takın ve bitti.
Adım 2: TFT LCD'yi Programlama
Şimdi, LCD'yi oyunu çalıştıracak ve oynayabilecek şekilde programlayacağız. Arduino IDE kullanarak derlemeniz ve yüklemeniz gereken kod aşağıdadır.
Sahip olabileceğiniz sorunlar:
Sahip olduğunuz modele göre TFT LCD'nin parametrelerini değiştirin.
TAM KOD:
#include #include #include
//==== Nesne Oluşturma
UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); //Parametreler Display/Shield modelinize göre ayarlanmalıdır URTouch myTouch(6, 5, 4, 3, 2);
//==== Yazı Tiplerini Tanımlama
harici uint8_t SmallFont; harici uint8_t BigFont; extern uint8_t SevenSegNumFont;
extern imzasız int bird01[0x41A]; // Kuş Bit Eşlemi
int x, y; // Ekrana basılan koordinatlar için değişkenler
// Disket Kuşu
int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int düşüşRateInt = 0; kayan düşme oranı = 0; int puanı = 0; int lastSpeedUpScore = 0; int en yüksekSkor; boolean screenPressed = false; boolean gameStarted = false;
geçersiz kurulum() {
// display myGLCD. InitLCD(); myGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); en yüksekScore = EEPROM.read(0); // EEPROM initialGame()'den en yüksek puanı oku; // Oyunu başlat }
boşluk döngüsü () {
xP=xP-hareket Oranı; // xP - sütunların x koordinatı; aralık: 319 - (-51) drawPilars(xP, yP); // Sütunları çizer // Düşen Oran değişkeninin değerine bağlı olan kuşun yB - y koordinatı yB+=fallRateInt; düşüşHızı=düşüşOranı+0.4; // Her girişte düşme hızı artar, böylece ivme/ yerçekimi etkisini görebiliriz fallRateInt= int(fallRate); // Çarpışmayı kontrol eder if(yB>=180 || yB<=0){ // top ve alt gameOver(); } if((xP=5) && (yB<=yP-2)){ // üst sütun gameOver(); } if((xP=5) && (yB>=yP+60)){ // alt sütun gameOver(); } // Kuşu çizer drawBird(yB);
// Sütun ekrandan geçtikten sonra
if (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) { // Sütunun sağına mavi dikdörtgen çizer myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x+51, 0, x+60, y); // myGLCD.setColor(0, 200, 20) sütununu çizer; myGLCD.fillRect(x+49, 1, x+1, y-1); // myGLCD.setColor(0, 0, 0) sütununun siyah çerçevesini çizer; myGLCD.drawRect(x+50, 0, x, y); // myGLCD.setColor(114, 198, 206) sütununun solundaki mavi dikdörtgeni çizer; myGLCD.fillRect(x-1, 0, x-3, y);
// Alt sütun
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) skorunu çizer; myGLCD.setBackColor(221, 216, 148); myGLCD.setFont(BigFont); myGLCD.printNumI(skor, 100, 220); }
//====== drawBird() - Özel İşlev
void drawBird(int y) { // Kuşu çizer - bitmap myGLCD.drawBitmap (50, y, 35, 30, kuş01); // Önceki durumunu temizlemek için kuşun üstüne ve altına mavi dikdörtgenler çizer myGLCD.setColor(114, 198, 206); myGLCD.fillRoundRect(50, y, 85, y-6); myGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver() - Özel İşlev void gameOver() { delay(3000); // 1 saniye // Ekranı temizler ve myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("OYUN BİTTİ", MERKEZ, 40); myGLCD.print("Puan:", 100, 80); myGLCD.printNumI(skor, 200, 80); myGLCD.print("Yeniden Başlatılıyor…", MERKEZ, 120); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(2, MERKEZ, 150); gecikme(1000); myGLCD.printNumI(1, MERKEZ, 150); gecikme(1000); // EEPROM'da en yüksek puanı yazar if (score > en yüksekScore) { en yüksekScore = puan; EEPROM.write(0, en yüksekSkor); } // Konum değerlerini başlatmak için değişkenleri sıfırlar xP=319; yB=50; düşüşOranı=0; puan = 0; lastSpeedUpScore = 0; hareketliOran = 3; gameStarted = yanlış; // Oyunu yeniden başlat başlatGame(); }
Adım 3: Bitti
Devreyi yaptık ve kodu derledik. Şimdi, Arduino mega'yı takmamız ve oyunu oynamamız gerekiyor.
Burada, bu oyunun nasıl çalıştığını ve kurmak için ne yapılması gerektiğini gösteren bir videoya bağlantım var:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Aşağıda herhangi bir sorun yaşarsanız bana bildirin.
Önerilen:
Mikro:bit ile Sinek Kuşu: 6 Adım
Micro:bit Hummingbird ile: Hummingbird kartı (Birdbrain Technologies tarafından) LED'leri, çeşitli sensörleri (ışık, kadran, mesafe ve ses dahil) kontrol edebilir; servo motorlar ve diğer uzantılar. Bu Eğitim Tablosu size bir Hummingbird panosunda bir micro:bit'in nasıl kullanılacağını gösterecektir
Pi Kuşu: 5 Adım
Pi Bird: Ne yapar: Pi kamera resmin piksellerinde büyük bir değişiklik algıladığında kuşların fotoğraflarını çeker. Neye ihtiyacımız olacak: Raspberry Pi, normal SD kartlı Pi kamera modülü Pi kasası Kuş besleyiciMakro lens seti (isteğe bağlı) 5V powerbank (isteğe bağlı) USB wif
Sinek Kuşu Dedektörü/Resim Çekici: 12 Adım (Resimlerle)
Sinek Kuşu Dedektörü/Resim Çekici: Arka güvertemizde bir sinek kuşu besleyicimiz var ve son birkaç yıldır onların fotoğraflarını çekiyorum. Sinek kuşları inanılmaz küçük yaratıklardır, çok bölgeseldir ve kavgaları hem komik hem de şaşırtıcı olabilir. Ama yoruluyordum
Sinek Kuşu Denetleyicileri Olan İlkokul Öğrencileri için Robotiğe Giriş: 18 Adım
Hummingbird Denetleyicileri Olan İlkokul Öğrencileri için Robotiğe Giriş: Bugün piyasadaki çoğu robotik aracı, kullanıcının sabit disklerine belirli yazılımları indirmesini gerektirir. Hummingbird Robotik Denetleyicinin güzelliği, chromebook gibi web tabanlı bir bilgisayar kullanılarak çalıştırılabilmesidir. Ayrıca olmuştur
Sinek Kuşu Shooter: 14 Adım (Resimlerle)
Sinek Kuşu Atıcı: Bu yazın sonlarında, sinek kuşları nihayet arka verandamıza kurduğumuz besleyiciyi ziyaret etmeye başladı. Onların bazı dijital fotoğraflarını çekmek istedim, ama orada bir kamerayla "menzilde" duramazdım - asla gelmezlerdi. Uzak bir kablo bağlantısına ihtiyacım vardı