สารบัญ:

Portal 2 Turret - Master Turret Control: 9 ขั้นตอน (พร้อมรูปภาพ)
Portal 2 Turret - Master Turret Control: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Portal 2 Turret - Master Turret Control: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Portal 2 Turret - Master Turret Control: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Portal 2 | Wheatley's Chassis and Stewart Platform 2024, กรกฎาคม
Anonim
Image
Image

โปรเจ็กต์นี้เป็นส่วนขยายหรือรีมิกซ์ของ Portal Turret ดั้งเดิมของฉันบน Instructables (Portal-2-Turret-Gun) นอกจากนี้ยังสามารถใช้เป็นตัวควบคุมราคาถูกเพื่อควบคุมทุกอย่างที่ใช้ชิปวิทยุ nRF24L01 หน้าจอ LCD มีประโยชน์อย่างยิ่งเมื่อทำการปรับแต่ง

(ปรากฏว่ามีประโยชน์มากในการตรวจสอบเมื่อวิทยุของฉันสร้างและสูญเสียการเชื่อมต่อกับ nRF24L01 อื่นบน "เครือข่าย" ฉันสามารถเดินไปรอบๆ และดูหน้าจอแสดงผลแสดงสถานะการเชื่อมต่อของวิทยุ! ค่อนข้างมีประโยชน์สำหรับการปรับการตั้งค่าและการตรวจสอบ พิสัย!)

หลังจากที่ฉันสร้าง Portal Turret เสร็จแล้ว ฉันเห็นคลิปวิดีโอสั้นๆ ของฉากโอเปร่า Cara Mia ที่ส่วนท้ายของ Portal 2 ฉันคิดว่า “เฮ้ ตอนนี้ฉันสร้างป้อมปราการสองสามแห่งแล้ว ฉันทำได้!” ฉันมีป้อมปืน แต่เพื่อให้มันใช้งานได้ ตอนนี้พวกมันจะต้องสื่อสารกันหรือกับอุปกรณ์อื่น หลังจากที่ได้คิดดูแล้ว และคิดว่าการควบคุมแบบแมนนวลก็น่าจะเจ๋งแล้ว ฉันก็ตัดสินใจว่าจะสร้าง Master Turret Controller หรือ MTC

ตกลงแล้วจะทำอย่างไรเกี่ยวกับเรื่องนี้? ฉันไม่อยากดัดแปลงป้อมปืนมากเกินไป นั่นเป็นข้อจำกัด ฉันมีชิปวิทยุ nRF24L01 บางตัวที่ฉันยังไม่เคยใช้มาก่อน และคิดว่าจะสอดคล้องกับเป้าหมายของฉันในการใช้ส่วนประกอบที่ราคาไม่แพง และอาศัยการออกแบบทางกลและรหัสเพื่อให้ใช้งานได้ ฉันจะต้องสร้างตัวควบคุมและเริ่มครุ่นคิดถึงสิ่งที่ตัวควบคุมจะมีและสิ่งที่ฉันสามารถทำได้กับป้อมปราการ Cara Mia อยู่ในวาระแล้ว แต่มีอะไรอีกบ้าง?

การควบคุมแบบแมนนวล: เมื่อเปิดปีกแล้ว ฉันต้องการควบคุมระดับเสียงและจุดหมุน 2 แกน = จอยสติ๊ก ดังนั้นการควบคุมจอยสติ๊กและปุ่มกดบางปุ่ม ปุ่มกด 1 จะยิงป้อมปืน และบางทีปุ่มกด 2 จะทำให้มันพูดอย่างใดอย่างหนึ่งของมัน ฟังดูเข้าท่า! ง่ายพอ…

แชท: ฉันเพิ่งเห็นกิจวัตร “ใครมาก่อน” - แอ๊บบอตและคอสเตลโลอีกครั้ง และแสงสว่างในหัวฉันก็ดับวูบ! ฉันยังจะทำกิจวัตรสเก็ตช์เรื่องตลกโดยใช้คำพูดทั้งหมด โดยใช้ป้อมปืนหลายอัน!! ตกลง อันนี้ยังคิดไม่หมด แต่ฉันแน่ใจว่าฉันจะได้รับมันจัดเรียงเมื่องานสร้างของฉันอยู่ระหว่างดำเนินการ

ฉันยังต้องการให้ MTC นี้เป็นแบบไร้สายด้วย ดังนั้นฉันจึงเลือกตัวเลือกที่ใช้แบตเตอรี่ 9V แบบธรรมดา และออกแบบตัวควบคุมให้ใช้พลังงานจากปลั๊ก mini-USB ผ่าน Nano ที่ด้านหลัง มีประโยชน์สำหรับการอัพเดทด้วย

ขั้นตอนที่ 1: ผสมผสานวิทยุเข้ากับป้อมปราการ

อันดับแรก ฉันได้รับวิทยุที่ทำงานร่วมกับ Nanos เปล่าสองสามตัว เพื่อให้แน่ใจว่าฉันสามารถทำให้มันทำงานและส่งข้อมูลระหว่างอุปกรณ์หลายเครื่องได้ เมื่อเสร็จแล้ว มันเป็นเรื่องของการรวมวิทยุเข้ากับป้อมปราการที่มีอยู่ อืม การเพิ่ม PCB จริงลงในป้อมปืนนั้นค่อนข้างง่าย ฉันเพิ่งแก้ไขที่ยึดชิปเพื่อรวม nRF24L01, Nano และชิป mp3 ตกลง. แก้ไขชิ้นส่วนทางกายภาพหนึ่งส่วน โดยมีการเดินสายบางส่วน

ตัวยึดชิปที่ดัดแปลงแล้วเป็นส่วนหนึ่งของชิ้นส่วนพิมพ์ป้อมปืนแล้ว ฉันเพิ่งลบตัวเลือกที่ไม่ใช่วิทยุออกจากส่วนที่พิมพ์ในบิลด์นั้น มันจะไม่สร้างความแตกต่างหากมีคนต้องการสร้างตัวแปรที่ไม่ใช่วิทยุ อย่าเพิ่งรวมชิปวิทยุ nRF24L01 เข้าไปด้วย

ขั้นตอนที่ 2: (อีกครั้ง) การเดินสายไฟของป้อมปราการ

(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets
(Re) การเดินสายไฟของ Turrets

เอ่อโอ้…

มันดูไม่ดี ฉันต้องการเพิ่มการเชื่อมต่อ 5 รายการให้กับนาโน และฉันเหลือพินที่พร้อมใช้งานเหลือน้อยแล้ว หลังจากพิจารณาเรื่องนี้มาซักพักแล้ว ฉันก็รู้ว่าการเชื่อมต่อใดมีความสำคัญกว่า และตระหนักว่าเพื่อให้ใช้งานได้ ฉันจะต้องทำการแมปการเชื่อมต่อ Nano ที่มีอยู่ส่วนใหญ่ใหม่

สำหรับผู้ที่ต้องการสร้าง “Radio Turret” และได้สร้าง Gen ก่อนหน้านี้แล้ว… ขออภัย…

ตอนนี้ ฉันทำการเปลี่ยนแปลงนี้ไปสองสามครั้งแล้ว และปรากฎว่ากระบวนการนี้ไม่ได้แย่เกินไป มันเกี่ยวข้องกับการกลับเข้าไปใหม่ แต่ฉันสามารถยกเลิกการเชื่อมต่อที่มีอยู่กับ Nano แล้วเชื่อมต่อกับหมุดที่เหมาะสมอีกครั้งโดยไม่ต้องเสียใจมากเกินไป ฉันเพิ่มสายไฟ 7 เส้นสำหรับชิปวิทยุเข้ากับ nRF24L01 (สายไฟ 5 สาย 3v และ GND) จากนั้นเชื่อมต่อปลายอีกด้านเข้ากับนาโน

ขณะนี้มีสายไฟจำนวนมากขึ้น ดังนั้นการรักษาความเรียบร้อยในการเดินสายไฟจึงเป็นเรื่องสำคัญมากขึ้น

สำคัญ: เมื่อประกอบ ตรวจสอบให้แน่ใจว่าสายไฟไม่กดบนปุ่ม Nano reset บนบอร์ด!! ที่เกิดขึ้นกับฉันในครั้งเดียวและโยนฉันวนซ้ำไม่จำเป็น!

ดังนั้นการสร้างป้อมปืนจึงมีแผนผังการเดินสายไฟ 2 แบบ: ตัวเลือก "ไม่ใช่วิทยุ" แบบเก่าและตัวเลือก "ป้อมปืนวิทยุ" ที่ปรับปรุงใหม่ ถ้าสร้างป้อมปืนที่ "ไม่ใช่วิทยุ" ในวันนี้ ฉันยังคงใช้แผนผังวิทยุและโค้ด เพียงลบหรือแสดงความคิดเห็นในส่วนวิทยุหากเป็นเส้นทางที่เลือกหรือไม่ ป้อมปืนควรทำงานด้วยตัวเองโดยไม่มีวิทยุ

ขั้นตอนที่ 3: ส่วนประกอบไฟฟ้า MTC

MTC อุปกรณ์ไฟฟ้า
MTC อุปกรณ์ไฟฟ้า
MTC อุปกรณ์ไฟฟ้า
MTC อุปกรณ์ไฟฟ้า
MTC อุปกรณ์ไฟฟ้า
MTC อุปกรณ์ไฟฟ้า

เมื่อแยกป้อมปราการ ก็ถึงเวลาสร้างเอ็มทีซี

MTC ใช้ส่วนประกอบต่อไปนี้ ซึ่งทั้งหมดมาจาก Amazon หรือ Baggood หรือ Ali Express ฯลฯ ฉันกำลังแสดงหมายเลขชิ้นส่วนของ Amazon ที่ฉันอ้างอิงเพื่อใช้อ้างอิง เนื่องจากสินค้าเหล่านี้มีจำหน่ายทั่วไปและมีราคาที่สมเหตุสมผล (และฉันไม่ต้อง รอ 2+ สัปดาห์กว่าจะได้สิ่งที่ต้องการก่อนจึงจะเริ่มออกแบบกลไกได้!)

  • Arduino Nano 0.96” LCD, (SSD1306) ฉันใช้รุ่นสีน้ำเงิน/เหลือง
  • จอยสติ๊กขนาดเล็ก (HW-504) โมดูลจอยสติ๊ก 5V PS
  • สวิตช์สลับ (dx-004) 22mm * 13mm
  • วิทยุ - (nRF24L01)
  • ปุ่มกด 12 มม. (CLT1088 สำหรับปุ่มสี, PBS-33B สำหรับสีดำ)
  • สกรู 2 มม. (ชุดสกรูต๊าปตัวเอง M2, ชุดหัวแกนครอสไดรฟ์)
  • ไฟ LED 5 มม. ที่คุณเลือกสำหรับตัวบ่งชี้ (อย่าใช้ไฟ LED สว่าง!!)
  • ขั้วต่อแบตเตอรี่ 9V ทั่วไปพร้อมผมเปีย
  • แบตเตอรี่ 9V (ใช้แบตเตอรี่ที่ดี ไม่ใช่รุ่นเก็บดอลลาร์ที่ไม่สามารถจ่ายพลังงานเพียงพอสำหรับโครงการเหล่านี้ได้เสมอ!)
  • ฉันใช้ลวดหุ้มซิลิโคน ฉันชอบใช้มันสำหรับโครงการเหล่านี้

ตอนแรกฉันใช้ไฟ LED ที่สว่าง แต่พบว่ามันดีเกินไป พวกเขาทำให้ฉันตาบอด! ฉันลงเอยด้วยการใช้ไฟ LED เก่า ๆ ที่อ่อนแอและนั่นก็สมเหตุสมผลกว่าสำหรับแอปพลิเคชันนี้

ขั้นตอนที่ 4: ชิ้นส่วนที่พิมพ์ 3 มิติ

ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ

ฉันออกแบบ MTC โดยใช้ Fusion คล้ายกับการออกแบบป้อมปืน

แอสเซมบลีที่พิมพ์ต้องการเพียง 3 ส่วน:

  • แผงด้านบน (เวอร์ชัน 1 หรือ 2)
  • ตัวเรือนด้านล่าง
  • สาย LCD

ชิป nRF, นาโน, แบตเตอรี่ 9V, สวิตช์สลับและไฟ LED ถูกติดตั้งไว้ที่เพลทด้านบนโดยไม่มีตัวยึด ไฟ LED เพียงแค่กดลงในเพลตและยึดไว้กับที่โดยแท็บ พวกเขาควรจะเข้ามา แต่อย่าหักโหมจนเกินไป เพลทด้านบนได้รับการออกแบบให้ยึดนาโนไว้แน่น และชิป nRF ควรจะเข้าไปอย่างแผ่วเบา ระวังด้วยแท็บเล็ก nRF; มีขนาดเล็กและงอกลับเพื่อเปิดและปล่อยเพื่อจับชิป แม้ว่าการเดินทางจะมีจำกัด แต่จงอ่อนโยนที่นี่

จอยสติ๊กและจอ LCD ต้องใช้สกรู 2 มม. (ยาว 5 มม.) เพื่อยึดไว้กับแผ่นด้านบน PCB ของจอยสติ๊กมีรูขนาดใหญ่ ดังนั้นฉันจึงรู้สึกว่าฉันต้องการแหวนรองขนาดเล็กเพื่อให้แน่ใจว่าสกรูจะไม่ดึงผ่าน

ฉันพบว่า PCB ของ LCD มาในมิติที่แตกต่างกันเล็กน้อยจากผู้ผลิตไปยังผู้ผลิต ดังนั้นฉันจึงเลือกใช้สายรัดธรรมดาเพื่อยึดไว้แทนที่จะใช้คลีตหรือตะขอ

โปรดทราบว่าสามารถติดตั้ง LCD ลงในเพลทด้านบนได้ไม่ว่าจะด้วยวิธีใด แต่จอแสดงผลจะแสดงขึ้นเต็มที่ผ่านช่องเปิดในทิศทางเดียวเท่านั้น! ด้วยเหตุนี้ ฉันจึงได้รวมตัวเลือกแผ่นที่ 2 ไว้เมื่อใช้หน้าจอแยกสีเหลือง/น้ำเงิน รุ่นหนึ่งมีสีเหลืองที่ด้านบนและอีกรุ่นจะแสดงสีเหลืองที่ด้านล่างตามที่แสดงในรูปภาพของฉัน

สำหรับ LCD รุ่นสีเดียว ไม่สำคัญว่าจะใช้สีใด เพราะคุณสามารถพลิกหน้าจอโดยใช้ซอฟต์แวร์ได้

เนื่องจากการเดินสายทั้งหมดทำบนเพลทด้านบน ด้านล่างจึงเป็นเพียงฝาครอบที่ยึดไว้กับเพลทด้านบนด้วยสกรู 2 มม. ที่ยาวกว่า (จำนวน:4)

แทนที่จะใช้ตัวเลือก "ประตูแบตเตอรี่" ฉันแค่ใส่แบตเตอรี่ลงในเพลตด้านบน ซึ่งหมายถึงการถอดสกรู 4 ตัวที่ยึดด้านล่างขึ้นด้านบนเพื่อเปลี่ยนแบตเตอรี่ แต่เนื่องจากสามารถใช้พลังงานจากสาย USB ได้ ไม่ใช่จุดจบของโลก เพลทด้านบนทำมาจากระบบที่วางแบตเตอรี่ 9V ที่ควรจะแข็งแรงพอสำหรับการใช้งานซ้ำๆ ไม่ซับซ้อนจนเกินไป แต่จะป้องกันไม่ให้แบตเตอรี่เคลื่อนไปรอบๆ

ฉันพิมพ์แผ่นบนเป็น 2 สีตามที่เห็นในรูปภาพ ฉันใช้ Prusa i3 Mk2 โดยไม่มีตัวเลือกหลายสี แต่ใช้เครื่องมือพิมพ์สี (https://www.prusaprinters.org/color-print/) เพื่อเปลี่ยนสีระหว่างกระบวนการ ตรวจสอบเลเยอร์ที่ข้อความหยุดและกลายเป็นของแข็ง และทำให้เป็นเลเยอร์การเปลี่ยนแปลง โว้ว! ข้อความสี!

ฉันพิมพ์ชิ้นส่วนที่ความสูงของชั้น 0.35 มม. เนื่องจากไม่ต้องการความละเอียดที่ละเอียดกว่านี้บนชิ้นส่วนเรียบๆ เหล่านี้ ฉันชอบวิธีการดูความละเอียดนี้ด้วย โอ้และพิมพ์ได้ค่อนข้างเร็วด้วย!

ขั้นตอนที่ 5: การประกอบไฟฟ้า

การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า
การประกอบไฟฟ้า

ส่วนประกอบทางไฟฟ้าทั้งหมดถูกติดตั้งไว้ที่ด้านล่างของแผ่นด้านบน และเดินสายทั้งหมดเข้าด้วยกัน ต้องติดตั้งปุ่มกดและสวิตช์ก่อน และสามารถติดตั้ง LCD, Nano, Joystick, วิทยุ nRF ล่วงหน้าได้ก่อนที่จะติดตั้งในเพลทด้านบน ฉันแนะนำวิธีนี้ในการเดินสายส่วนประกอบแต่ละส่วนล่วงหน้า จากนั้นจึงทำการเชื่อมต่อกับนาโนในตอนท้าย ฉันยังแนะนำให้อัปโหลดภาพสเก็ตช์ไปที่ Nano เปล่าก่อน ก่อนที่จะเดินสายจนเสร็จ

ไม่มีอะไรจะน่าพอใจไปกว่าการเปิดเครื่องแล้วดูมีชีวิตชีวาอย่างที่คิดไว้เมื่อทำเสร็จแล้ว!

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

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

รหัสสำหรับ MTC, Red turret, White Turret และ Blue Turret ขึ้นแล้ว

นี่เป็นประสบการณ์ในการเขียนโค้ด! ฉันมีป้อมปืนทำงานอิสระ แต่การรวมวิทยุนั้นยากกว่าที่ฉันคิดไว้ในตอนแรก! ฉันยังสนุกกับการทำให้ส่วน "แชท" ทำงานได้ตามต้องการ (เพิ่มเติมในภายหลัง)

เมื่อรู้รหัส MTC แล้ว ก็เริ่มจำกัดหน่วยความจำของนาโน! ฉันต้องทำการปรับเปลี่ยนและประหยัดโค้ดเพื่อให้หน่วยความจำมีประสิทธิภาพมากขึ้น อีกหนึ่งประสบการณ์การเรียนรู้ที่ดี

ฉันได้รวมโค้ด "Turret w radio option" ที่เกี่ยวข้องไว้ในโครงสร้างนี้ เนื่องจากทำงานร่วมกัน การสร้างป้อมปืนตัวเลือกวิทยุตามหน้าการสร้าง Turret จะทำให้พร้อมใช้งานกับ MTC หรือสำหรับวิธีการควบคุม nRF24L01 อื่นๆ ของคุณ

นอกจากนี้ การทำให้เสียงใช้งานได้กับโค้ดนี้ใช้เวลาพอสมควร และเนื่องจากเสียงดังกล่าวมาจากเว็บไซต์อื่นๆ ที่เข้าถึงได้แบบสาธารณะ ฉันจึงรวมเสียงทั้งหมดไว้ในไฟล์ ZIP สองสามไฟล์ อันหนึ่งสำหรับป้อมปืนปกติ และอีกอันสำหรับป้อมปืนที่ชำรุด สิ่งที่ดีสำหรับคุณผู้อ่านที่รักคือคุณสามารถใช้เสียงในการ์ด SD ของคุณด้วยรหัสตามที่เขียนไว้และคุณก็พร้อมแล้ว!

ขั้นตอนที่ 7: เมนู MTC - การนำทาง

MTC Menu - การนำทาง
MTC Menu - การนำทาง
MTC Menu - การนำทาง
MTC Menu - การนำทาง
MTC Menu - การนำทาง
MTC Menu - การนำทาง

รหัส MTC เริ่มต้นด้วยหน้าจอ Splash แบบกำหนดเอง จากนั้นตรวจสอบสถานะของป้อมปราการ หากไม่มีป้อมปราการ มันจะนั่งอยู่ที่นั่นจนกว่าป้อมปราการจะเชื่อมต่อ!

หากมีการเชื่อมต่อป้อมปืนอย่างน้อยหนึ่งเครื่อง เมนูหลักจะแสดงขึ้นและไฟ LED "พร้อม" จะสว่างขึ้น เว้นแต่ป้อมจะถูกขัดจังหวะหรือกำลังยุ่งอยู่กับ "การจัดการกับใครบางคน" หากไม่ว่าง หน้าจอ "Turrets are Busy" จะปรากฏขึ้น และไฟ LED "ไม่ว่าง" จะสว่างขึ้น

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

ใช้จอยสติ๊ก (ขึ้นและลง) เพื่อหมุนเวียนผ่านตัวเลือกเมนู:

  • อาเรีย
  • แชท
  • คู่มือ

เลือกตัวเลือกที่ต้องการโดยใช้ปุ่ม 'X' หรือโดยการกดลงบนจอยสติ๊ก

โหมด Aria - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมด Aria" และทำให้ป้อมปราการแสดงฉาก Aria เมื่อสิ้นสุดเกม Portal 2 เมื่อเสร็จแล้ว ป้อมปราการจะปิดและรอคำสั่งหรือใครก็ตามที่จะปลุกมันขึ้นมา

โหมดแชท - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมดแชท" และเริ่มลำดับการแชท เมื่อเสร็จแล้ว ป้อมปราการจะปิดและรอคำสั่งหรือใครก็ตามที่จะปลุกมันขึ้นมา

โหมดแมนนวล - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมดแมนนวล" ให้ไฟ LED "แมนนวล" สว่างขึ้น และอนุญาตให้ใช้งานป้อมปืนแบบแมนนวลได้ จอยสติ๊กควบคุมระดับเสียงและเดือย การกดปุ่ม 'X' จะเปิดใช้งานลำดับการยิง การกดปุ่ม 'T' จะทำให้พวกเขา "พูด" โดยที่ป้อมปราการจะพูดคำพูดแบบสุ่มจากห้องสมุดของพวกเขา

การกดปุ่ม '<' หรือปุ่มย้อนกลับจะยกเลิกโหมดทั้งสามนี้ ปิดป้อมปืนและกลับสู่เมนูหลัก

หากคุณต้องการดูสถานะการเชื่อมต่อของกลุ่มป้อมปราการของคุณ (ปัจจุบันจำกัดอยู่ที่ 3) ให้กดปุ่ม 'T' เมื่ออยู่ในเมนูหลัก คุณจะถูกนำไปที่หน้าจอ "สถานะป้อมปืน" ซึ่งคุณสามารถดูสถานะการเชื่อมต่อของแต่ละป้อมปืนได้

เมื่ออยู่ในหน้าจอ “สถานะป้อมปราการ” คุณจะเห็นสถานะของแต่ละป้อม

  • พร้อม - พร้อมสำหรับการควบคุม
  • ไม่ว่าง - ป้อมปืนกำลังยุ่ง "ดูแล" ใครบางคน
  • ไม่พร้อมใช้งาน - MTC ไม่สามารถเชื่อมต่อกับป้อมปืนนี้ได้

กดปุ่ม '<' เพื่อกลับไปยังเมนูหลัก

ขั้นตอนที่ 8: การปรับแต่งโค้ด

การปรับแต่งรหัส
การปรับแต่งรหัส

ภาพหน้าจอที่แสดงในที่นี้แสดงให้เห็นว่าฉันจ้องมองอะไรนานเกินไป… ครั้งละ 4 ภาพร่าง! ใครว่าแก้จุดบกพร่องไม่สนุก!

รหัสให้การควบคุมและตัวเลือกที่แสดงด้านบน แต่แล้วการปรับแต่งรหัสล่ะ

แน่นอน! แต่มีจำนวนพอสมควรเกิดขึ้นที่นี่ ดังนั้นนี่คือแนวทางหรือเคล็ดลับบางประการ

เคล็ดลับที่ 1 - การแก้ไขลำดับ "แชท" การปรับเปลี่ยนนี้เกิดขึ้นในรหัสป้อมปืน

ฉันพยายามคิดหาวิธีทำให้โค้ดใช้งานได้ทุกที่ที่ทำได้ ทำให้ลำดับการแชทสามารถแก้ไขได้มากขึ้น (นั่นคือคำหรือเปล่า) เพื่อให้ฉันสามารถจดจ่อกับเรื่องราวได้ล่วงหน้ามากขึ้น แต่ทำให้ปรับแต่งได้ง่ายขึ้นในภายหลัง

การเปลี่ยนลำดับการแชทโดยใช้โครงสร้างการเข้ารหัสที่มีให้สามารถทำได้ในวิธีที่ตรงไปตรงมา หากคุณปฏิบัติตามวิธีการที่ใช้ในโค้ด การใช้ไฟล์เสียงที่ให้ไว้ จากเกม Portal 2 คุณจะต้องเปลี่ยนตาราง (chatSayings) เท่านั้น

เลือกคำกล่าวสำหรับป้อมปืนปกติหรือป้อมปืนชำรุด คำพูดคือไฟล์ mp3 ที่ระบุด้วย "00XX -" ตามด้วยข้อความที่อธิบายคำพูดนั้น เป็นตัวเลขที่เป็นส่วนสำคัญ ป้อมปืน # 1 จะใช้ค่า XX นี้ในตาราง ป้อมปืน # 2 จะนำหน้าค่า XX ด้วย '1' และป้อมปืน # 3 จะนำหน้าค่า XX ด้วย '2' ตัวอย่างเช่น หากคุณเลือกสำนวน "0040 - ขอโทษ" และต้องการให้ป้อมปืน # 3 พูด คุณจะต้องใส่ "240" ลงในตารางตามลำดับที่ถูกต้อง ถ้าป้อมปืน # 1 พูด คุณจะต้องใส่ “40” ลงในตาราง

ทำเช่นเดียวกันสำหรับนิพจน์ถัดไป เป็นต้น มันอาจจะเป็นการแสดงออกเล็กน้อยระหว่างป้อมปราการหรือค่อนข้างน้อย (ฉันไม่ทราบข้อจำกัดของวิธีนี้ นอกเหนือจากหน่วยความจำ)

คุณไม่จำเป็นต้องเปลี่ยนค่าของตารางอื่น ๆ เนื่องจากเป็นการกำหนดเวลาที่สอดคล้องกับคำพูดในตาราง อีกบรรทัดเดียวที่จะเปลี่ยนคือรอบบรรทัด 520

if (i >= 43) { // สิ้นสุดลำดับ

ค่าของฉันที่นี่จะต้องถูกกำหนดเป็นจำนวนคำพูดในตาราง chatSayings

ในการสร้างคำพูดที่ปรับแต่งได้อย่างสมบูรณ์ (ซึ่งความสนุกที่แท้จริงเริ่มต้นขึ้น!) คุณจะต้องตั้งค่านิพจน์ในไฟล์ที่มีตัวเลข และรู้ระยะเวลาที่จำเป็นในการเล่นไฟล์ บันทึกไฟล์ลงในโฟลเดอร์ "mp3" ในไดเรกทอรีรากของการ์ด SD โดยใช้วิธีการสี่หลัก ("0001", "0002" เป็นต้น) จากนั้นบันทึกเวลาเป็นมิลลิวินาทีที่ไฟล์นั้นเล่น แทรกค่าเหล่านี้ลงในตารางที่เหมาะสม

ดังนั้นสำหรับนิพจน์ที่บันทึกเป็น “0037 - [นิพจน์ของคุณ]” ซึ่งใช้เวลา 5400 มิลลิวินาทีในการเล่น คุณจะต้องใส่ '37' ลงในตาราง chatSayings ในตำแหน่งที่เหมาะสม (และเพิ่มคำนำหน้าขึ้นอยู่กับว่าป้อมปืนใดพูด นั้น) และ 5400 ในตาราง NormaTimings ที่ตำแหน่งเดียวกัน (เช่น รายการที่ 5 ในแต่ละตาราง)

ตอนนี้เมื่อค่าของ 'i' เพิ่มขึ้น รหัสจะเล่น 0037 เป็นเวลา 5400 มิลลิวินาที

โปรดทราบว่าฉันได้เพิ่มตัวแปร "timeadder" ซึ่งเพิ่มเวลาพิเศษเล็กน้อยให้กับแต่ละคำพูดเมื่อเล่น ซึ่งจะทำให้ระยะห่างระหว่างคำพูดเล็กน้อยเพื่อไม่ให้ดูเหมือนทับซ้อนกัน

ความงามของวิธีนี้คือตารางที่เสร็จสมบูรณ์ในแต่ละป้อมปืนจะเหมือนกันทุกประการ! ไม่จำเป็นต้องปรับแต่งตารางเหล่านี้สำหรับแต่ละป้อมปืน คุณเพียงแค่ต้องจัดเรียงตารางหนึ่งตาราง และรหัสจะระบุสิ่งที่แต่ละป้อมปืนพูดโดยอิงจากตารางเดียวกัน

ซึ่งหมายความว่าคุณสามารถมุ่งเน้นไปที่การเขียนสคริปต์แทนการเข้ารหัส!

ถ้าใครมีวิธีที่ดีกว่านี้ ก็ยินดีรับฟัง!!

ขั้นตอนที่ 9: สรุป

สรุป
สรุป

ดังนั้นสิ่งนี้จึงใช้เวลานานกว่าที่ฉันคิด แต่ฉันรู้สึกจั๊กจี้กับผลลัพธ์ที่ได้ กิจวัตรการแชทบางรายการยังทำให้ฉันหัวเราะได้!

ฉันชอบที่จะได้ยินวิธีการอื่นในการทำสิ่งที่ฉันทำในโค้ดของฉัน ฉันแน่ใจว่ามีส่วนต่างๆ ที่สามารถเขียนใหม่และใช้หน่วยความจำน้อยลง ทำให้มีคุณลักษณะหรือตัวเลือกมากขึ้น

ฉันยังอยากเห็นไอเดียอื่นๆ รวมอยู่ใน MTC และการควบคุมป้อมปราการด้วย!

ฉันหวังว่าฉันได้จัดเตรียมแพลตฟอร์มสำหรับนักออกแบบและผู้เขียนโค้ดคนอื่นๆ เพื่อใช้ / ขโมย / เรียนรู้จาก ฉันเห็นว่ามีการใช้สิ่งนี้เพื่อช่วยให้ผู้คนเรียนรู้การเขียนโค้ด นำส่วนออกจาก MTC และ/หรือป้อมปืน เช่น "โหมดแมนนวล" และให้นักเรียนพัฒนาวิธีการของตนเองเพื่อรวมการควบคุมด้วยตนเอง!

ฉันได้เรียนรู้มากมายจากชุมชนนี้และเว็บในวงกว้างโดยทั่วไป ฉันยังคงประหลาดใจที่มีผู้คนมากมายใช้เวลามากมายในการค้นหาสิ่งต่าง ๆ และแบ่งปันให้กับโลก ฉันคิดว่าฉันควรจะนำสิ่งที่ฉันได้เรียนรู้ไปประยุกต์ใช้ แล้วแบ่งปันกับพวกคุณด้วย!

ขอให้โชคดีและสนุกกับการสร้างกองทัพป้อมปราการของคุณเอง!

แนะนำ: