İçindekiler:

Uzay Yarışı Oyunu Versiyon 2: 5 Adım
Uzay Yarışı Oyunu Versiyon 2: 5 Adım

Video: Uzay Yarışı Oyunu Versiyon 2: 5 Adım

Video: Uzay Yarışı Oyunu Versiyon 2: 5 Adım
Video: DÜNYA YOK ETME OYUNU 😂 Solar Smash 2 2024, Temmuz
Anonim
Image
Image

Selam millet. Bu oyun versiyonundan önce oyunun ilk versiyonunu yayınladım. Bugün size Space Race Game 2. versiyonunu göstereceğim. Adımlara bakalım…

Adım 1: PARÇALAR

Ş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, cin, dc,, rst, ce)

boolean kontrol=true;

boolean dusmanoldu=true;

harici uint8_t SmallFont; // yazı tiplerini tanımla

extern uint8_t MediumNumbers; harici uint8_t ara; //şeklimizi tanımla extern uint8_t dusmanAraci; //düşman şeklini tanımla const int xpin=A0; //joystick x pin char pozisyonu=3; //konumu tanımla, şekil başlangıç konumumuz 3 int BL=3; int skor=0; int hiz=0; int dusmankonum1; //düşman1 x konumu tanımla int dusmankonum2; //düşman2'yi tanımla x konum int dusmankonum3; //düşman3 x konumu tanımla int dusmankonum4; //düşman4 x konumu tanımla int dusmankonum5; //düşmanı tanımla5 x konumu int dusmaninYdekonumu;

void oyunEkrani(){ //oyun ekranını ayarla

lcd.clrScr(); lcd.drawRect(0, 0, 47, 47); // lcd.setFont(SmallFont) dikdörtgenini çiziyoruz; //yazı tipini ayarla lcd.print("skor", 57, 1); //baskı puanı lcd.print("hiz", 60, 24); //baskı hızı lcd.setFont(MediumNumbers); //yazı tipini ayarla lcd.printNumI(skor, 55, 8); //puan al lcd.printNumI(hiz, 63, 32); //hızı al lcd.update(); }

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

if(yer==1){ lcd.drawBitmap(2, asama, dusmanAraci, 7, 7);lcd.update();}//if konum=1 düşman çizin bu konumu şekillendirin if(yer==2){ lcd.drawBitmap(10, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==3){ lcd.drawBitmap(18, asama, dusmanAraci, 7, 7);lcd.update(); } if(yer==4){ lcd.drawBitmap(26, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==5){ lcd.drawBitmap(34, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==6){ lcd.drawBitmap(42, asama, dusmanAraci, 7, 7);lcd.update();} }

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

while(1){ gecikme(100); //1 milisaniye bekle lcd.clrScr(); lcd.setFont(SmallFont); lcd.print("OYUN BİTTİ", MERKEZ, 8); // oyunu lcd.print("skorunuz=", 3, 30); // puanınızı yazdırın lcd.setFont(MediumNumbers); lcd.printNumI(skor, 60, 25); //son puanı al lcd.update(); } }

geçersiz kurulum() {

pinMode(BL, ÇIKIŞ); // arka ışığı ayarla Çıkış pinMode(xpin, INPUT); //x pinini giriş lcd olarak ayarla. 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, 350); oyunEkrani();

//keyif durumu… //joyistik konumu ayarla…

int durumx=analogRead(xpin); if(durumx <300 && durum!=1 && kontrol==true){ //if location!=1, x state600 && durum!=6 && kontrol==true){ //if location!=3, x durum> 600 ve kontrol doğrudur pozisyon++; //konumu arttır yani şekli sağa kaydır kontrol=false; } else if(durumx >300 && durumx <600){ kontrol=true; } //pozisyon durumu… //konum durumu… if(pozisyon==1){ //if konum=1; lcd.drawBitmap(2, 41, arac, 7, 7);lcd.update();}//gemimizi çiz if(pozisyon==2){ lcd.drawBitmap(10, 41, arac, 7, 7); lcd.update();} if(pozisyon==3){ lcd.drawBitmap(18, 41, arac, 7, 7);lcd.update();} if(pozisyon==4){ lcd.drawBitmap(26, 41, arac, 7, 7);lcd.update();} if(pozisyon==5){ lcd.drawBitmap(34, 41, arac, 7, 7);lcd.update();} if(pozisyon) ==6){ lcd.drawBitmap(42, 41, arac, 7, 7);lcd.update();}

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

dusmankonum1=pozisyon; //ilk düşman şeklini çiz dusmankonum2=rastgele(0, 6);//bir yere başka bir düşman şekli çiz dusmankonum3=rastgele(0, 6); dusmankonum4=rastgele(0, 6); dusmankonum5=rastgele(0, 6); dusmaninYdekonumu=0; //düşmanı tepeden getir dusmanoldu=false;} //düşman ölmesin diye yeniden yaratıldı

dusmanAracidurum(dusmankonum1, dusmaninYdekonumu);dusmaninYdekonumu++; //ilk düşman şeklini çiz ve yukarıdan aşağıya al

dusmanAracidurum(dusmankonum2, dusmaninYdekonumu);dusmaninYdekonumu++; // ikinci düşman şeklini çiz ve yukarıdan aşağıya al dusmanAracidurum(dusmankonum3, dusmaninYdekonumu);dusmaninYdekonumu++; dusmanAracidurum(dusmankonum4, dusmaninYdekonumu);dusmaninYdekonumu++; if(dusmaninYdekonumu>35 && ((dusmankonum1 == pozisyon)||(dusmankonum2 == durum)||(dusmankonum3 == pozisyon)||(dusmankonum4 == pozisyon)){ //şeklimiz düşman şekillerine dokunursa oyunbitti(); //oyun bitti }

if(dusmaninYdekonumu >42){//şeklimiz düşmanlardan kaçarsa

dusmanoldu = doğru; //düşman şekillerini öldür skor++; // puanı birer birer artır }

//skora gore hizi artiriyoruz //puana göre hızı arttır

if (skor>=0 && skor=10 && skor=20 && skor=30 && skor=40 && skor=50){ hiz=6; gecikme(5); }

}

4. Adım: KOD BITMAP

Ayrıca şekiller için bitmap grafiği eklemelisiniz. Bir.c dosyası olmalıdır.

#include // progmem işlevi için dahil et

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

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

const unsigned char dusmanAraci PROGMEM = { //düşman gemisi bitmap

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

Adım 5: Görüntülediğiniz için teşekkürler

Bazı kelimelerin anlamı:

Oyun => Oyun

Arac = > Şekil

Dusman => Düşman

kontrol = >kontrol

Konum, Yer => Konum

Oyun Bitti => Oyun Bitti

Skor => Skor

Hız => Hız

Önerilen: