Sisällysluettelo:
Video: Avaruuskilpailupelin versio 2: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Hei kaikki. Ennen tätä peliversiota julkaisin pelin ensimmäisen version. Tänään näytän sinulle Space Race Game -version 2. Katsotaanpa vaiheita…
Vaihe 1: OSAT
Tässä on luettelo osista, joita käytin tämän projektin tekemiseen:
- Arduino UNO
- Joystick -moduuli
- Hyppyjohdot (uros -uros ja uros -naaras)
- Leipälauta
Vaihe 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino -nasta 3
GND -> Arduino GND
CLK (SCLK) -> Arduino -nasta 8
DIN (MOSI) -> Arduino -nasta 9
DC -> Arduino -nasta 10
CE tai CS -> Arduino -nasta 12
RST (NOLLAUS) -> Arduino -nasta 11
Vaihe 3: KOODI
Koodissa on selitykset kooditoiminnoista. Ymmärrät sen helposti. Jos sinulla on ongelma, voit ottaa minuun yhteyttä.
#sisältää
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = tosi;
boolean dusmanoldu = totta;
extern uint8_t SmallFont ; // kuvaile fontteja
extern uint8_t MediumNumbers ; extern uint8_t arac ; // kuvaile muotoamme extern uint8_t dusmanAraci ; // kuvata vihollisen muoto const int xpin = A0; // ohjaussauva x nasta char pozisyon = 3; // kuvaile sijaintia, muodon aloituspaikkaa 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // kuvaile vihollinen1 x sijainti int dusmankonum2; // kuvaile vihollista2 x sijainti int dusmankonum3; // kuvaile vihollista3 x sijainti int dusmankonum4; // kuvata vihollinen4 x sijainti int dusmankonum5; // kuvaile vihollista5 x sijainti int dusmaninYdekonumu;
void oyunEkrani () {// aseta pelinäyttö
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // piirrämme suorakulmion lcd.setFont (SmallFont); // aseta fontti lcd.print ("skor", 57, 1); // tulostuspisteet lcd.print ("hiz", 60, 24); // tulostusnopeus lcd.setFont (MediumNumbers); // aseta fontti lcd.printNumI (skor, 55, 8); // hanki pisteet lcd.printNumI (hiz, 63, 32); // hanki nopeus lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// aseta vihollisen muotojen paikat
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // jos sijainti = 1 piirtää vihollisen tämän paikan, jos (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 () {// jos epäonnistumme, peli päättyy
while (1) {viive (100); // odota 1 milisekunti lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // tulosta peli lcd.printin kautta ("skorunuz =", 3, 30); // tulosta pisteet lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // saat viimeisen pistemäärän lcd.update (); }}
void setup () {
pinMode (BL, OUTPUT); // taustavalo Lähtö pinMode (xpin, INPUT); // aseta x -nasta tuloksi lcd. InitLCD (); // käynnistää lcd -näytön lcd.setContrast (55); // aseta kontrasti (0–127) Serial.begin (9600); // aloita sarjayhteys}
void loop () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu… // aseta joyistick -sijainti…
int durumx = analoginenLue (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// jos sijainti! = 1, x tila600 && pozisyon! = 6 && kontrol == true) {// jos sijainti! = 3, x tila> 600 ja ohjaus on totta pozisyon ++; // lisätä sijaintia se tarkoittaa siirtää muotoa oikealle kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // sijainnin tila… if (pozisyon == 1) {// jos sijainti = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // piirrä aluksemme, jos (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();}} jos (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) {// jos vihollisen muoto on kuollut, tarkista, ovatko ne kuolleet
dusmankonum1 = pozisyon; // piirtää ensimmäisen vihollisen muoto dusmankonum2 = satunnainen (0, 6); // piirtää toinen vihollisen muoto jonnekin dusmankonum3 = satunnainen (0, 6); dusmankonum4 = satunnainen (0, 6); dusmankonum5 = satunnainen (0, 6); dusmaninYdekonumu = 0; // tuo vihollinen ylhäältä dusmanoldu = false;} // vihollinen luodaan uudelleen, jotta he eivät ole kuolleita
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // piirtää ensimmäinen vihollisen muoto ja saada se ylhäältä alas
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // piirtää toinen vihollisen muoto ja saada se ylhäältä alas dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// jos muoto koskettaa vihollisen muotoja oyunbitti ((); //Peli on loppunut }
if (dusmaninYdekonumu> 42) {// jos muodollamme paeta vihollisia
dusmanoldu = totta; // tappaa vihollisen muodot skor ++; // lisää pisteitä yksi kerrallaan}
// skora gore hizi artiriyoruz // lisää nopeutta pisteiden mukaan
jos (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; viive (5); }
}
Vaihe 4: KOODA BITMAP
Lisäksi sinun on sisällytettävä bittikarttakuvat muodoille, ja sen on oltava.c -tiedosto.
#include // include ohjelmointitoiminnolle
const unsigned char arac PROGMEM = {// muoto bittikartta
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// vihollisen aluksen bittikartta
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Vaihe 5: Kiitos katselusta
Joidenkin sanojen merkitys:
Oyun => Peli
Arac => Muoto
Dusman => Vihollinen
kontrol => ohjaus
Konum, Yer => Sijainti
Oyun Bitti => Game Over
Skor => Pisteet
Hiz => Nopeus
Suositeltava:
E-dohicky Russin laservirtamittarin elektroninen versio Dohicky: 28 vaihetta (kuvilla)
E-dohicky Russin laser-tehomittarin elektroninen versio Dohicky: Laser-sähkötyökalu. E-dohicky on Russ SADLERin dohickyn sähköinen versio. Russ animoi erittäin hyvän SarbarMultimedia-YouTube-kanavan https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER esittelee helpon ja halvan lisälaitteen
ThreadBoard (ei-3D-tulostettu versio): E-Textile Rapid Prototyping Board: 4 vaihetta (kuvilla)
ThreadBoard (ei-3D-tulostettu versio): E-Textile Rapid Prototyping Board: ThreadBoard V2: n 3D-painetun version Instructable löytyy täältä. ThreadBoardin versio 1 löytyy täältä. matkustaminen, pandemiat ja muut esteet, sinulla ei ehkä ole pääsyä 3D -tulostimeen, mutta haluat
Yksinkertaisen robotin tekeminen kotoa löytyvistä asioista (hotwheel -versio): 5 vaihetta
Yksinkertaisen robotin tekeminen kotoa löytyvistä asioista (hotwheel-versio): Tämä opaskirja näyttää sinulle, miten voit tehdä itsestään toimivan hotwheelin, joka toimii kaksois-A-paristoilla. Sinun tarvitsee käyttää vain tavaroita, joita todennäköisesti löydät kotoasi. Huomaa, että tämä robotti ei todennäköisesti mene aivan suoraan
Arduino -volttimittari (0-100 V DC) - Versio 2 (parempi): 3 vaihetta
Arduino-volttimittari (0-100 V DC)-Versio 2 (parempi): Tässä ohjeessa olen rakentanut voltimittarin mittaamaan suurjännitteitä DC (0-100v) suhteellisen tarkasti ja tarkasti käyttämällä Arduino Nano ja ADS 1115 ADC .Tämä on toinen versio voltimittarista, jota käytin edellisellä ohjeellani täällä: https: // ww
7 Segmenttikello Versio 2: 4 vaihetta
7 Segmentti-kello Versio 2: Hei! Instructables-käyttäjän 12h-muodon saatavuutta koskevan pyynnön jälkeen tein merkittäviä muutoksia alkuperäiseen projektiin. Version 1 käytön aikana tunsin tarvetta tehdä erillinen versio, niin tein sen mahdolliseksi