Мазмуну:

Space Race Оюнунун версиясы 2: 5 кадам
Space Race Оюнунун версиясы 2: 5 кадам

Video: Space Race Оюнунун версиясы 2: 5 кадам

Video: Space Race Оюнунун версиясы 2: 5 кадам
Video: Hill Climb Racing (acapella) 2024, Ноябрь
Anonim
Image
Image

Эй баарына. Бул оюндун версиясынан мурун мен оюндун биринчи версиясын жарыяладым. Бүгүн мен сизге Space Race Game 2 версиясын көрсөтөм. Кадамдарды карап көрөлү …

1 -кадам: БӨЛҮКТӨР

СХЕМА
СХЕМА

Бул жерде мен бул долбоорду жасоо үчүн колдонулган бөлүктөрдүн тизмеси:

  • Arduino UNO
  • Джойстик модулу
  • Jumper Wires (эркектен эркекке жана эркектен ургаачысына)
  • Breadboard

2 -кадам: SCHEMA

VCC -> Arduino 5V

BL -> Arduino пин 3

GND -> Arduino GND

CLK (SCLK) -> Arduino пин 8

DIN (MOSI) -> Arduino пин 9

DC -> Arduino пин 10

CE же CS -> Arduino pin 12

RST (КАЙРА ЖӨНДӨӨ) -> Arduino пин 11

3 -кадам: КОД

КОД
КОД

Коддо код функцияларынын түшүндүрмөлөрү бар. Сиз аны оңой эле түшүнөсүз. Эгерде сизде көйгөй болсо, мага кайрылсаңыз болот.

#кошуу

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

логикалык контрол = чындык;

логикалык dusmanoldu = true;

extern uint8_t SmallFont ; // шрифттерди сүрөттөңүз

extern uint8_t MediumNumbers ; extern uint8_t arac ; // формабызды сүрөттө extern uint8_t dusmanAraci ; // душман формасын const int xpin = A0; // джойстик x pin char pozisyon = 3; // жайгашкан жерди сүрөттө, биздин формабыздын башталышы 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // душманды сүрөттө1 x location int dusmankonum2; // душманды сүрөттө2 x location int dusmankonum3; // душманды сүрөттө3 x location int dusmankonum4; // душманды сүрөттө4 x location int dusmankonum5; // душманды сүрөттө5 x location int dusmaninYdekonumu;

void oyunEkrani () {// оюн экраны коюлган

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // биз lcd.setFont (SmallFont) тик бурчтук тартабыз; // арипти орнотуу lcd.print ("skor", 57, 1); // басып чыгаруу lcd.print ("хиз", 60, 24); // басып чыгаруу ылдамдыгы lcd.setFont (MediumNumbers); // шрифтти lcd.printNumI коюңуз (skor, 55, 8); // lcd.printNumI упайын алуу (хиз, 63, 32); // ылдамдыкты алуу lcd.update (); }

void dusmanAracidurum (int yer, int asama) {// душмандын фигуралары үчүн жерлерди коюу

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 draw душман бул жерди эгерде (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, асама, dusmanAraci, 7, 7); lcd.update ();}}

void oyunbitti () {// эгер биз ийгиликке жетпей калсак, оюн бүттү

while (1) {delay (100); // 1 миллисекунд күтүңүз lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", БОРБОРУ, 8); // lcd.print үстүндөгү оюнду басып чыгаруу ("skorunuz =", 3, 30); // упайыңызды басып чыгарыңыз lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // акыркы баллды алуу lcd.update (); }}

жараксыз орнотуу () {

pinMode (BL, OUTPUT); // артка жарык коюу Output pinMode (xpin, INPUT); // x пинди lcd. InitLCD киргизүү катары коюңуз (); // lcd экранын баштоо lcd.setContrast (55); // контрастты коюу (0дон 127ге чейин) Serial.begin (9600); // сериялык байланышты баштоо}

void loop () {

analogWrite (BL, 350); oyunEkrani ();

// джойистик абал… // джойстиктин ордун коюу…

int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 жана контролдоо чыныгы pozisyon ++; // жайгашууну көбөйтүү, бул форманы оңго жылдырууну билдирет kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // абал абалы… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // биздин кемени тарткыла 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) {// душман формасы өлгөн болсо, анда алар өлгөнүн текшериңиз

dusmankonum1 = pozisyon; // душмандын биринчи формасын тарт dusmankonum2 = random (0, 6); dusmankonum4 = туш келди (0, 6); dusmankonum5 = туш келди (0, 6); dusmaninYdekonumu = 0; // душманды жогору жактан алып келүү dusmanoldu = false;} // душман кайра жаратылган, ошондуктан алар өлгөн эмес

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // душмандын биринчи формасын чийип, аны жогорудан ылдыйга чейин алыңыз

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // душмандын экинчи формасын тартып, аны өйдөдөн төмөн карай алыңыз dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))))); // оюн бүттү}

if (dusmaninYdekonumu> 42) {// эгер биздин формабыз душмандардан качса

dusmanoldu = true; // душман фигураларын өлтүрүү skor ++; // упайды бирден көбөйтүү}

// skora gore hizi artirırıq // упайга жараша ылдамдыкты жогорулатуу

эгер (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; кечигүү (5); }

}

4 -кадам: BITMAP КОДУ

Мындан тышкары, сиз фигуралар үчүн графикалык графикти киргизишиңиз керек.

#include // include программасынын функциясы үчүн

const unsigned char arac PROGMEM = {// биздин форма битмапы

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

const unsigned char dusmanAraci PROGMEM = {// душман кемесинин битмапы

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

5 -кадам: Көрүү үчүн рахмат

Кээ бир сөздөрдүн мааниси:

Oyun => Оюн

Arac => Формасы

Dusman => Душман

kontrol => control

Konum, Yer => Location

Oyun Bitti => Оюн бүттү

Skor => Упай

Hiz => Ылдамдык

Сунушталууда: