‫เราจะสร้างฟังก์ชันไฟ และเชื่อมโยงฟังก์ชันนี้กับปุ่มซ้ายของเมาส์
‫และที่นี่ คุณจะเห็นว่าฉันกำลังวาดทรงกลมดีบักที่ปลายกระบอกป้อมปืนของเรา เพียงเพื่อพิสูจน์ว่าการทำแผนที่การดำเนินการนี้ใช้ได้ผล
‫เมื่อใดก็ตามที่ฉันคลิกปุ่มซ้ายของเมาส์ มีบางอย่างเกิดขึ้น
‫เฮ้ ยินดีต้อนรับกลับมา
‫ในวิดีโอนี้ เราจะพูดถึงการสร้างฟังก์ชันไฟหรือฟังก์ชันที่เราสามารถใช้ได้เมื่อเราต้องการวางไข่ของโพรเจกไทล์
‫ดังนั้น เราจะสร้างฟังก์ชันไฟ และเราจะผูกมันเข้ากับการทำแผนที่การดำเนินการ
‫ตอนนี้ เราใช้การแมปแกน
‫การทำแผนที่การดำเนินการจะคล้ายกัน
‫มาพูดถึงมันตอนนี้
‫นี่คือส่วนของภาพหน้าจอของการทำแผนที่การดำเนินการกับไฟที่เรามีในการตั้งค่าโครงการของเรา
‫คุณจะเห็นว่าเรามีปุ่มซ้ายของเมาส์ที่กำหนดให้กับการทำแผนที่การยิง
‫ตอนนี้การทำแผนที่การดำเนินการเป็นเหมือนการทำแผนที่แกนเป็นอย่างมาก
‫คุณสามารถกำหนดคีย์หรือปุ่มได้
‫และเช่นเดียวกับการทำแผนที่แกน จำเป็นต้องมีฟังก์ชันที่สามารถผูกไว้กับการทำแผนที่การดำเนินการได้
‫ตอนนี้ การแมปแกนจะยิงทุกเฟรมของเกม
‫มันเหมือนกับฟังก์ชัน tic และค่าทศนิยมที่ส่งผ่านในการเปลี่ยนแปลงขึ้นอยู่กับว่ามีการกดปุ่มใด
‫การทำแผนที่การดำเนินการจะแตกต่างกันเล็กน้อย
‫ฟังก์ชันเรียกกลับที่ผูกไว้กับการแมปการดำเนินการจะไม่รับพารามิเตอร์อินพุต และสิ่งที่เกิดขึ้นคือเมื่อคุณกดปุ่ม
‫ฟังก์ชันจะถูกเรียก
‫สิ่งที่เกิดขึ้นภายในฟังก์ชั่นนั้นขึ้นอยู่กับเราในฐานะนักพัฒนา
‫ตอนนี้ การทำแผนที่การดำเนินการเป็นหนึ่งเดียว
‫ไม่ได้เกิดขึ้นทุกเฟรม
‫จะเกิดขึ้นเพียงครั้งเดียวเมื่อคุณกดปุ่ม
‫ดังนั้นหากปล่อยปุ่มแล้วกดอีกครั้ง ฟังก์ชันจะถูกเรียกอีกครั้ง
‫ตอนนี้ เมื่อเราผูกฟังก์ชันเข้ากับการแมปแกน เราใช้แกนผูกสำหรับการแมปการดำเนินการ เราใช้ฟังก์ชันที่เรียกว่าการดำเนินการผูก
‫และจะใช้อินพุตที่คล้ายกับแกนผูก
‫ใช้ชื่อของการแม็พการดำเนินการเป็นตัวอักษรสตริง
‫นอกจากนี้ยังต้องมีตัวชี้ไปยังชั้นเรียน
‫เรากำลังผูกมัดฟังก์ชันที่เราสามารถใช้ได้ และแน่นอนว่าต้องมีฟังก์ชันเรียกกลับ
‫ตอนนี้ พารามิเตอร์เพิ่มเติมที่ใช้แกนผูกนั้นไม่ต้องการเป็นค่าคงที่ enum ที่ระบุว่าเราต้องการให้ฟังก์ชันนี้ถูกเรียกใช้เมื่อเรากดปุ่มหรือเมื่อเราปล่อยปุ่ม
‫ดังนั้นมีสองตัวเลือกสำหรับพารามิเตอร์อินพุตนี้คือค่าคงที่ enum, i อี กดและค่าคงที่ enum
‫ผม อี การเผยแพร่.
‫ซึ่งหมายความว่าเราสามารถเรียกการผูกมัดที่ส่งผ่านใน i อี กดถ้าเราต้องการผูกฟังก์ชั่นการโทรกลับเมื่อเรากดปุ่มและแทนถ้าเราใช้
‫i อี ปล่อยแล้วฟังก์ชันเรียกกลับของเราจะถูกเรียกเมื่อปล่อยปุ่มสำหรับฟังก์ชันไฟของเรา
‫เรากังวลว่าเมื่อเรากดปุ่ม
‫เรามาสร้างฟังก์ชันไฟและผูกมันเข้ากับการทำแผนที่การกระทำการยิงกัน
‫ตอนนี้ฉันอยู่ที่ฐานวางไข่ และเหตุผลที่ฉันมาที่นี่ในบ่อฐานก็เพราะว่าฟังก์ชันไฟนี้เป็นสิ่งที่เราสามารถใช้ได้ในคลาสรถถังและในคลาสหอคอย
‫ดังนั้นถ้าเราวางไว้ที่นี่ในบ่อฐาน ทั้ง Tank และ Tower จะสืบทอดฟังก์ชันนี้
‫และเนื่องจากทั้งรถถังและหอคอยกำลังยิงขีปนาวุธ พวกเขาจึงสามารถสืบทอดฟังก์ชันและใช้งานได้
‫ตอนนี้ เนื่องจากฉันต้องการเข้าถึงฟังก์ชันในคลาสย่อยทั้งสอง ฉันสามารถวางฟังก์ชันนี้ไว้ในส่วนที่มีการป้องกัน
‫เหมือนกับการหมุนป้อมปืน
‫ภายใต้การหมุนของป้อมปืน ฉันจะสร้างฟังก์ชัน void ที่เรียกว่า fire ที่ไม่ต้องใช้อินพุต
‫และเราสามารถกำหนดฟังก์ชันไฟตาม CPP ได้
‫ดังนั้นนี่คือพื้นฐานของ CPP และอยู่ใต้ป้อมปืนหมุน ฉันจะวางฟังก์ชันไฟและเราจำเป็นต้องมีคุณสมบัติตามชื่อฟังก์ชันนี้อย่างเต็มที่และกำหนดฟังก์ชันให้กับมัน
‫ตอนนี้เรามีฟังก์ชั่นไฟ
‫ขั้นตอนต่อไปคือการผูกสิ่งนี้กับการทำแผนที่การดำเนินการ
‫ตอนนี้เราเพียงต้องการผูกฟังก์ชันนี้ในคลาสรถถังเพราะว่าแท็งก์เป็นคลาสเดียวที่จะรับอินพุตจากผู้ใช้
‫เราจะเรียกใช้ฟังก์ชันไฟในคลาสทาวเวอร์ในภายหลัง แต่นั่นจะเป็นผลมาจากโค้ดที่เราสร้างขึ้น
‫ไม่ใช่เป็นผลมาจากการป้อนข้อมูลของผู้ใช้
‫ดังนั้นเราจึงอยู่ใน Tank CP และเราจะผูกสิ่งนี้และตั้งค่าองค์ประกอบอินพุตของผู้เล่นเหมือนกับที่เราใช้แกนผูก
‫เราจะใช้องค์ประกอบอินพุตของผู้เล่น
‫ดังนั้นองค์ประกอบอินพุตของผู้เล่นและฟังก์ชันจะเป็นการรวมการกระทำ
‫ตอนนี้อินพุตแรกจะเป็นสตริงลิเทอรัล ซึ่งเราจะห่อในแมโครข้อความตามปกติ
‫และการทำแผนที่การกระทำนี้เรียกว่าไฟ
‫ตอนนี้พารามิเตอร์ถัดไปจะเป็นค่าคงที่ enum ที่กำหนดว่าเราต้องการให้ฟังก์ชันนี้ถูกเรียกเมื่อเรากดปุ่มหรือไม่
‫เทียบกับเมื่อเราปล่อยปุ่ม
‫และเราจะใช้ ฉันขีดเส้นใต้กด
‫เนื่องจากเราต้องการเรียกฟังก์ชันของเราเมื่อเรากดปุ่ม
‫ต่อไปคืออ็อบเจ็กต์คลาสผู้ใช้ที่จะเป็นสิ่งนี้
‫และในที่สุด เราก็มีฟังก์ชันเรียกกลับของเรา ดังนั้นเราจึงสามารถพูดได้ว่ารถถังถูกยิง
‫และตอนนี้ฟังก์ชันการยิงของเราเชื่อมโยงกับการทำแผนที่การกระทำการยิง
‫ดังนั้นเราจึงรู้ว่าฟังก์ชั่นการยิงของเราเชื่อมโยงกับการทำแผนที่การกระทำของไฟ แต่เราต้องการการยืนยันด้วยภาพและนั่นคือสิ่งที่ท้าทายของคุณ
‫ในฟังก์ชันไฟ ฉันอยากให้คุณวาดทรงกลมดีบัก
‫เราได้เห็นวิธีการทำเช่นนี้แล้ว ดังนั้นให้กรอกพารามิเตอร์ด้วยค่าที่คุณคิดว่าเหมาะสม
‫ใช้ตำแหน่งของจุดวางไข่ของโพรเจกไทล์
‫ตอนนี้จุดวางไข่ของโพรเจกไทล์เป็นส่วนประกอบฉากการใช้งาน และคุณเห็นว่าส่วนประกอบมีฟังก์ชันที่เรียกว่ารับตำแหน่งส่วนประกอบ
‫ส่งคืนเวกเตอร์ F
‫นี่คือสิ่งที่คุณสามารถใช้เพื่อรับตำแหน่งจุดวางไข่ของโพรเจกไทล์
‫ตอนนี้เมื่อคุณเรียก Draw debug sphere ให้ใช้ระยะเวลาประมาณ 3 วินาที เพื่อให้เรามองเห็นทรงกลมนั้นครู่หนึ่งก่อนที่มันจะหายไป
‫หยุดวิดีโอชั่วคราวและทำตอนนี้
‫ตกลง.
‫เลยกลับมาที่ Bass Pond และ Bass Pond
‫CP ฉันจะรวมตัวช่วยดีบักวาด
‫ดังนั้นเราจึงมีสิทธิ์เข้าถึงการวาดทรงกลมดีบัก
‫ดังนั้นฉันจะบอกว่ารวมตัวช่วยดีบักวาด
‫และตอนนี้ในฟังก์ชันไฟ เราสามารถวาดทรงกลมดีบักได้
‫ตอนนี้ สิ่งแรกที่ฉันต้องการทำคือหาตำแหน่งของจุดวางไข่ของโพรเจกไทล์
‫ตอนนี้ฉันสามารถสร้างเวกเตอร์ f ในพื้นที่สำหรับสิ่งนี้และฉันสามารถเรียกตำแหน่งจุดวางไข่ของโพรเจกไทล์นี้และฉันสามารถเริ่มต้นได้โดยใช้จุดวางไข่ของโพรเจกไทล์
‫และเรียกรับตำแหน่งส่วนประกอบ
‫ตอนนี้ฉันมีตำแหน่งของจุดวางไข่ของโพรเจกไทล์แล้ว และนี่คือสิ่งที่ฉันสามารถใช้เมื่อเรียก Draw debug
‫sphere ได้
‫ผมจะเรียก draw debug sphere
‫และสำหรับการป้อนข้อมูลครั้งแรก เราต้องการโลก และเรารู้ว่าเราสามารถรับโลกได้โดยใช้ get world next
‫เราต้องการจุดศูนย์กลางของทรงกลมที่จะเป็นจุดวางไข่ของโพรเจกไทล์
‫นั่นคือสิ่งที่ฉันส่งผ่านเป็นพารามิเตอร์ที่สอง
‫และต่อไปเราต้องการรัศมีของทรงกลม
‫ตอนนี้ฉันจะมีทรงกลมขนาดเล็ก
‫ผมจะให้รัศมี 25 F สำหรับจำนวนเซ็กเมนต์ที่ผมจะใช้ 12 และสำหรับสี ผมสามารถใช้สี
‫F ได้
‫อ่านเลย วาดเส้นต่อเนื่องสี่เส้น
‫เราจะให้สายของเราแขวนอยู่ 3 วินาทีเพื่อให้เราสามารถทำให้สิ่งนี้เป็นเท็จได้เพราะเราไม่ต้องการให้สิ่งเหล่านี้คงอยู่ตลอดไป
‫เราจะให้ Debug Sphere นี้มีอายุสาม F ดังนั้น เรามาคอมไพล์กันตอนนี้ และฉันจะกดปุ่มเล่นและคลิก
‫และตอนนี้ เราจะเห็น Debug Sphere ของเรา และแน่นอนว่าจะหายไปภายใน 3 วินาที
‫นี่เป็นการยืนยันที่ดีว่าการทำแผนที่การดำเนินการของเราทำงาน และยังทำให้เราตรวจสอบตำแหน่งของจุดวางไข่ของโพรเจกไทล์ได้อีกด้วย
‫เมื่อเราเริ่มวางไข่แล้ว เรารู้ว่าพวกมันจะวางไข่ที่ตำแหน่งที่ถูกต้องตามที่ระบุโดยทรงกลมดีบัก
‫เท่านี้ก็เยี่ยมแล้ว
‫ในวิดีโอนี้ เราได้สร้างฟังก์ชันไฟ และเชื่อมโยงมันเข้ากับการทำแผนที่การกระทำการยิง
‫และเพื่อพิสูจน์ว่ามันใช้งานได้ เราวาดทรงกลมดีบักที่จุดวางไข่ของโพรเจกไทล์ทุกครั้งที่เราคลิกปุ่มซ้ายของเมาส์
‫ดังนั้นเราจึงมีฟังก์ชั่นการยิง เราเกือบจะพร้อมที่จะเริ่มวางไข่โพรเจกไทล์แล้ว
‫และเรายังได้วางฟังก์ชันนี้ไว้ในคลาสเบสปองอีกด้วย
‫เพื่อให้หอคอยของเราสามารถใช้งานได้
‫ในวิดีโอหน้า เราจะพูดถึงว่าหอคอยของเราจะใช้ฟังก์ชันนี้อย่างไร
‫เจอกันเร็วๆนี้ครับ