สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่าเส้นขอบของเกม
- ขั้นตอนที่ 2: การเพิ่มบอร์ดและการสร้างคอนโทรลเลอร์
- ขั้นตอนที่ 3: เชื่อมต่อ Arduino กับพอร์ตอนุกรม
- ขั้นตอนที่ 4: การเชื่อมต่อ Unity ด้วย Serial Port
- ขั้นตอนที่ 5: การเพิ่ม Ball
- ขั้นตอนที่ 6: จบเกม
วีดีโอ: วิธีสร้างเกมผู้เล่นหลายคนด้วย Arduino Controllers: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
คุณเคยสงสัยหรือไม่ว่าผู้พัฒนาเกมสร้างเกมที่น่าทึ่งที่ผู้คนทั่วโลกสนุกกับการเล่นได้อย่างไร? วันนี้ฉันจะมาบอกใบ้เล็กๆ น้อยๆ เกี่ยวกับเรื่องนี้โดยการสร้างเกมที่มีผู้เล่นหลายคนขนาดเล็กซึ่งจะถูกควบคุมโดยตัวควบคุม Arduino ที่คุณสร้างขึ้นด้วย งั้นเรามาเริ่มกันเลย
เสบียง
คุณจะต้องการ:
- โน้ตบุค
- Unity Engine
- C# IDE ที่ทำงานร่วมกับ Unity เช่น visual studio หรือ Atom (ฉันจะใช้ Visual Studio Code)
- 2X Arduino นาโน
- 2X กระดานขนมปังใหญ่
- 2X กระดานขนมปังขนาดเล็ก
- สวิตช์แทค 4X (ปุ่มกด)
- ตัวต้านทาน 4X200Ω
- สายจัมเปอร์ชายกับชาย 12X
- Arduino IDE
มันจะมีประโยชน์ถ้าคุณมีความเข้าใจพื้นฐานเกี่ยวกับการใช้ Unity แต่มันจะไม่ส่งผลต่อความคืบหน้าของคุณ เนื่องจากคุณจะคุ้นเคยกับมันในขณะที่ทำเกมต่อไป
ลิงค์สำหรับดาวน์โหลด Unity Engine:
store.unity.com/download-nuo
ลิงค์สำหรับดาวน์โหลด Visual Studio Code IDE:
code.visualstudio.com/download
ลิงค์สำหรับดาวน์โหลด Arduino IDE:
www.arduino.cc/en/Main/Software
ขั้นตอนที่ 1: ตั้งค่าเส้นขอบของเกม
ก่อนอื่นคุณต้องดาวน์โหลดความสามัคคี
เมื่อเสร็จแล้วคุณสามารถเริ่มตั้งค่ามุมมองของเกมได้
เปิดโปรเจ็กต์ Unity ใหม่ ตั้งชื่อและเลือกเกม 2D
เมื่อเปิดโครงการให้สังเกตว่ามี 3 ส่วนหลักเรียกว่า
- ลำดับชั้น (นี่คือที่ที่วัตถุและรายละเอียดเกมทั้งหมดของคุณจะถูกเพิ่มเข้าไป)
- ฉาก (ที่คุณตั้งค่ามุมมองของเกม)
- เกม (ซึ่งคุณสามารถทดสอบว่าเกมจริงจะเป็นอย่างไร)
สังเกตว่าภายใต้ลำดับชั้นมีฉากของคุณและภายใต้ฉากนั้นมี "กล้องหลัก" เมื่อคุณเลือกกล้องจากลำดับชั้น กล้องจะถูกเลือกในฉาก
(สิ่งใดก็ตามที่อยู่ในขอบเขตของกล้องนี้จะแสดงในเกมจริง)
ดูภาพ 1
เกมของเราประกอบด้วยกระดานสองแผ่น ลูกบอลที่เคลื่อนที่ไปรอบๆ และเส้นขอบที่จำกัดการเคลื่อนที่ของกระดานและลูกบอล
เริ่มต้นด้วยการสร้างเส้นขอบ
- ในการสร้างวัตถุเกมใหม่ เลือก สินทรัพย์>สร้าง>สไปรท์>สี่เหลี่ยม (ตั้งชื่อว่า "ขอบขวาและซ้าย") ดูรูปที่ 2
- ลากและวางเส้นขอบขวาและซ้ายไปยังลำดับชั้น จากนั้นสี่เหลี่ยมจัตุรัสจะปรากฏขึ้นในฉาก
- ปรับตำแหน่งแกน x เป็น (5) “ขอบขวาและซ้าย”>สารวัตร>แปลง>ตำแหน่ง>X ดูภาพ3
- จากนั้นปรับขนาดให้ใหญ่พอที่จะปิดขอบกล้องได้ (ลากด้านบนและด้านล่างของสี่เหลี่ยมจัตุรัสเพื่อยืดออก)
- ปรับสี “จากขอบขวาและซ้าย”>สารวัตร>สไปรท์เรนเดอร์>สี ดูภาพ3
- เลื่อนลงมาในตัวตรวจสอบและเลือกเพิ่มส่วนประกอบ จากนั้นพิมพ์ Rigidbody2D แล้วกด Enter ซึ่งโดยทั่วไปแล้วจะเป็นการเพิ่มฟิสิกส์ให้กับวัตถุในเกมของคุณ เนื่องจากให้การตรวจจับมวล แรงโน้มถ่วง และการชนกัน อย่างไรก็ตาม เราไม่ต้องการแรงโน้มถ่วงในเกมของเรา ดังนั้นให้สร้างแรงโน้มถ่วงเป็น 0 แทน 1 คุณจะต้องหยุดตำแหน่งและการหมุนเพื่อไม่ให้เส้นขอบเคลื่อนที่เมื่อชนกัน ดูภาพ4
- เลือกเพิ่มองค์ประกอบจากนั้นพิมพ์ Box Collider 2D แล้วกด Enter สิ่งนี้จะเพิ่มพื้นที่รอบ ๆ วัตถุเกมที่สามารถตรวจจับการชนได้ ดูภาพ4
- ตอนนี้เลือกเส้นขอบขวาและซ้ายแล้วกด (ctrl+d) เพื่อทำซ้ำ
- เปลี่ยนชื่อเป็น "ขอบซ้าย" และเปลี่ยนชื่ออันแรก ("ขอบขวา")
- เลือกเส้นขอบด้านซ้ายและปรับตำแหน่งแกน x เป็น (-5) ด้วยวิธีเดียวกันในขั้นตอนที่ 3 ตอนนี้คุณมีเส้นขอบด้านขวาและด้านซ้าย
ทำซ้ำ 10 ขั้นตอนก่อนหน้าด้วยเส้นขอบขึ้นและลง แล้วเปลี่ยนตำแหน่ง y ของช่องสี่เหลี่ยมแทนตำแหน่ง x ตัวอย่างสุดท้ายควรเป็นสิ่งที่คล้ายกับในภาพ
ดูรูปที่ 5
ขั้นตอนที่ 2: การเพิ่มบอร์ดและการสร้างคอนโทรลเลอร์
การเพิ่มบอร์ด
สร้างวัตถุเกมใหม่และตั้งชื่อผู้เล่น 1
ปรับ:
- มาตราส่วน: X(1.2), Y(0.15), Z(1)
- ตำแหน่ง: X(0), Y(-3.6), z(0)
- เพิ่ม BoxCollider2D
- เพิ่ม Rigidbody 2D และตรึงแกน y และ z
ทำซ้ำ (ctrl+d) และเปลี่ยนชื่อเครื่องเล่นคัดลอก 2
ปรับ:
- มาตราส่วน: X(1.2), Y(0.15), Z(1)
- ตำแหน่ง: X(0), Y(3.6), z(0)
- BoxCollider จะอยู่ที่นั่นแล้ว
- Rigidbody 2D จะอยู่ที่นั่นแล้ว และแกน y และ z จะถูกตรึงไว้แล้ว
ดูภาพ 1
ทำคอนโทรลเลอร์
คุณจะต้องการ:
- 2X Arduino นาโน
- 2X กระดานขนมปังใหญ่
- 2X กระดานขนมปังขนาดเล็ก
- สวิตช์แทค 4X (ปุ่มกด)
- ตัวต้านทาน 4X
- สายจัมเปอร์ชายกับชาย 12X
ตอนนี้ดูรูปถ่ายกระดานขนมปังและการทำแผนที่เพื่อประกอบจอยสติ๊ก
- แนบชิป Arduino Nano หนึ่งตัวกับบอร์ดขนมปังขนาดเล็ก
- แนบสวิตช์แทค 2 อันบนกระดานขนมปังขนาดใหญ่ตามที่แสดงในภาพ พยายามให้ด้านขวามือของกระดานขนมปังสมมาตรกับด้านซ้ายมือหนึ่งอันจะทำให้จอยสติ๊กดูดีขึ้น (คุณสามารถใช้คอลัมน์ที่ 30 เป็นแบบสมมาตรได้ ไลน์)
- เชื่อมต่อพินซ้ายบนของปุ่มซ้ายกับพิน 5V ใน Arduino บนบอร์ดขนมปังขนาดเล็ก (สิ่งที่เชื่อมต่อกับคอลัมน์เดียวกันในเขียงหั่นขนมเชื่อมต่อกัน)
- เชื่อมต่อพินบนขวาของปุ่มขวากับพิน 5V ใน Arduino
- เชื่อมต่อพินขวาล่างของปุ่มซ้ายกับจุดบนคอลัมน์ที่ 31 โดยใช้ตัวต้านทาน
- เชื่อมต่อพินซ้ายล่างของปุ่มขวากับจุดบนคอลัมน์ที่ 29 โดยใช้ตัวต้านทาน
- เชื่อมต่อตัวต้านทานกับขา GND ใน Arduino
- เชื่อมต่อพินบนขวาของปุ่มซ้ายกับพิน D3 ใน Arduino
- เชื่อมต่อพินซ้ายบนของปุ่มขวากับพิน D9 ใน Arduino
- ทำซ้ำขั้นตอนเหล่านี้และสร้างตัวควบคุมที่สอง
ขั้นตอนที่ 3: เชื่อมต่อ Arduino กับพอร์ตอนุกรม
ก่อนอื่นคุณต้องติดตั้ง Arduino IDE
เมื่อติดตั้งแล้ว คุณสามารถเริ่มต้นได้โดยการสร้างโปรแกรม Arduino ที่รับอินพุตจากปุ่มต่างๆ และเก็บไว้ในพอร์ตอนุกรม (พอร์ต COM) เมื่อบอร์ด Arduino เชื่อมต่อกับแล็ปท็อปของคุณ ระบบปฏิบัติการจะรับรู้บอร์ดโดยอัตโนมัติว่าเป็นพอร์ตอนุกรม ซึ่งสามารถอัปโหลดโปรแกรมได้ ค่าที่เก็บไว้ในพอร์ตอนุกรมสามารถใช้ในขั้นตอนถัดไปเมื่อเราเชื่อมต่อ Unity Engine กับพอร์ตอนุกรม
ทีนี้มาเชื่อมต่อ Arduino กับพอร์ตอนุกรมกัน
ดูที่ภาพ
- เชื่อมต่อ Arduino กับแล็ปท็อปของคุณ
- เครื่องมือ>บอร์ด>Arduino Nano
- หากชิป Arduino ของคุณเป็นรุ่นล่าสุด (2018-2020) เครื่องมือ>โปรเซสเซอร์>ATmega328P (Bootloader รุ่นเก่า)
- หากชิป Arduino ของคุณไม่ล่าสุด (ก่อนปี 2018) เครื่องมือ>โปรเซสเซอร์>ATmega328P
- เครื่องมือ>พอร์ต>COM (ไม่ว่าหมายเลขใดจะปรากฏขึ้น ในกรณีของฉันคือ 10) * นี่คือพอร์ตอนุกรมที่จะเก็บค่าต่างๆ
- คัดลอกโค้ดและวางลงใน Arduino IDE แล้วกด ctrl+u เพื่ออัปโหลดโปรแกรม
- ทำซ้ำกับ Arduino ตัวที่สอง (เมื่อทำขั้นตอนที่ 5 ตรวจสอบให้แน่ใจว่าได้เลือกพอร์ต COM อื่นเพื่อไม่ให้คอนโทรลเลอร์ทั้งสองเชื่อมต่อกับพอร์ตอนุกรมเดียวกัน)
รหัส:
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600); โหมดพิน (3, อินพุต); //บอกให้ Arduino รับอินพุตจากพิน D3 pinMode(9, INPUT); //บอกให้ Arduino รับอินพุตจากพิน D9 } void loop() { if(digitalRead(3)==1){ /* หาก Arduino ได้รับอินพุต 1 Serial.write (1); จากพิน 3 ส่งออกค่า 1 ไปยังพอร์ตอนุกรม Serial.flush(); */ ล่าช้า(2); } if(digitalRead(9)==1){ /* หาก Arduino ได้รับอินพุต 1 Serial.write(2); จากพิน 9 ส่งออกค่า 2 ไปยังพอร์ตอนุกรม Serial.flush(); */ ล่าช้า(2); } }
คำอธิบายของโปรแกรม:
รหัสนี้ใช้อินพุตจากพิน D3 และพิน D9 ใน Arduino ซึ่งเชื่อมต่อกับปุ่มต่างๆ ปุ่มต่างๆ ถูกกดหรือไม่ถูกกด ซึ่งหมายความว่าการอ่านที่นำมาจากปุ่มนั้นเป็น 1 (กด) หรือ 0 (ไม่ได้กด) หากอินพุตจากปุ่มขวา (จาก D9) เป็น 1 (กด) ให้เก็บค่า 1 ในพอร์ตอนุกรม หากอินพุตจากปุ่มซ้าย (จาก D3) เป็น 1 (กด) ให้เก็บค่า 2 ในพอร์ตอนุกรม
ขั้นตอนที่ 4: การเชื่อมต่อ Unity ด้วย Serial Port
สำหรับขั้นตอนนี้ เราจะระบุพอร์ตอนุกรมใน Unity เพื่อให้สามารถรับอินพุตจาก Arduino เมื่อกดปุ่ม ติดตั้ง Visual Studio Code บนแล็ปท็อปของคุณ จากนั้นไปที่ Unity เลือกผู้เล่น 1 จากลำดับชั้น เลื่อนลงและเลือกเพิ่มองค์ประกอบแล้วพิมพ์ player1_motion จากนั้นกด Enter ดูภาพ 1
สคริปต์ C# จะถูกสร้างขึ้นในตัวตรวจสอบ คลิกขวาที่มันและเลือกแก้ไขสคริปต์ รหัส Visual Studio ควรเปิดขึ้นและจะแสดงรหัสเริ่มต้นที่ดูเหมือนภาพที่ 2
คัดลอกรหัสต่อไปนี้แล้วเปลี่ยน "SerialPort sp = new SerialPort("COM10", 9600);" ด้วย SerialPort sp = ใหม่ SerialPort ("พอร์ต COM ที่ Arduino ของคุณเชื่อมต่ออยู่", 9600); คุณสามารถค้นหาของเขาได้โดยกลับไปที่รหัส Arduino ของคุณและไปที่ Tools>Port>COM (หมายเลขใดก็ตามที่ปรากฏ)
รหัส:
ใช้ System. Collections;
ใช้ System. Collections. Generic; ใช้ UnityEngine; ใช้ System. IO. Ports; คลาสสาธารณะ player1_motion: MonoBehavior { ความเร็วลอย = 8; จำนวนลอยส่วนตัวเพื่อย้าย; SerialPort sp = SerialPort ใหม่ ("COM10", 9600); // เริ่มถูกเรียกก่อนการอัพเดตเฟรมแรกเป็นโมฆะ Start() { sp. Open(); sp. ReadTimeout = 1; } // Update ถูกเรียกหนึ่งครั้งต่อเฟรม void Update() { amounttomove = speed*0.01f; if(sp. IsOpen){ ลอง { moveObject(sp. ReadByte()); พิมพ์(sp. ReadByte()); } จับ (System. Exception){ } } } โมฆะ moveObject (ทิศทาง int) { ถ้า (ทิศทาง == 1) { transform. Translate (Vector3.left * amounttomove, Space. World); } if(ทิศทาง == 2){ transform. Translate(Vector3.right*amounttomove, Space. World); } } }
คำอธิบายของรหัส:
รหัสนี้บอกให้ความสามัคคีรับอินพุตจากพอร์ตอนุกรม (COM 10) เมื่อกดปุ่มซ้าย Arduino จะส่งค่า 1 ไปยังพอร์ตอนุกรมหากความสามัคคีได้รับ 1 จากพอร์ตอนุกรมความเร็วจะถูกเพิ่มไปยังวัตถุเกม "ผู้เล่น 1" ในทิศทางซ้าย เมื่อกดปุ่มขวา Arduino จะส่งค่า 2 ไปยังพอร์ตอนุกรมหากความสามัคคีได้รับ 2 จากพอร์ตอนุกรมความเร็วจะถูกเพิ่มไปยังวัตถุเกม "ผู้เล่น 1" ในทิศทางที่ถูกต้อง หากพอร์ตอนุกรมไม่ได้รับค่าจากพอร์ตอนุกรม จะไม่มีการเพิ่มความเร็วในทั้งสองทิศทาง ดังนั้น บอร์ดจะอยู่กับที่
หลังจากที่คุณคัดลอกโค้ดแล้ว ให้กด F5 เพื่อสร้างและเรียกใช้โค้ด กลับสู่ความสามัคคีแล้วกดปุ่มเล่น ผู้เล่น 1 ควรเลื่อนไปทางขวาเมื่อคุณกดขวาและซ้ายเมื่อคุณกดซ้าย
ตอนนี้ ทำตามขั้นตอนเดิมอีกครั้ง แต่กับผู้เล่น 2 และอย่าลืมเขียนใน 'เพิ่มส่วนประกอบ' player2_motion แทน player1_motion และระบุพอร์ต COM ที่สองที่คอนโทรลเลอร์ตัวที่สองเชื่อมต่ออยู่ ไม่ใช่พอร์ตอนุกรมเดียวกัน
คุณจะต้องเปลี่ยน "public class player1_motion: MonoBehaviour" เป็น "public class player2_motion: MonoBehaviour" ในโค้ดด้วย
ขั้นตอนที่ 5: การเพิ่ม Ball
- เพิ่มวัตถุเกมใหม่ แต่คราวนี้เลือกวงกลมแทนสี่เหลี่ยม
- เปลี่ยนชื่อเป็น "บอล"
- ลากและวางในลำดับชั้น
- ปรับขนาด (X:0.2 - Y:0.2 - Z: 0.2)
- เพิ่ม Rigidbody 2D และตรึงแกน Z เท่านั้น
- เปลี่ยนมวลเป็น 0.0001
- เปลี่ยนมาตราส่วนแรงโน้มถ่วงเป็น 0
- เพิ่ม Box Collider 2D
- ไปที่ สินทรัพย์>สร้าง>วัสดุฟิสิกส์ 2D ดูรูปภาพ 1
- เปลี่ยนชื่อเป็น "เด้ง"
- เปลี่ยนแรงเสียดทานเป็นศูนย์จากผู้ตรวจสอบ
- เปลี่ยนความเด้งเป็น 1 จากสารวัตร
- ลากและวาง "เด้ง" ลงใน Rigidbody 2D>Material ดูรูปภาพ 2
- เลือก "ball" อีกครั้งจากลำดับชั้นและไปที่เพิ่มส่วนประกอบแล้วพิมพ์ Ball_movement จากนั้นกด Enter
- คลิกขวาที่สคริปต์และเลือกแก้ไขสคริปต์
- คัดลอกโค้ดด้านล่างแล้วกด F5 เพื่อสร้างและเรียกใช้
รหัส:
ใช้ System. Collections;
ใช้ System. Collections. Generic; ใช้ UnityEngine; คลาสสาธารณะ Ball_movement: MonoBehaviour {// เริ่มถูกเรียกก่อนการอัพเดตเฟรมแรก แรงลอยส่วนตัว = 2; เป็นโมฆะ เริ่ม () { StartCoroutine (ย้าย ()); } IEnumerator ย้าย () { ผลตอบแทนกลับมา WaitForSeconds (2) ใหม่; GetComponent(). AddForce(ใหม่ Vector2(1f, 0.5f)*0.02f*force); } }
คำอธิบายของรหัส
รหัสนี้ทำให้ลูกบอลมีความเร็วทั้งสองทิศทางในทิศทาง X และทิศทาง Y ด้วยขนาดเท่ากัน ซึ่งทำให้ลูกบอลเคลื่อนที่ในมุม 45° ในขั้นตอนที่ 8 เราได้เพิ่มวัสดุฟิสิกส์ให้กับลูกบอลและเปลี่ยนความกระเด้งกลับ ซึ่งจะคงการเคลื่อนที่ของลูกบอลตลอดทั้งเกม
ขั้นตอนที่ 6: จบเกม
ตอนนี้ เราต้องทำให้การสูญเสียเป็นไปได้ หากคุณเล่นเกม คุณจะสังเกตเห็นว่าเมื่อลูกบอลผ่านผู้เล่น 1 หรือผู้เล่น 2 มันแค่กระเด้งออกจากเขตแดน และนั่นไม่ใช่สิ่งที่เราต้องการในเกมของเรา เราต้องการสร้างตัวนับคะแนนที่นับคะแนนทุกครั้งที่ลูกบอลชนกับขอบบนหรือล่าง และเพื่อรีเซ็ตตำแหน่งของลูกบอล
- ลากและวางลูกบอลจากลำดับชั้นไปยังโปรเจ็กต์ คุณได้สร้างลูกบอลสำเร็จรูปไว้เพื่อใช้ในภายหลัง
- คลิกขวาที่ลำดับชั้นและเลือก Create Empty วัตถุที่ว่างเปล่าจะปรากฏขึ้น เปลี่ยนชื่อเป็นลูกบอลเกิดใหม่ และเปลี่ยนตำแหน่งให้เหมือนกับตำแหน่งของลูกบอล
- คลิกขวาที่ลำดับชั้นและเลือก UI>>Text โปรดสังเกตว่าข้อความมาพร้อมกับผืนผ้าใบ ตำแหน่งของข้อความในเกมขึ้นอยู่กับตำแหน่งของข้อความในผืนผ้าใบ ไม่ใช่ในขอบเขตของเกมของเรา (ดูรูปที่ 1).
- เปลี่ยนตำแหน่งของข้อความไปที่ใดก็ได้ที่คุณต้องการ
- ทำซ้ำขั้นตอนที่ 3 และ 4 อีกครั้งสำหรับคะแนนของผู้เล่นคนที่สอง
- พิมพ์ข้อความแรก "ผู้เล่น 1 คะแนน: 0" และพิมพ์ข้อความที่สอง "ผู้เล่น 2 คะแนน: 0" (ดูรูปที่ 2).
- สร้างสคริปต์ในขอบด้านบนที่เรียกว่า p1wins และคัดลอกโค้ดต่อไปนี้
รหัส:
ใช้ System. Collections;
ใช้ System. Collections. Generic; ใช้ UnityEngine; ใช้ UnityEngine. SceneManagement; ใช้ UnityEngine. UI; p1wins ระดับสาธารณะ: MonoBehavior { คะแนนข้อความสาธารณะ; ball_respawn การแปลงสาธารณะ; บอล GameObject สาธารณะ; int ส่วนตัว p1 = 0; // Start ถูกเรียกก่อนการอัพเดทเฟรมแรกเป็นโมฆะ Start() { } // Update ถูกเรียกหนึ่งครั้งต่อเฟรม void Update() { score.text = "Player 1 Score:" + p1; } โมฆะ OnCollisionEnter2D (Collision2D อื่น ๆ) { if (other.gameObject.tag == "Ball") { ทำลาย (other.gameObject); p1++; ยกตัวอย่าง(บอล, ball_respawn.position, ball_respawn.rotation); } } }
8. ลากและวางลูกสำเร็จรูปจากโครงการในขั้นตอนที่ 1 ลงในพารามิเตอร์ Ball (ดูรูปที่ 3)
9. ลากและวางลูกบอลเกิดใหม่จากลำดับชั้นไปยังพารามิเตอร์ Ball-rerspawn (ดูรูปที่ 3)
10. ลากและวางผู้เล่น 1 คะแนนจากลำดับชั้นไปยังพารามิเตอร์คะแนน (ดูรูปที่ 3)
คำอธิบายของรหัส:
เมื่อลูกบอลชนกับขอบบน มันจะทำลายและเกิดใหม่อีกครั้งที่ตำแหน่ง ball_respawn ที่เรากำหนดไว้ในขั้นตอนที่ 2 เป้าหมายของการทำให้ลูกบอลเป็นแบบสำเร็จรูปคือการสามารถเกิดใหม่ได้พร้อมกับคุณสมบัติทั้งหมด มิฉะนั้น หากเราใช้ลูกบอล จากลำดับชั้น มันจะเกิดใหม่แต่จะไม่เคลื่อนที่ นอกจากนี้ เมื่อลูกบอลชนกับขอบบน ค่าที่เดิมเท่ากับ 0 เรียกว่า p1 เพิ่มขึ้น 1 ค่านี้จะแสดงเป็นข้อความ ดังนั้นเมื่อลูกบอลชนกับขอบด้านบน คะแนนของผู้เล่น 1 จะเพิ่มขึ้น 1
ตอนนี้ทำขั้นตอนที่ 7, 8, 9 และ 10 สำหรับขอบล่าง
สำหรับขั้นตอนที่ 7 ให้สร้างสคริปต์ชื่อ p2wins และคัดลอกโค้ดต่อไปนี้แทน
สำหรับขั้นตอนที่ 10 ให้ลากและวางคะแนนผู้เล่น 2 จากลำดับชั้นไปยังพารามิเตอร์ Score
รหัส:
ใช้ System. Collections;
ใช้ System. Collections. Generic; ใช้ UnityEngine; ใช้ UnityEngine. SceneManagement; ใช้ UnityEngine. UI; p2wins คลาสสาธารณะ: MonoBehavior { คะแนนข้อความสาธารณะ; ball_respawn การแปลงสาธารณะ; บอล GameObject สาธารณะ; int ส่วนตัว p2 = 0; // Start ถูกเรียกก่อนการอัพเดทเฟรมแรกเป็นโมฆะ Start() { } // Update ถูกเรียกหนึ่งครั้งต่อเฟรม void Update() { score.text = "Player 2 Score:" + p2; } โมฆะ OnCollisionEnter2D (Collision2D อื่น ๆ) { if (other.gameObject.tag == "Ball") { ทำลาย (other.gameObject); หน้า 2++; ยกตัวอย่าง(บอล, ball_respawn.position, ball_respawn.rotation); } } }
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino
Arduino Controllers: 10 ขั้นตอน (พร้อมรูปภาพ)
ตัวควบคุม Arduino: ระบบควบคุมเกม Arduino โดยใช้ Arduino และไลบรารี p5.js แนวคิดนี้คือการสร้างโครงการ Arduino ที่จำลองและขยายได้ง่าย การเชื่อมต่อคอนโทรลเลอร์ได้รับการออกแบบเพื่อใช้เซ็นเซอร์และอินพุตต่างๆ มากมาย