Arduino ile Flappy Bird Yapımı (DEV KONU)

mithat999

Katılımcı Üye
20 Ağu 2011
346
0
Istanbul
Arkadaşlar geçen yıllarda çok ünlenen Flappy Bird’ün arduino ile yapılan versiyonu sizinle paylaşmak istiyorum. Ama paylaşırken demeden edemiyeceğim kim yaptıysa helal olsun diyorum.

Projenin gerçekleştirilebilmesi için bir adet arduino , bir NOKİA 5110 LCD ye ve bir butona ihtiyacınız var. Projemizin zorluğu oyunun zorluğu diyebilirim çünkü proje sizin 5- 10 dakikanızı alacaktır.
Projemizin bağlantı şeması aşağıdaki gibidir.

4q77mp.jpg


Bu resimlerde de bu fakirin projenin çalışıp çalışmadığı için gerçekleştirdiği resimler.

aM99LQ.jpg



Projemizde bir kaç tane kütüphane kullanılmaktadır bu kütüphaneler yazının altına iliştirilmiştir

Kod:
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);
  
#include "Sprite.h"
#include "Chym.h"
#include "Bar.h"
  
Chym player;
Bar bar; Bar bar2;
int gameScore = 0;
  
int KNOCK_PIN = 2;
int LED_PIN = 8;
  
boolean clicked = false;
  
**** loop(){}
  
**** resetGame() {
  player.respawn();
  bar.setPos(0, 20);
  bar2.setPos(50, 30);
  gameScore = 0;
}
  
**** setup() {
  Serial.begin(9600);
  
  display.begin();
  display.setContrast(50);
  display.clearDisplay();
  display.display();
  
  digitalWrite(LED_PIN, HIGH);
  
  pinMode(KNOCK_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
    
  resetGame();
    
  while(1) {
    getInput();
    player.update();
    bar.update(); bar2.update();
    drawLCD();
  }
}
  
**** getInput() {
  int knock = digitalRead(KNOCK_PIN);
  if (knock == 0) { // push down
    clicked = true;
  }
  else {
    clicked = false;
  }
}
  
**** drawLCD() {
  display.clearDisplay();
  
  if (!player.isDead()) {
    int ht1 = bar.hitTest(player.getX(), player.getY());
    int ht2 = bar2.hitTest(player.getX(), player.getY());
    int die = ht1 + ht2;
    if (die == 1) {
        // game over
        player.die();
    }
  
    if (clicked) {
      player.flyUp();
    }
    else {
      player.cancelJump();
    }
    player.render();   
      
    bar.render(); bar2.render();
  }
  else {
    display.setCursor(0, 0);
    display.setTextSize(2);
    display.println("OYUN   BITTI!");
    display.setTextSize(1);
    display.println("arduinom.org");
    if (clicked) {
      resetGame();
    }
  }
  
  display.display();
}
EK-1
EK-2

İKİ EKİDE İNDİRMELİSİNİZ ARKADAŞLAR.





ALINTIDIR..
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.