สารบัญ:

เกม "Ninja Dollar" สำหรับ Arduino: 3 ขั้นตอน
เกม "Ninja Dollar" สำหรับ Arduino: 3 ขั้นตอน

วีดีโอ: เกม "Ninja Dollar" สำหรับ Arduino: 3 ขั้นตอน

วีดีโอ: เกม
วีดีโอ: Make your own 1D Pong Game 2024, กรกฎาคม
Anonim
ภาพ
ภาพ

วิดีโอเกมอีกเกมสำหรับ Arduino มันเป็นเกมที่ยอดเยี่ยมที่ล้ำหน้ากว่าที่ฉันเผยแพร่ล่าสุดทำไมมันถึงซับซ้อนกว่าเกมอื่น ๆ มันซับซ้อนกว่าเพราะสามารถกระโดดและยิงและมีแสงเสียงและวิธีการต่อจุดใหม่

เสบียง

  1. อาร์ดูโน
  2. เขียงหั่นขนม
  3. สายจัมเปอร์
  4. ไฟ LED สีแดง
  5. 2 ปุ่มกด
  6. ตัวต้านทาน 2 10k ohm
  7. ตัวต้านทาน 220R 2 ตัว
  8. ไฟ LED สีฟ้าสว่างมาก
  9. piezo ออด
  10. จอ LCD 16*2

ขั้นตอนที่ 1: การเดินสายทุกอย่างเข้าด้วยกัน

การเดินสายไฟทุกอย่างเข้าด้วยกัน
การเดินสายไฟทุกอย่างเข้าด้วยกัน

ตอนนี้คุณต้องต่อสายทุกอย่าง

ขั้นตอนที่ 2: วิธีการเล่น:

  1. เปิดอาร์ดิโน
  2. LCD ควรพิมพ์: "เกมเริ่มต้นใน" และนับถอยหลัง
  3. กดปุ่มใดปุ่มหนึ่งเพื่อกระโดดและอีกปุ่มหนึ่งเพื่อยิง
  4. แต่ละบล็อกที่คุณกระโดดคุณจะได้รับหนึ่งคะแนนและทุก ๆ * ที่คุณจับได้ให้ 5 คะแนน
  5. เมื่อคุณมีคะแนน 50 คะแนนขึ้นไป คุณจะชนะ

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

//este jogo e muito interessante e ao mesmo tempo irritante e frustante mas muito divertido.

#รวม

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int buttonPin1=1; const int buttonPin2=6; const int ออด=7; แต้มยาวที่ไม่ได้ลงนาม=0; // set buttonstates bool buttonState1=0; ปุ่มบูลState2=0; //สุ่มตัวเลขตำแหน่งของสิ่งกีดขวาง int randomNums[6]; //สุ่มจำนวนสิ่งกีดขวาง int randomNum=0; //สุ่มหมายเลขสำหรับตำแหน่งของ pts int randomNums1[3]; // ตัวเลขสุ่มสำหรับจำนวน pts int randomNum1=0; //เริ่มเวลาหน่วง ซึ่งลดลงทีละน้อย unsigned int myDelay=500; // ทำบูลีนนี้เพื่อตรวจสอบว่ามีการกดปุ่ม button2 หรือไม่ เพราะหากกดหนึ่งครั้งในลูปแรกสำหรับลูป ฉันไม่ต้องการให้มีสิ่งกีดขวางถูกเขียนจนกว่าจะสิ้นสุด bool temp=0; //ตัวแปรนี้เก็บตำแหน่งของนักรบในขณะที่เขายิง ได้ 16 ตำแหน่ง เพราะนักรบมี 16 ตำแหน่ง อุณหภูมิภายใน[16]; // ฉันใช้บูลีนนี้เพื่อตรวจสอบว่าจุดนั้นถูกจับ bool temp1=0;

// ใช้ตัวแปรนี้เพื่อเก็บตำแหน่งของจุดที่ถูกจับ ต้องเป็นและอาร์เรย์เพื่อเก็บตำแหน่งของจุดทั้งหมดในการวนซ้ำครั้งแรกสำหรับลูป หากเก็บไว้เพียงตำแหน่งเดียว จุด "เก่า" ก็จะกลับมาในการทำซ้ำใหม่

int tempI1[3]; // ใช้ตัวแปรนี้เพื่อให้มีจำนวนช็อตของนักรบ ซึ่งก็คือความยาวของอาร์เรย์ tempI int button2IsPressed=0; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

การตั้งค่าเป็นโมฆะ () {

// ตั้งค่าจำนวนคอลัมน์และแถวของ LCD: lcd.begin(16, 2); // ตั้งค่าโหมดพินปุ่ม pinMode (buttonPin1, INPUT); pinMode(ปุ่มPin2, INPUT); pinMode (ออด, เอาต์พุต); lcd.setCursor(4, 0); lcd.print("เกม"); lcd.setCursor(2, 1); lcd.print("เริ่มต้นใน "); lcd.print("5"); ล่าช้า (1000); lcd.setCursor(12, 1); lcd.print("4"); ล่าช้า (1000); lcd.setCursor(12, 1); lcd.print("3"); ล่าช้า (1000); lcd.setCursor(12, 1); lcd.print("2"); ล่าช้า (1000); lcd.setCursor(12, 1); lcd.print("1"); ล่าช้า (1000); lcd.clear();

}

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

ที่นี่:

randomNum=สุ่ม(5);

สำหรับ(int i=0; i9 && pts19 && pts29 && pts=50){ pts=0; myDelay=500; lcd.clear(); lcd.setCursor(5, 0); lcd.print("ชัยชนะ"); น้ำเสียง(ออด, 262); ล่าช้า(200); เสียง(ออด, 330); ล่าช้า(200); น้ำเสียง(ออด, 392); ล่าช้า (100); เสียง(ออด, 330); ล่าช้า (100); น้ำเสียง(ออด, 392); ล่าช้า (100); เสียง(ออด, 523); ล่าช้า(200); noTone(ออด); ล่าช้า (3000); lcd.clear(); ไปที่นี่; } อื่น ๆ lcd.setCursor(15, 0); lcd.print(จุด); buttonState1=ดิจิตอลอ่าน(buttonPin1); buttonState2=ดิจิตอลอ่าน(buttonPin2); //กำหนดสิ่งกีดขวางหากนักรบไม่ยิงหรือเขายิง แต่เขาก็กระโดดด้วย if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j], 1); lcd.print("#"); }

}

}

//ตั้งค่า pts

if(!temp1){ สำหรับ(int j=0; j

}

แนะนำ: