İçindekiler:

Disket Kuşu: 3 Adım
Disket Kuşu: 3 Adım

Video: Disket Kuşu: 3 Adım

Video: Disket Kuşu: 3 Adım
Video: Oyun Sektörüne Giriş Soru ve Cevapları #1 | Sektöre Sıfırdan Nasıl Girilir? 2024, Kasım
Anonim
disket kuş
disket kuş
disket kuş
disket kuş

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ı

TFT LCD'nin Montajı
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

TFT LCD'yi Programlama
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

Tamamlandı!
Tamamlandı!

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: