‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะทำการ refactoring โค้ดของเราเพื่อทำให้ฟังก์ชัน grab ของเรามีขนาดเล็กลงและอ่านง่ายขึ้น
‫และเรากำลังจะใช้พารามิเตอร์ของเราอีกครั้ง
‫คราวนี้ เรากำลังจะสร้างฟังก์ชันที่ใช้เป็นพารามิเตอร์
‫มาดูวิธีทำกันเลยดีกว่า
‫ดังนั้นจึงเป็นแนวทางปฏิบัติที่ดีที่สุดโดยทั่วไปสำหรับฟังก์ชันต่างๆ ที่จะต้องพยายามให้พอดีกับหน้าจอเดียว
‫ในกรณีของฉัน หน้าจอของฉันใหญ่มาก แต่เรายังคงเรียนรู้อยู่ ดังนั้นจึงเหมาะสมที่จะมีฟังก์ชันที่เล็กกว่าเพื่อทำให้สิ่งต่างๆ
‫เข้าใจได้
‫และฉันคิดว่าฟังก์ชันการคว้านี้ยาวเกินไป ฉันคิดว่าเราสามารถแยกออกเป็นสองหน่วยที่ทำงานได้อย่างเป็นธรรม
‫อันแรกจะเป็นบิตที่ทำการกวาดและทำการคำนวณทั้งหมดของเวคเตอร์เริ่มต้นและสิ้นสุด
‫และให้ผลลัพธ์ของ Hit และไม่ว่าเราจะตีหรือไม่ก็ตาม บูลีนที่บอกว่าเราตีแล้ว
‫แล้วบิตที่สองอยู่ใน if คำสั่งที่เราอาจจะปล่อยให้เป็นงานของการคว้าเพราะที่จริงจะทำอย่างไรกับการโลภใช่ไหม?
‫เราต้องปลุกร่างกายที่แข็งกระด้าง
‫เราต้องคว้าองค์ประกอบที่เหมาะสมที่จะอยู่ในวิธีการที่เรียกว่าในฟังก์ชั่นที่เรียกว่าคว้า
‫แต่สิ่งอื่น ๆ นี้จะสัมผัสกันมากกว่าเล็กน้อย
‫เป็นยูทิลิตี้ที่เราต้องดึงเข้ามามากกว่า
‫ดังนั้นฉันจึงขอท้าให้คุณสร้างยูทิลิตี้นั้นขึ้นมา ให้สามารถเข้าถึงได้
‫นั่นคือสิ่งที่ฉันคิดว่าควรจะเรียกว่า
‫ฉันคิดว่ามันอธิบายสิ่งที่รหัสก้อนนั้นทำ
‫ดังนั้นให้แยกรหัสการกวาดทั้งหมดออกเป็นฟังก์ชันส่วนตัวใหม่
‫ลองคิดดูว่าพารามิเตอร์และค่าที่ส่งคืนควรเป็นอย่างไร
‫จำไว้ว่า คุณมี 2 เอาต์พุต
‫ดังนั้นเราจึงได้ตีและตีผล
‫ดังนั้นคุณต้องคิดเกี่ยวกับการพยายามใช้พารามิเตอร์ out เพื่อให้ใช้งานได้
‫ตอนนี้ ถ้าคุณต้องการคำใบ้เล็กน้อย ฉันจะแสดงให้คุณเห็นสิ่งที่ฉันจะใส่ในไฟล์ส่วนหัวในเวลาเพียงไม่กี่วินาที
‫หากไม่เป็นเช่นนั้น คุณสามารถไปและหยุดวิดีโอชั่วคราวได้ทันที
‫มิฉะนั้นฉันจะให้คำใบ้แก่คุณ
‫เรากำลังจะไปที่ grab H และด้านล่างที่เราได้ตัวจัดการฟิสิกส์ เราจะมี Boolean
‫return type เพื่อบอกเราว่ามีอะไรเกิดขึ้นไหม เราจะได้อะไร
‫คว้าลูกบอล มาคว้า a ลูกบอลในการเข้าถึง
‫จากนั้นเราต้องระบุพารามิเตอร์ซึ่งจะเป็นพารามิเตอร์ขาออก
‫มันจะเป็นการอ้างอิงที่ไม่คงที่ไปยังผลลัพธ์ของการโจมตี F
‫ใส่การอ้างอิง
‫Ampersand แล้วเราจะเรียกว่า alt hit ผลลัพธ์เช่นนั้น
‫แล้วฉันคิดว่าสิ่งนี้จะไม่เปลี่ยนแปลงอะไรในฟังก์ชันของเรา เพื่อให้เราสามารถทำให้มันมีราคาได้เช่นกัน
‫เป็นคะแนนโบนัสเล็กน้อยหากคุณคิดไว้แล้ว
‫หยุดวิดีโอชั่วคราวแล้วลองกรอกฟังก์ชันนั้นในไฟล์ C++
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫ดังนั้นฉันจะคัดลอกมัน
‫ไปที่ C++
‫ฉันจะวางไว้ใต้องค์ประกอบ Get Physics Handle เพื่อให้ตรงกับลำดับที่เราได้รับในไฟล์ส่วนหัว
‫ฉันจะเพิ่มตัว U ข้างหน้า
‫ฉันจะเยื้องมันให้ถูกต้อง
‫ฉันจะเพิ่มเครื่องหมายวงเล็บแทนเครื่องหมายอัฒภาคแล้วฉันจะย้ายรหัสที่เราได้ไปในการคว้า
‫ดังนั้นเริ่มต้นที่บรรทัด 53 สำหรับฉันลงไปที่ 65 ฉันจะตัดมันทั้งหมดออก แล้วเราจะแทนที่มันด้วยบางอย่างในไม่กี่วินาที
‫ฉันจะแปะมันเพื่อคว้าลูกบอลให้ได้ และเราได้ผลการตีที่เราสร้างขึ้น
‫สิ่งที่เราสามารถทำได้คือเราสามารถกำหนดผลลัพธ์ของการโจมตีนั้นให้เท่ากับผลลัพธ์ของ Hit ที่เราได้รับที่นี่
‫เราอาจต้องการทำเช่นนั้นถ้าเราตี
‫ดังนั้นเราจึงสามารถใส่ได้ว่าถ้าคำสั่งถูกกดเช่นนั้นและห่อการมอบหมายนี้การตีออกไปยังผลการตีภายในคำสั่ง if จากนั้นเราสามารถดำเนินการต่อและเมื่อสิ้นสุดฟังก์ชัน
‫just return has hit ดังนั้นตอนนี้จึงมี การปรับให้เหมาะสมหรือการปรับปรุงที่สามารถทำได้ที่นี่เพราะเรากำลังส่งผ่านไปยังช่องทางการกวาดและคว้าบอลที่เอื้อมถึงโดยการอ้างอิง
‫เราไม่จำเป็นต้องสร้างผลลัพธ์ Hit ใหม่ที่นี่ แล้วคัดลอกลงในผลลัพธ์ Hit
‫นั่นเป็นเพียงการสูญเสียความทรงจำ
‫สิ่งที่เราทำได้คือเราสามารถลบผลการตีที่เรากำลังสร้างอยู่ภายใน คว้าลูกบอลให้เข้าถึง
‫และแทนที่จะใช้การอ้างอิงที่เราได้ส่งผ่านเข้าไปเพื่อส่งโดยตรงไปยังการกวาดทีละช่อง
‫ดังนั้นจึงเป็นการส่งต่อการอ้างอิงนี้ไปยังฟังก์ชันลงใน sweep single by channel โดยที่มันจะถูกเติมเข้าไป
‫และนั่นทำให้ไม่จำเป็นต้องใช้ if statement ซึ่งทำให้ฟังก์ชันนี้อ่านเร็วขึ้นและง่ายขึ้นเล็กน้อย
‫และอันที่จริงฉันไม่คิดว่าเราจำเป็นต้องมีตัวแปรในการจัดเก็บ
‫เราสามารถไปข้างหน้าและกลับมา
‫มันจะสะอาดกว่ามากในการส่งคืนผลลัพธ์ช่องการกวาดโลก
‫ดังนั้นเราจึงส่งผลลัพธ์จากสิ่งนั้นกลับไปสู่การคว้าที่สามารถเข้าถึงได้หรือใครก็ตามที่เรียกมัน
‫พูดถึงใครก็ตามที่เรียกมัน ตอนนี้เราต้องขึ้นไปคว้าของเรา
‫เราจำเป็นต้องสร้างผลงานของเราที่ไหนสักแห่ง
‫เราต้องสร้างมันขึ้นมาที่นี่
‫ผลลัพธ์ของ Hit นี่คือสิ่งที่เรากำลังจะเติม
‫จากนั้นเราจะสร้างตัวแปรบูลีนซึ่งจะเป็นชุดของ Hit ที่เท่ากับว่าสามารถคว้าได้
‫และเราจะส่งต่อผลลัพธ์ของ Hit โดยการอ้างอิงที่เราต้องการ
‫แล้วถ้าเราโดน เราจะดำเนินการโค้ดโลภ
‫สิ่งที่ยอดเยี่ยม
‫เราได้ย้ายบางอย่างไปยังฟังก์ชันเพื่อให้ฟังก์ชันการคว้านี้พอดีกับหน้าจอเดียว
‫และเราได้ใช้พารามิเตอร์ออกมาอีกครั้ง คราวนี้สร้างฟังก์ชันสำหรับตัวเราเองที่ใช้พารามิเตอร์เหล่านี้อย่างจริงจัง
‫แล้วพบกันใหม่ในวิดีโอหน้าครับ