İçindekiler:

Arduino Uzay Yarışı Oyunu Sürüm _1: 5 Adım
Arduino Uzay Yarışı Oyunu Sürüm _1: 5 Adım

Video: Arduino Uzay Yarışı Oyunu Sürüm _1: 5 Adım

Video: Arduino Uzay Yarışı Oyunu Sürüm _1: 5 Adım
Video: GTA 5 KAPAGINDAKI KADINI BULDUM OYUNDA - GTA 5 #shorts #gta5 2024, Kasım
Anonim
Image
Image

Hey arkadaşlar. Bugün sizlere LCD5110 ekran ve joystik ile Uzay Yarışı Oyunu nasıl yapabileceğinizi göstereceğim. Adımlara bakalım…

Adım 1: İHTİYAÇLAR

ŞEMA
ŞEMA

Bu projeyi yapmak için kullandığım parçaların bir listesi:

  • Arduino UNO'su
  • Joystick Modülü
  • Jumper Telleri (erkekten erkeğe ve erkekten dişiye)
  • ekmek tahtası

2. Adım: ŞEMA

VCC -> Arduino 5V

BL -> Arduino pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino pin 10

CE veya CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

3. Adım: KOD

KOD
KOD

Kodun, kod işlevlerinin açıklamaları vardır. Bunu kolayca anlayacaksın. Bir sorununuz olursa benimle iletişime geçebilirsiniz.

#Dahil etmek

LCD5110 lcd(8, 9, 10, 11, 12); //(clk, din, dc, rst, ce)

int BL=3;

harici uint8_t SmallFont; //yazı tiplerini tanımla extern uint8_t MediumNumbers; harici uint8_t ara; //şeklimizi tanımla extern uint8_t dusman_araci; //düşman şeklini tanımla const int xpin=A0; //joystick x pin char pozisyonu=2; //konumu tanımlayın, şekil başlangıç konumumuz 2 boolean kontrol = true; boolean dusmanOldu = true; int skor=0; int hiz=0; int dusmanKonumu1; //düşman1 x konumu tanımla int dusmanKonumu2; //düşman2 x konumu tanımla int dusmaninYdeKonumu; //düşmanların y konumunu tanımla

void dusmanAraci(int yer, int asama){ //düşman şekilleri için konumları ayarla

if (yer==1){ //if konum=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //düşman şeklini çiz } if (yer==2){ lcd.drawBitmap(18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}

void oyunBitti() { //başarısız olursak oyun biter

while(1) { gecikme(100); //1 milisaniye bekle lcd.clrScr(); //ekranı temizle lcd.setFont(SmallFont); //yazı tipini ayarla lcd.print("OYUN BİTTİ", MERKEZ, 20); // lcd.güncellemeyi yazdır(); //ekranı güncelle }}

void setup() { pinMode(BL, OUTPUT); //arka ışığı ayarla Çıkış lcd. InitLCD(); //lcd ekranını başlat lcd.setContrast(55); // karşıtlığı ayarla (0 ila 127 arasında) Serial.begin(9600); // seri komünasyonu başlat }

boşluk döngüsü () {

analogWrite(BL, 200);

//oyun ekranını ayarla lcd.drawRect(0, 0, 47, 47); // lcd.setFont(SmallFont) dikdörtgenini çiziyoruz; //yazı tipini ayarla lcd.print("skor", 53, 0); //printf puanı lcd.setFont(Orta Sayılar); //yazı tipini ayarla lcd.printNumI(skor, 59, 7); //puan al lcd.setFont(SmallFont); lcd.print("hız", 56, 25); //baskı hızı lcd.setFont(MediumNumbers); lcd.printNumI(hiz, 59, 32); //hızı al lcd.update(); //Güncelleme

// joyistik konumu ayarla int x=analogRead(xpin); if(x<300 && durum!=1 && kontrol==true){ //if konum!=1, x state600 && durum!=3 && kontrol==true){ //if konum!=3, x durum> 600 ve kontrol doğrudur pozisyon++; //konumu arttır yani şekli sağa kaydır kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Seri.println(x); //x durumunu öğrenmek için //şekil konumumuzu ayarla lcd.clrScr(); //ekranı temizle if (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //gemimizi çiz if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}

if (pozisyon==3){

lcd.drawBitmap(34, 37, arac, 12, 8);}

if (dusmanOldu){ //düşman şekli öldüyse, ölü olup olmadıklarını kontrol edin

dusmanKonumu1 = durum; //ilk düşman şeklini çiz dusmanKonumu2 = random(0, 4); // bir yere başka bir düşman şekli çiz dusmaninYdeKonumu = 0; //düşmanı tepeden getir dusmanOldu = false;} //düşman ölü olmasın diye yeniden yaratılır dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; //ilk düşman şeklini çiz ve yukarıdan aşağıya al dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; //ikinci düşman şeklini çizin ve yukarıdan aşağıya alın if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == durum) || (dusmanKonumu2 == pozisyon)){ //şeklimiz düşman şekillerine dokunursa oyunBitti();} //oyun biter if (dusmaninYdeKonumu>40){ //şeklimiz düşmanlardan kaçarsa dusmanOldu = true; //düşman şekillerini öldür skor++;} //skoru tek tek artır //skora göre hızı arttır if (skor>=0 && skor10 && skor20 && skor30 & skor& skor<=40){ hiz = 3; gecikme(40); } }

4. Adım: KOD BITMAP

Ayrıca şekiller için bitmap grafiği eklemelisiniz. Bir.c dosyası olmalı ve kod adıyla aynı isimde olmalıdır. Ayrıca aynı dosyada olmalıdır.

//------------------------------------------------ ------------------------------// LCD Asistan tarafından oluşturulan dosya // https://en.radzio.dxp.pl /bitmap_dönüştürücü/ //------------------------------------------------ --------------------------------- #include //progmem işlevi için dahil et

const unsigned char arac PROGMEM = { //şekil bitmapimiz

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };

const unsigned char dusman_araci PROGMEM = { //düşman gemisi bit eşlemi

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };

Adım 5: İZLEDİĞİNİZ İÇİN TEŞEKKÜRLER

İZLEDİĞİNİZ İÇİN TEŞEKKÜRLER
İZLEDİĞİNİZ İÇİN TEŞEKKÜRLER

Projelerimi paylaşmaya başlamadan önce her kelimeyi ingilizceye çevirmemek için Türkçe kelimeler kodladım. İşte bu projeyi kullandığım kelimelerin çevirisi, Oyun = Oyun

Arak = Şekil

Dusman = Düşman

kontrol = kontrol

Konum, Yer = Konum

Oyun Bitti = Oyun Bitti

Skor = Puan

Hız = Hız

Önerilen: