Rehber Arduino İle Flappy Bird Yapımı

Mithat Guner

Lider
Yönetici
Admin
1 Ekim 2016
1,415
1,291
1,094
Çevrimdışı
#1
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.






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();

}

Eki İndirmek İçin Tıkla