‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะตั้งค่าการติดตามเรขาคณิตแรกของเรา เพื่อที่ว่าเมื่อเราไปดูการ์กอยล์ของเราและเราเข้าใกล้พอภายในระยะแล้ว
‫มันจะพิมพ์ชื่อนักแสดงที่ถูกโจมตีด้วย ร่องรอย
‫มาดูกันว่าเราจะทำสิ่งนี้ได้อย่างไร ในที่สุดเราก็พร้อมที่จะจัดการกับการกวาดทีละช่อง
‫มีหลายชิ้นที่เราต้องมีเพื่อให้มันใช้งานได้
‫แต่สุดท้าย เราก็มา
‫มาดูไวยากรณ์ของฟังก์ชันนี้กัน
‫ดังนั้นเราจึงอยู่ในที่ที่ดีกว่ามากที่จะเข้าใจว่าเกิดอะไรขึ้นที่นี่เมื่ออยู่ในประเภทเหล่านี้
‫ค่าที่ส่งกลับเป็นค่าบูลีน ซึ่งโดยทั่วไปจะบอกเราว่าเราพบอะไรจากการกวาดหรือไม่
‫อาร์กิวเมนต์ที่สอง อย่างที่คุณเห็นที่นี่ มันคือการอ้างอิง
‫มีเครื่องหมายนี้
‫และไม่สำคัญว่าจะมีการเว้นวรรคหลังเครื่องหมายหรือช่องว่างระหว่างชื่อตัวแปร
‫ตราบใดที่มีเครื่องหมายและหลังประเภทที่บอกว่าประเภทนั้นเป็นข้อมูลอ้างอิงและเป็นประเภทที่เรียกว่าผลการตี
‫F คุณจะเห็นได้ว่ามันเป็นโครงสร้าง
‫ดังนั้นผลการตี F นี้จึงเป็นการตีออก
‫นั่นคือผลที่ออกมาจากการกวาด
‫เราสามารถเห็นได้ว่ามีสิ่งใดถูกโจมตีและมีโครงสร้างเพราะมีหลายสิ่งที่แตกต่างกัน ชิ้นส่วนของข้อมูลที่สามารถออกมาจากการกวาดล้างนี้ได้
‫จากนั้นเรามีการอ้างอิงเวกเตอร์ f คงที่
‫นี่จึงใช้เวกเตอร์เริ่มต้นโดยอ้างอิงแทนที่จะคัดลอก
‫เช่นเดียวกับเวกเตอร์สิ้นสุด, เราก็ได้การหมุน
‫นี่คือการหมุนของรูปร่างโดยใช้ f quat ซึ่งเป็นโครงสร้างทางเลือกแทนการใช้
‫f rotator
‫เราจะมาดูกันว่าโดยพื้นฐานแล้วเราจะหมุนเป็นศูนย์ได้อย่างไร เพราะเราใช้ทรงกลม
‫มันไม่สำคัญจริงๆ
‫สิ่งต่อไปที่เข้ามาคือ Trace Channel และเราจะมาดูกันว่าจะรู้ว่า Trace channel
‫ของเราเรียกว่าอะไรใน C++
‫แล้วเราก็ได้รูปทรงการชนกัน ซึ่งจะเป็นอาร์กิวเมนต์สุดท้ายที่เราต้องจัดเตรียม และเราจะดูว่าเราจะสร้างทรงกลมของรัศมีหนึ่งได้อย่างไรด้วยการทำเช่นนั้น
‫แต่ก่อนที่เราจะเริ่มต้น เราจำเป็นต้องรู้ว่ารัศมีนั้นคืออะไรและมีการกำหนดค่าอย่างไร
‫ดังนั้นเราจะไปที่จุด h คว้า เราจะลบฟังก์ชันเหล่านี้ที่เราใช้เป็นตัวอย่างสำหรับการอ้างอิงและพารามิเตอร์ออก
‫และเรากำลังจะสร้างคุณสมบัติใหม่ ซึ่งจะแก้ไขได้ทุกที่ และมันจะเป็นทุ่นที่เรียกว่ารัศมีการคว้า
‫และเราจะตั้งค่านั้นเป็น 101 เมตร
‫ตอนนี้เรามาดู C++ กันและลบการอ้างอิงถึงความเสียหายของการพิมพ์และมีความเสียหาย และเราสามารถลบสิ่งเหล่านั้นออกจากองค์ประกอบเห็บได้เช่นกัน
‫คำสั่ง if ทั้งหมดและตำแหน่งที่เราส่งความเสียหายเพราะที่นี่เรากำลังวาดบรรทัดการดีบักของเราและตอนนี้เราต้องการโทรไปที่การกวาดทีละช่อง
‫เราจะพิมพ์สปอย
‫เราจะพิมพ์ get world วงเล็บเพราะเรารู้ว่านี่เป็นฟังก์ชันของ new world
‫object
‫จากนั้นเราสามารถทำลูกศรได้เพราะเรารู้ว่า get world คืนค่าพอยน์เตอร์
‫จากนั้นเราจะทำการกวาดทีละแชนเนลเช่นนั้น และเราจะต้องป้อนพารามิเตอร์ out เพื่อให้มันเติมเป็นอาร์กิวเมนต์แรก
‫ที่นี่.
‫ดังนั้น เราจะสร้างตัวแปรที่จะว่าง ซึ่งจะเติมข้อมูล และต้องมีประเภทที่ถูกต้อง
‫มันจะเป็นผลลัพธ์ของ if f hit และเราแค่จะเรียกตัวแปรเองว่า hit result ใส่เครื่องหมายอัฒภาคต่อท้ายเพราะเราไม่ได้เริ่มต้น
‫เราไม่ได้ให้ค่าใดๆ กับมัน แต่เรา' จะส่งต่อไปเพื่อให้ได้รับค่าโดยฟังก์ชันการกวาดเดี่ยวโดยช่อง
‫นั่นคือผลการตีของเรา
‫จากนั้นเราต้องผ่านเวกเตอร์เริ่มต้นและจุดสิ้นสุดซึ่งเรารู้ว่าจะไม่ถูกคัดลอก แต่นำไปอ้างอิง
‫ตอนนี้ เราต้องเติมค่าการหมุนที่เราสามารถทำได้ด้วยเครื่องหมายโคลอน f อย่างง่าย เอกลักษณ์โคลอน
‫ซึ่งบอกเราโดยพื้นฐานว่านี่คือการไม่หมุน
‫นั่นเป็นเพียงภาษาแปลก ๆ เล็กน้อยสำหรับมัน
‫เป็นการพูดทางคณิตศาสตร์สำหรับความหมายว่านี่ไม่ใช่การหมุน
‫ต่อไป เราต้องการช่องสัญญาณการชนกันของร่องรอย
‫ทีนี้ เราจะค้นหาช่องทางการชนกันของร่องรอยนั้นได้อย่างไร
‫ถ้าเราไปที่โฟลเดอร์ที่เก็บโปรเจ็กต์ของเราไว้ และเราเข้าไปที่ config จากนั้นเราไปที่เอ็นจิ้นเริ่มต้นของ
‫INI คลิกขวาแล้วเปิดด้วยโค้ด Visual Studio
‫และที่นี่ฉันต้องการค้นหา Grabber
‫ดังนั้น คุณจะสามารถเห็นช่องทางตอบสนองการชนของตัวจับ
‫และโดยพื้นฐานแล้วมันถูกตั้งค่าไว้ที่นี่ในเครื่องมือเริ่มต้นของ INI
‫มีการกล่าวถึงเพียงครั้งเดียวในไฟล์ทั้งหมด และคุณสามารถดูชื่อช่องได้
‫นี่คือชื่อช่องในภาษา C++
‫มันไม่มากนัก
‫ใช่ แต่มันคือ s อี ค.
‫Game Trace Channel 2 เพื่อให้เราสามารถไปข้างหน้าและคัดลอกสิ่งนั้น จากนั้นเราสามารถกลับไปที่คว้า CP ของเราแล้ววางที่นี่เป็นช่องทางการติดตามที่เราต้องการ
‫ทีนี้ บรรทัดนี้ค่อนข้างยาว และสิ่งที่เราทำได้เพื่อชดเชยก็คือ เราสามารถใส่พารามิเตอร์แต่ละตัวแยกกัน
‫หรืออย่างน้อยก็กระจายออกไป
‫ดังนั้นจุดเริ่มต้นและจุดสิ้นสุดอาจเหมือนกัน
‫เกณฑ์การระบุตัวตนอยู่บนหนึ่งบรรทัด ช่องทางการติดตามอยู่ในอีกบรรทัดหนึ่งเช่นนั้น
‫และนั่นทำให้เรามีพื้นที่เพิ่มขึ้นเล็กน้อยสำหรับการอ่านรายการอาร์กิวเมนต์ยาวๆ เหล่านี้
‫ทีนี้ ถ้าเรากลับไปที่เอกสาร เราจะเห็นว่าสิ่งต่อไปที่เราต้องส่งเข้าไปที่นี่คือรูปร่างการชนกันของ
‫F
‫เราจึงต้องสร้างรูปทรง
‫บางทีเราอาจจะทำสิ่งนี้โดยแยกตัวแปรที่ด้านบนสุด
‫ฉันจะทำก่อนผลการตี F เพื่อให้ชัดเจนว่าผลลัพธ์การตี F เป็นพารามิเตอร์เอาต์จริง
‫ๆ
‫ฉันจะปล่อยให้สิ่งนั้นเป็นสิ่งสุดท้ายก่อนการเรียกใช้ฟังก์ชันเสมอ
‫เราจะสร้างรูปร่างการชนกันของ F ซึ่งเราจะเรียกว่าทรงกลม และเราจะกำหนดให้มันเท่ากับ
‫F รูปร่างการชนกันของ F, ทวิภาค, ทวิภาค, สร้างทรงกลม
‫นั่นจะสร้างทรงกลมใหม่ รูปทรงการชนกันให้เรา
‫และอาร์กิวเมนต์ของฟังก์ชันนี้คือรัศมีทรงกลมที่เราได้รับเป็นตัวแปรรัศมีการคว้าที่เรากำหนดค่าเป็นคุณสมบัติ
‫U แต่มีเครื่องหมายอัฒภาคที่ส่วนท้ายของบรรทัดนี้ และเราสามารถส่งผ่านทรงกลมเป็นอาร์กิวเมนต์สุดท้ายไปยัง
‫ฟังก์ชัน Sweep channel และใส่เครื่องหมายอัฒภาคที่ท้ายบรรทัดนั้น
‫อีกอย่างหนึ่งก็คือ ฟังก์ชันนี้ที่เราทราบจะคืนค่าบูลีน ซึ่งก็คือว่าเราได้โจมตีอะไรหรือเปล่า
‫ผมจะใส่ผลลัพธ์ลงในตัวแปรบูลีนที่เรียกว่า has hit และนั่นคือสิ่งที่เราจะใช้ในฟังก์ชันนี้ในภายหลัง
‫เลยอยากท้าให้พิมพ์ชื่อดาราดัง
‫ตอนนี้เราได้กวาดล้างเกิดขึ้นแล้ว
‫เราควรจะได้รับผลบางอย่างจากมัน
‫ดังนั้นใช้คำสั่ง if เพื่อพิมพ์ว่าเรามีสิ่งใดเลย
‫ถ้าบูลีนนั้นเป็นจริง นั่นคือตอนที่เรากำลังจะพิมพ์ชื่อนักแสดง
‫คุณจะได้นักแสดงที่ Sphere Trace ถูกโจมตีโดยใช้โครงสร้างผลลัพธ์ของ Hit
‫มันมีวิธีการซึ่งคุณสามารถเข้าถึงได้ด้วยตัวดำเนินการจุดเพราะเป็นโครงสร้าง
‫ไม่ใช่ตัวชี้ไปยังโครงสร้าง
‫คุณสามารถทำการจุด รับนักแสดง และใช้วงเล็บ และนั่นจะคืนค่าตัวชี้นักแสดงให้คุณ
‫จากนั้นใช้ตัวชี้แบบแอ็คทีฟ คุณจะได้ชื่อนักแสดงโดยใช้วิธีรับชื่อนักแสดงหรือวิธีการติดป้ายกำกับ
‫และคิดว่าคุณต้องการใช้ตัวดำเนินการจุดหรือลูกศรสำหรับสิ่งนี้ จากนั้นรวบรวมและทดสอบโดยพิมพ์ชื่อนักแสดงนั้นออกมาแล้วดูว่าคุณเป็นอย่างไร
‫สามารถตีในที่เกิดเหตุ
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫เราจะเริ่มด้วยการสร้างคำสั่ง if
‫ดังนั้นถ้าถูกโจมตี เราก็จะต้องจัดฟัน และเราจะทำอย่างแรกเลย เราต้องการได้รับคะแนนของนักแสดงคนนั้น
‫ดังนั้น นักแสดง ดารา นักแสดง ดารา นักแสดง เท่ากับ ผลการตี
‫รับจุด
‫นักแสดงชาย.
‫วงเล็บ
‫ชอบ.
‫จากนั้นเราจะทำบันทึก u และเราจะเขียน hit นักแสดงโคลอน เปอร์เซ็นต์ sx และเราสามารถตีนักแสดง และเนื่องจากเป็นตัวชี้ตรงนี้
‫เราสามารถตีนักแสดงลูกศร รับชื่อนักแสดงหรือป้ายกำกับ แล้วบาง วงเล็บ
‫และเนื่องจากนี่คือสตริง เราจึงต้องใส่ดาวไว้ที่ด้านหน้าของ Shebang ทั้งหมด เพื่อให้สามารถแสดงในบันทึก
‫Yui ของเราได้อย่างเหมาะสม
‫เอาล่ะตอนนี้เราต้องดำเนินการต่อไปและรวบรวมสิ่งนี้
‫เมื่อเราอยู่ในฉากแล้ว ให้เปิดล็อกเอาท์พุตและเชื่อมต่อเข้ากับเลย์เอาต์เพื่อให้เรามองเห็นได้ในขณะที่เราเล่นและกดปุ่มเล่น
‫และทันที คุณจะเห็นว่าเรากำลังตีรูปปั้นกอบลิน
‫ถ้าฉันหันกลับไปมองอย่างอื่นที่คุณเห็น ก็ไม่ชัดเจนนักว่าฉันไม่ได้ตีอะไรหรือว่ามันไม่แสดงอะไรเลย
‫สิ่งที่ฉันจะทำคือฉันจะใส่ค่าอื่นใน if คำสั่งของเราที่นี่ ใส่วงเล็บเพิ่มเติมแล้วฉันจะทำ
‫U log อีกอัน
‫และคราวนี้เนื้อความจะบอกว่า ไม่มีนักแสดงคนไหนโดน มาคอมไพล์ใหม่แล้วไปเล่นในเอดิเตอร์กัน
‫และคุณสามารถดูได้ในขณะนี้
‫มันบอกว่าไม่มีนักแสดงคนไหนโดนตลอดเวลาจนกว่าฉันจะไปดูการ์กอยล์
‫และตอนนี้มันบอกว่าการ์กอยล์เป็นสิ่งที่ถูกตี
‫ถ้าฉันถอยออกมาไกลเกินกว่าจะถึงระยะ คุณจะเห็นว่าไม่มีนักแสดงคนใดถูกตีอีกแล้ว
‫สิ่งที่ดี
‫ตอนนี้เราได้ทำการกวาดเรขาคณิตด้วยวัตถุทรงกลมแล้ว และเราจะเห็นว่ามันทำปฏิกิริยาเฉพาะกับนักแสดงในช่อง
‫Trace ของเราเท่านั้น เช่น Gargoyle เป็นสิ่งเดียวที่เราตั้งค่าไว้ในขณะนี้
‫นั่นคือสิ่งเดียวที่มันค้นพบ
‫เจอกันใหม่ตอนหน้าค่ะ