Мазмуну:
Video: Space Race Оюнунун версиясы 2: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Эй баарына. Бул оюндун версиясынан мурун мен оюндун биринчи версиясын жарыяладым. Бүгүн мен сизге 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 => Ылдамдык
Сунушталууда:
E-dohicky Russ's Laser Power Meter Dohicky электрондук версиясы: 28 кадам (Сүрөттөр менен)
E-dohicky Russ's Laser Power Meter Dohicky электрондук версиясы: Laser power tool.e-dohicky-Russ SADLERден келген dohickyдин электрондук версиясы. Russ абдан жакшы SarbarMultimedia youtube каналын жандандырат https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER оңой жана арзан аксессуарды
Видео оюнунун үйрөткүч дизайны: 6 кадам
Videogame үйрөткүч дизайны: Мен хоббистик оюндарды иштеп чыгуучумун, менин негизги кызыкчылыктарым оюн дизайнында жана программалоодо. Практика кылуу жана жөндөмүмдү өркүндөтүү үчүн, мен досторум жана бир туугандарым менен бөлүшө турган жөнөкөй оюндарды жасайм. Буга чейин мен эрежелерди түшүндүрмө берчүмүн
Аз наркы бар MR Оюнунун демосу: 9 кадам
Төмөн наркы MR Оюнунун демосу: http://www.bilibili.com/video/av7937721/ (кытай материгиндеги видео url) Кароо үстүнөн: Белги сүрөтүн эки огунун кармагычына орнотуңуз , Колдонуучу аны картон менен караңыз белгилөө, алар оюн дүйнөсүндө бири -бирин атып салышат. бурчтук коюмду аныктоо үчүн ARти колдонуңуз
Arduino Space Race оюнунун версиясы _1: 5 кадам
Arduino Space Race Game Version _1: Эй достор. Бүгүн мен сизге LCD5110 экраны жана джойстик аркылуу космостук жарыш оюнун кантип жасоону көрсөтөм
Укмуш видео оюнунун дизайны: 10 кадам (сүрөттөр менен)
Awesome Videogame Audio долбоорлоо: Мен акыркы бир нече жылдардан бери видео оюндарынын дизайнери болдум - Game Boy Advance үчүн homebrew нерселеринен тартып, Seaman Dreamcast үчүн кызыктай кызыктай нерселерге чейин, ар кандай оюндарда иштедим. Симс сыяктуу чоң бюджеттик блокбастерлерге