สารบัญ:

เกม Arduino Space Race เวอร์ชัน _1: 5 ขั้นตอน
เกม Arduino Space Race เวอร์ชัน _1: 5 ขั้นตอน

วีดีโอ: เกม Arduino Space Race เวอร์ชัน _1: 5 ขั้นตอน

วีดีโอ: เกม Arduino Space Race เวอร์ชัน _1: 5 ขั้นตอน
วีดีโอ: DIY cheap immersive Wind Simulator for Sim Rig using Arduino. 2024, พฤศจิกายน
Anonim
Image
Image

เฮ้เพื่อน วันนี้ฉันจะแสดงให้คุณเห็นว่าคุณสร้างเกม Space Race ด้วยหน้าจอ LCD5110 และจอยสติ๊กได้อย่างไร มาดูขั้นตอน…

ขั้นตอนที่ 1: ต้องการ

สคีมา
สคีมา

นี่คือรายการชิ้นส่วนที่ฉันใช้ทำโปรเจ็กต์นี้:

  • Arduino UNO
  • โมดูลจอยสติ๊ก
  • สายจัมเปอร์ (ชายกับชาย และชายกับหญิง)
  • เขียงหั่นขนม

ขั้นตอนที่ 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 pin 11

ขั้นตอนที่ 3: CODE

รหัส
รหัส

รหัสมีคำอธิบายของฟังก์ชันรหัส คุณจะเข้าใจมันได้ง่าย หากคุณมีปัญหาคุณสามารถติดต่อฉันได้

#รวม

LCD5110 จอแอลซีดี (8, 9, 10, 11, 12); //(clk, din, dc, อันดับแรก, ce)

int BL=3;

extern uint8_t SmallFont; //อธิบายฟอนต์ extern uint8_t MediumNumbers; extern uint8_t arac; //อธิบายรูปร่างของเรา extern uint8_t dusman_araci; // อธิบายรูปร่างของศัตรู const int xpin=A0; //จอยสติ๊ก x พินถ่าน pozisyon=2; //อธิบายตำแหน่ง รูปร่างของเราเริ่มต้นตำแหน่ง 2 ตัวควบคุมบูลีน = true; boolean dusmanOldu = จริง; int skor=0; int hiz=0; int dusmanKonumu1; //อธิบายศัตรู1 x ตำแหน่ง int dusmanKonumu2; //อธิบายศัตรู2 x ตำแหน่ง int dusmaninYdeKonumu; //อธิบายตำแหน่งของศัตรู

void dusmanAraci(int yer, int asama){ //กำหนดตำแหน่งสำหรับรูปร่างของศัตรู

if (yer==1){ //if location=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //วาดรูปศัตรู } if (yer==2){ lcd.drawBitmap(18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}

เป็นโมฆะ oyunBitti () { // หากเราล้มเหลวเกมจะจบลง

ในขณะที่ (1) { ล่าช้า (100); //รอ 1 มิลลิวินาที lcd.clrScr(); //ล้างหน้าจอ lcd.setFont(SmallFont); //ตั้งค่าแบบอักษร lcd.print("GAME OVER", CENTER, 20); //พิมพ์ lcd.update(); //อัพเดทหน้าจอ }}

การตั้งค่าเป็นโมฆะ () { pinMode (BL, OUTPUT); //ตั้งค่าแบ็คไลท์เอาต์พุต LCD. InitLCD(); // เริ่มต้นหน้าจอแอลซีดี lcd.setContrast(55); //ตั้งค่าคอนทราสต์(ประมาณ 0 ถึง 127) Serial.begin(9600); // เริ่ม comunation แบบอนุกรม }

วงเป็นโมฆะ () {

analogWrite (BL, 200);

// ตั้งค่าหน้าจอเกม lcd.drawRect(0, 0, 47, 47); //เราวาดสี่เหลี่ยมผืนผ้า lcd.setFont(SmallFont); //ตั้งค่าแบบอักษร lcd.print("skor", 53, 0); //printf คะแนน lcd.setFont(MediumNumbers); //ตั้งค่าแบบอักษร lcd.printNumI(skor, 59, 7); //รับคะแนน lcd.setFont(SmallFont); lcd.print("hiz", 56, 25); // ความเร็วในการพิมพ์ lcd.setFont (MediumNumbers); lcd.printNumI(hiz, 59, 32); // รับความเร็ว lcd.update(); //อัปเดต

//กำหนดตำแหน่งจอยสติก int x=analogRead(xpin); if(x<300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=3 && kontrol==true){ //if location!=3, x state> 600 และการควบคุมเป็นจริง pozisyon++; //เพิ่มตำแหน่ง หมายถึง ย้ายรูปร่างไปทางขวา kontrol=false; } อื่น if(x>300 && x<600){ kontrol=true; } Serial.println(x); //สำหรับการเรียนรู้สถานะ x //กำหนดตำแหน่งรูปร่างของเรา lcd.clrScr(); //ล้างหน้าจอถ้า (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //วาดยานของเรา if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}

ถ้า (pozisyon==3){

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

if (dusmanOldu){ // ถ้ารูปร่างของศัตรูตาย ให้ตรวจสอบว่าพวกมันตายหรือไม่

dusmanKonumu1 = pozisyon; //วาดรูปศัตรูตัวแรก dusmanKonumu2 = สุ่ม(0, 4); //วาดรูปศัตรูอีกตัวหนึ่ง dusmaninYdeKonumu = 0; // นำศัตรูจากด้านบน dusmanOldu = false;} // ศัตรูถูกสร้างขึ้นใหม่ดังนั้นพวกเขาจึงไม่ตาย dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); ดัสมานินYdeKonumu++; //วาดรูปศัตรูตัวแรกแล้วดึงจากบนลงล่าง dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); ดัสมานินYdeKonumu++; // วาดรูปร่างศัตรูที่สองแล้วดึงจากบนลงล่างถ้า (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))){ // ถ้ารูปร่างของเราสัมผัสรูปร่างของศัตรู oyunBitti();} // เกมจะจบลงถ้า (dusmaninYdeKonumu>40){ // ถ้ารูปร่างของเราหนีจากศัตรู dusmanOldu = true; //ฆ่าศัตรูรูปร่าง skor++;} //เพิ่มคะแนนทีละคน //เพิ่มความเร็วตามคะแนนถ้า (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; ล่าช้า(40); } }

ขั้นตอนที่ 4: รหัส BITMAP

นอกจากนี้ คุณต้องรวมกราฟิกบิตแมปสำหรับรูปร่าง โดยจะต้องเป็นไฟล์.c และชื่อเดียวกันกับชื่อรหัส นอกจากนี้ยังต้องอยู่ในไฟล์เดียวกัน

//------------------------------------------------ ------------------------------// ไฟล์ที่สร้างโดย LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/ //--------------------------------------------- --------------------------------- #include //include สำหรับฟังก์ชั่นโปรแกรม

const unsigned char arac PROGMEM = { // bitmap รูปร่างของเรา

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

const unsigned char dusman_araci PROGMEM = { // bitmap ของเรือศัตรู

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

ขั้นตอนที่ 5: ขอบคุณสำหรับการรับชม

ขอบคุณสำหรับการรับชม
ขอบคุณสำหรับการรับชม

ก่อนที่ ı จะเริ่มแชร์โปรเจ็กต์ของฉัน ı เขียนโค้ดเป็นภาษาตุรกี ดังนั้นฉันจึงไม่มีโอกาสได้แปลทุกคำเป็นภาษาอังกฤษ นี่คือคำแปลที่ฉันใช้โปรเจ็กต์นี้

โอยุน = เกม

อารัค = รูปร่าง

Dusman = ศัตรู

ควบคุม = ควบคุม

Konum, Yer = ที่ตั้ง

Oyun Bitti = เกมโอเวอร์

Skor = คะแนน

ฮิซ = ความเร็ว

แนะนำ: