‫เฮ้ ยินดีต้อนรับกลับมา
‫ในวิดีโอนี้ เราเกี่ยวข้องกับเงื่อนไขการชนะและการแพ้
‫นี่เป็นหนึ่งในสิ่งสุดท้ายที่เราจะจัดการในโปรเจ็กต์เกมนี้
‫ทีนี้มาดูที่แผนส่วนของเรากัน
‫ตอนนี้ เราได้ตรวจสอบห้ารายการแรกในแผนส่วนของเราแล้ว และสองรายการสุดท้ายเป็นเอฟเฟกต์พิเศษและเงื่อนไขการชนะและแพ้
‫และฉันต้องการเปลี่ยนสองข้อสุดท้ายนี้และจัดการกับเงื่อนไขการชนะและการแพ้เพียงเพราะนี่เป็นตรรกะการเขียนโปรแกรมการเล่นเกมสุดท้ายของเราและเอฟเฟกต์พิเศษนั้นสวยงามและเหมือนการตกแต่งเพิ่มเติมเพื่อให้เราสามารถจัดการกับสิ่งเหล่านั้นในตอนท้าย
‫ในวิดีโอนี้ เราจะสร้างฟังก์ชันเกมโอเวอร์ เพื่อให้เรารู้ว่าเกมชนะหรือแพ้เมื่อใด
‫และเพื่อที่จะชนะเกมนี้ เราต้องนับจำนวนหอคอยในโลก เพราะเมื่อเราทำลายหอคอยทั้งหมดแล้ว
‫เราก็จะรู้ว่าเราชนะเกมแล้ว
‫และถ้าตัวถังเองถูกทำลาย เราก็ถือได้ว่าสภาพนั้นเสีย
‫ดังนั้นฉันกลับมาที่นี่ในโหมดเกม และสิ่งแรกที่ฉันต้องการทำคือสร้างเหตุการณ์ที่พิมพ์เขียวได้
‫เรามีฟังก์ชันเริ่มเกม ซึ่งเราสามารถเรียกได้จาก C++ แต่เรากำลังนำตรรกะไปใช้ในโหมดเกม
‫Blueprint ขอบคุณ Blueprint Implementable Event ฉันต้องการสร้างอีกอันหนึ่งสำหรับเกมนี้
‫ฉันจะสร้างฟังก์ชัน void ที่เรียกว่า Game Over
‫และสำหรับอันนี้ ฉันต้องการรับพารามิเตอร์อินพุตบูลีนที่เรียกว่าเกม B one
‫และแน่นอนว่านี่จะเป็นเหตุการณ์ที่พิมพ์เขียวได้ เพราะสิ่งเดียวที่ฉันต้องการจัดการกับฟังก์ชันนี้คือการแสดงว่าเราแพ้หรือชนะเกม
‫และเราสามารถทำได้จากพิมพ์เขียว
‫ดังนั้นเราจึงมีฟังก์ชั่นเกมโอเวอร์
‫ตอนนี้เราจำเป็นต้องรู้ว่าเราควรเรียกใช้ฟังก์ชันนี้เมื่อใด
‫อย่างแรกเลย เรารู้ว่าเราสามารถเรียกฟังก์ชันนี้เมื่อเราแพ้เกม และนั่นจะเป็นไปได้ถ้ารถถังตาย
‫ไปที่ฟังก์ชั่นการตายนักแสดงของเราที่นี่ในการปรับแต่งโหมดเกมรถถัง CP และเราเห็นว่าถ้านักแสดงที่ตายคือรถถัง
‫เรากำลังจัดการกับการทำลายรถถังและเรากำลังตั้งค่าสถานะเปิดใช้งานเป็นเท็จ
‫อีกสิ่งที่เราสามารถทำได้ที่นี่คือจบเกมโดยเพียงแค่เรียกเกมจบและบูลีนนี้เป็นเกมเดียวที่เราสามารถส่งต่อเป็นเท็จได้
‫เพื่อที่จะดูแลเกมที่แพ้ อย่างน้อยก็จากฝั่ง C++
‫ตอนนี้เราจำเป็นต้องรู้ว่าเมื่อใดเราควรชนะเกม
‫ที่นี่นักแสดงเสียชีวิต
‫หากผู้ตายถูกโยนไปที่หอคอย เรารู้ว่าเราเพิ่งทำลายหอคอย
‫ตอนนี้ นี่จะเป็นสถานที่ที่สมบูรณ์แบบในการอัปเดตจำนวนหอคอยหรือตัวแปรประเภทจำนวนเต็มที่จะติดตามจำนวนหอคอยในโลกที่มีอยู่ในปัจจุบัน
‫ตอนนี้.
‫ในการทำเช่นนั้น เราจำเป็นต้องมีตัวแปรเพื่อติดตามจำนวนหอคอย เพื่อให้เราสามารถเพิ่มตัวแปรส่วนตัวที่นี่ในไฟล์
‫H
‫และฉันต้องการทำอย่างนั้นที่นี่
‫ดังนั้นฉันจะสร้าง INT 32 และฉันจะเรียกหอคอยเป้าหมายนี้
‫ตอนนี้เราสามารถเริ่มต้นสิ่งนี้ได้ทันทีจากค้างคาวเป็นค่าศูนย์ แต่เราต้องอัปเดตสิ่งนี้เมื่อจำนวนหอคอยลดลง
‫และเราต้องตั้งค่านี้เป็นจำนวนหอคอยที่มีอยู่ในโลกด้วย
‫ตอนนี้เราสามารถฮาร์ดโค้ดได้ถึงสี่แต่จะเกิดอะไรขึ้นเมื่อเราเริ่มเพิ่มหอคอยในระดับของเรา
‫ถ้าอย่างนั้นมันก็จะซับซ้อนขึ้นเล็กน้อย
‫ดังนั้นสิ่งที่ผมอยากจะทำคือดูว่ามีหอคอยกี่แห่งในโลกนี้
‫ตอนนี้ ฉันสามารถสร้างฟังก์ชันสำหรับสิ่งนี้ที่คืนค่า 32 และฟังก์ชันนี้สามารถค้นหาว่ามีหอคอยกี่แห่งในโลกและส่งคืนตัวเลข
‫ผมจะเรียกฟังก์ชันนี้ว่า หาจำนวนหอคอยเป้าหมาย
‫ไปข้างหน้าและให้ฟังก์ชันนี้เป็นเนื้อหาในไฟล์ CP
‫ฉันจะไปที่ด้านล่างสุดแล้วสร้างเนื้อหาฟังก์ชันและฉันไม่สามารถลืมใส่ชื่อคลาสก่อนชื่อฟังก์ชันได้
‫ตอนนี้กำลังจะกลับจุดสิ้นสุด 32 และเราจำเป็นต้องตัดสินใจว่าเราจะค้นหาว่ามีหอคอยกี่แห่ง
‫ตอนนี้มีฟังก์ชันที่มีอยู่ในสถิติการเล่นเกมที่เรียกว่า Get All Actors of class
‫นี่คือเอกสาร
‫มันบอกว่าค้นหานักแสดงทั้งหมดในโลกของคลาสที่ระบุ
‫ดังนั้นเราต้องระบุคลาสเฉพาะ
‫ตอนนี้ฟังก์ชันนี้มีสามอินพุต
‫อย่างแรกคือวัตถุบริบทโลก
‫อันนั้นง่าย
‫เรารู้วิธีจัดการกับมัน
‫แต่ต่อไป เรามีคลาสย่อย PT ของนักแสดง และสิ่งนี้เรียกว่า Actor Class
‫ตอนนี้เราได้เห็นแล้วว่าฟังก์ชันที่ต้องการคลาสย่อย PT สามารถรับคลาส u เป็นอินพุตได้ และพารามิเตอร์ที่สามคืออาร์เรย์
‫T
‫มันต้องใช้ตัวชี้ตัวแสดง t อาร์เรย์ และสิ่งนี้ถูกส่งผ่านเพื่อเป็นข้อมูลอ้างอิง และไม่ใช่การอ้างอิง const
‫ซึ่งดูเหมือนว่าจะแนะนำว่าฟังก์ชันนี้อาจเปลี่ยนพารามิเตอร์อินพุตนี้ที่เรียกว่าการกระทำ
‫นี่เป็นอีกนัยหนึ่งที่เป็นกรณีนี้ เรียกว่าเป็นนักแสดง
‫เป็นพารามิเตอร์ out ซึ่งหมายความว่าเราส่งผ่านเข้าไปแล้วหลังจากที่เรียกใช้ฟังก์ชันแล้ว
‫จะมีค่าที่ฟังก์ชันใส่เข้าไป
‫เราจึงมองว่ามันเป็นเอาต์พุตของฟังก์ชัน
‫ตอนนี้มันบอกว่าลงที่นี่สำหรับพารามิเตอร์ คลาสนักแสดงคือคลาสของนักแสดงที่จะค้นหา ต้องระบุ มิฉะนั้นอาร์เรย์ผลลัพธ์จะว่างเปล่า
‫เราต้องการค้นหาหอคอยทั้งหมดและนักแสดงภายนอกคืออาร์เรย์เอาต์พุตของนักแสดงในคลาสที่ระบุ
‫เมื่อเราเรียกฟังก์ชันนี้และส่งผ่านในอาร์เรย์ เมื่อฟังก์ชันเสร็จสิ้น
‫อาร์เรย์นั้นจะมีพอยน์เตอร์ไปยังนักแสดงทุกคนในโลกของคลาสที่ระบุ
‫ดังนั้นเราจึงรู้ว่าฟังก์ชันนี้ต้องการออบเจกต์บริบทโลก
‫ทีนี้ ถ้าเราจะเรียกสิ่งนี้จากภายในโหมดเกม เราสามารถส่งต่อสิ่งนี้ได้ในครั้งต่อไป
‫เราต้องการคลาสย่อย PT เพื่อระบุนักแสดง A และเรารู้ว่านี่อาจเป็นตัวชี้คลาสใหม่
‫ตอนนี้เราต้องระบุคลาสเพื่อค้นหา
‫หากเราระบุนักแสดง เราจะได้รับอาร์เรย์ขนาดใหญ่ที่เต็มไปด้วยคำแนะนำสำหรับนักแสดงแต่ละคนในโลก
‫แต่เราไม่ต้องการนักแสดงทั้งหมด
‫เราแค่ต้องการหอคอยเพื่อให้เราสามารถใช้คลาสสแตติกทาวเวอร์ซึ่งจะส่งคืนคลาสใหม่ที่แสดงถึงคลาส
‫A Tower C ++
‫ตอนนี้พารามิเตอร์ที่สามคืออาร์เรย์ T ของพอยน์เตอร์นักแสดง
‫ดังนั้นหากเราสร้างตัวแปรโลคัลของอาร์เรย์ประเภท T โดยระบุตัวชี้ตัวแสดงในวงเล็บมุม เราสามารถเรียกคุณว่าสถิติการเล่นเกม
‫ให้นักแสดงในชั้นเรียนผ่านอินพุตทั้งสามนี้ และผลของการกระทำนี้ก็คืออาร์เรย์ของหอคอยของเราควรมีตัวชี้ไปยังหอคอยทั้งหมดในโลกของเรา
‫ตอนนี้ ถาดเป็นคลาสคอนเทนเนอร์ที่ดี ซึ่งสามารถมีองค์ประกอบได้จำนวนหนึ่ง ตราบใดที่พวกมันทั้งหมดใช้ประเภทเดียวกัน
‫และคลาสนี้มีฟังก์ชันมากมายที่เราสามารถใช้เมื่อจัดเก็บรายการในถาด
‫ตอนนี้ฉันจะเลื่อนลงไปจนสุดแล้วแสดงฟังก์ชันนี้ให้คุณดูที่เรียกว่า Num Short four number
‫และบอกว่าคืนค่าจำนวนองค์ประกอบในอาร์เรย์
‫ดังนั้นเราจึงสามารถใช้ฟังก์ชันนี้เพื่อรับจำนวนองค์ประกอบในอาร์เรย์ของเราเมื่อเรามีหอคอยทั้งหมดในโลก
‫ถ้าเราเรียก num ของ Tower เราก็สามารถใช้เป็นค่าส่งคืนสำหรับฟังก์ชันของเราได้
‫และดังที่เราเห็น เราตั้งค่าส่งคืนสำหรับฟังก์ชันนี้ ซึ่งเราเรียกว่า get target tower count เป็น
‫n 32 เราสามารถคืนค่าจำนวนองค์ประกอบในอาร์เรย์ของหอคอยของเรา
‫ดังนั้นฉันจึงขอท้าให้คุณใช้ฟังก์ชันรับจำนวนหอคอยเป้าหมายนี้
‫ดังนั้นให้สร้างอาร์เรย์ t ท้องถิ่นของนักแสดงประเภท A
‫คุณสามารถเรียกมันว่าหอคอยหรืออะไรก็ได้ที่คุณชอบ
‫ตอนนี้ใช้เกมของคุณ เล่นฟังก์ชันสแตติก รับนักแสดงทุกคนในชั้นเรียน และตรวจสอบให้แน่ใจว่าคุณส่งผ่านพารามิเตอร์อินพุตที่ถูกต้อง
‫หลังจากที่คุณเรียกใช้ฟังก์ชันนี้ ถาดของคุณจะมีตัวชี้ไปยังหอคอยทั้งหมดในโลกของเรา
‫ดังนั้นคุณสามารถคืนจำนวนหอคอยโดยใช้ฟังก์ชัน num ที่เป็นของคลาสถาดได้
‫ดังนั้นไปข้างหน้าและหยุดวิดีโอชั่วคราวและนำไปใช้
‫รับจำนวนหอคอยเป้าหมายทันที
‫ตกลง.
‫นี่คือการนับหอคอยเป้าหมาย
‫ตอนนี้ สิ่งแรกที่ฉันจะทำคือสร้าง local t array โดยระบุตัวชี้นักแสดงเป็นประเภทขององค์ประกอบที่อาร์เรย์นี้ควรจัดเก็บ
‫และฉันจะเรียกหอคอยนี้ว่าตอนนี้ ฉันต้องเรียกคุณว่าเพลย์สเตติก ดังนั้นฉันต้องตรวจสอบให้แน่ใจว่าส่วนหัวนั้นรวมอยู่ด้วย
‫ตอนนี้ฉันเห็นว่าเป็นเพราะเราใช้มันในฟังก์ชันอื่นๆ ของเรา แต่ก็ควรตรวจสอบนั้น
‫ต่อไป ฉันสามารถใช้สถิติการเล่นเกมของคุณ และฉันจะโทรหานักแสดงทุกคนในชั้นเรียน
‫ตอนนี้อินพุตแรกเป็นวัตถุบริบทโลกที่ฉันจะผ่านในสิ่งนี้และต่อไปคือคลาสย่อยของการเป็นตัวแทนของคลาสนักแสดง
‫และฉันบอกว่าเราสามารถใช้ Tower Static class ซึ่งจะคืนค่า U class ที่แทน Tower
‫class
‫อีกครั้ง เป็นความคิดที่ดีที่จะทำให้แน่ใจว่าเรากำลังรวมหอคอยซึ่งเราเป็นอยู่
‫ทีนี้ พารามิเตอร์ตัวที่สามและตัวสุดท้ายจะเป็นถาดและเราสามารถส่งผ่านในหอคอยได้
‫ดังนั้นเมื่อมีการเรียกใช้ฟังก์ชันนี้ หอคอยจะมีตัวชี้ไปยังหอคอยทั้งหมดในโลก
‫อันที่จริง หากมีวัตถุของคลาสที่มาจากหอคอย เราก็จะได้สิ่งเหล่านั้นด้วย
‫เนื่องจากเรามีอาร์เรย์แบบทาวเวอร์ เราจึงสามารถคืนค่าจำนวนองค์ประกอบในอาร์เรย์นั้นได้
‫ฉันจะใช้คำสั่ง return และใช้ towers dot num และตอนนี้เรามีการนับหอคอยเป้าหมายแล้ว
‫เท่านี้ก็เยี่ยมแล้ว
‫เราสามารถใช้สิ่งนี้เพื่อเริ่มต้นการนับหอคอย ซึ่งเราเรียกว่าหอคอยเป้าหมาย และเราสามารถทำได้เมื่อเราเริ่มเกม
‫ผมจะวางมันไว้ตรงนี้และจัดการการเริ่มเกม
‫อันที่จริง ฉันอยากให้มันเป็นสิ่งแรกที่เราทำ
‫ดังนั้นฉันจะใช้หอคอยเป้าหมายและตั้งค่าให้เท่ากับมูลค่าที่ส่งคืนจากการนับหอคอยเป้าหมาย
‫ตอนนี้หอคอยเป้าหมายควรเริ่มต้นตามจำนวนหอคอยในโลกของเรา
‫มันเยี่ยมมาก แต่เราจำเป็นต้องอัปเดตการนับนี้ทุกครั้งที่หอคอยตาย ซึ่งหมายความว่าเราต้องเข้าสู่ฟังก์ชันการตายของนักแสดง
‫และที่นี่ หากเราโยนนักแสดงที่ตายแล้วไปยังหอคอยที่ถูกทำลาย หลังจากที่เราจัดการกับการทำลายล้างแล้ว เราควรอัปเดตตัวแปรหอคอยเป้าหมายของเรา
‫เพื่อให้เราสามารถพูดได้ว่าหอคอยเป้าหมายและเราสามารถใช้โอเปอเรเตอร์การลดค่าได้
‫เราสามารถใช้ตัวดำเนินการ post decrement หรือตัวดำเนินการสถานการณ์
‫ทั้งสองสิ่งนี้จะส่งผลให้เกิดการกระทำเดียวกันซึ่งกำลังยึดหอคอยเป้าหมายและลบหนึ่งหอคอยออกจากหอคอย
‫ตอนนี้ ทันทีที่เราลบหนึ่งหอคอยจากหอคอยเป้าหมาย ตอนนี้ เราต้องตรวจสอบเพื่อดูว่าหอคอยเป้าหมายมีถึงศูนย์หรือไม่
‫ฉันจะวาง if ตรวจสอบที่นี่เพื่อดูว่าหอคอยเป้าหมายมีถึงศูนย์หรือไม่
‫ตอนนี้ ทันทีที่มันเกิดขึ้น เรารู้ว่าเกมควรจะจบลง ดังนั้นเราสามารถเรียกเกมโอเวอร์ว่าส่งผ่านในเกม
‫4b1 จริง เนื่องจากเราได้ทำลายหอคอยทั้งหมด และเราสามารถพิจารณาว่านี่เป็นชัยชนะ
‫ตอนนี้ ไปข้างหน้าและรวบรวมรหัสของเรา
‫กลับมาที่นี่ในเครื่องมือแก้ไข สิ่งที่ฉันต้องการทำก่อนที่เราจะสรุปวิดีโอนี้ ไปที่พิมพ์เขียวโหมดเกมของเรา
‫นี่คือเสียงบี๊บ
‫ขอบคุณโหมดเกมและเรามีเกมเริ่มกิจกรรมนี้
‫และสิ่งที่เรากำลังทำอยู่คือการสร้างวิดเจ็ตเริ่มเกมของเรา เพิ่มลงในวิวพอร์ตเพื่อให้เราเห็นว่าตัวนับเวลาเริ่มเกมนั้นนับถอยหลัง
‫เราจึงทราบดีว่ามีการเรียกเริ่มเกม แต่เราจำเป็นต้องปรับใช้เกมของเราเหนือเหตุการณ์ที่ปรับใช้พิมพ์เขียวได้
‫ดังนั้นฉันจะคลิกขวาและพิมพ์ game over และนี่คือกิจกรรมของเรา จบเกม และตรวจสอบสิ่งนี้
‫สังเกตว่าเรามีเกมนี้หนึ่งเกมและเป็นเกมบูลีน
‫เมื่อเราเรียกใช้ฟังก์ชันนี้จาก C++ เรากำลังส่งผ่านค่าบูลีนสำหรับเกม B วัน
‫โหนดเหตุการณ์พิมพ์เขียวจะแยก B ตัวพิมพ์เล็กออก และวางช่องว่างระหว่างเกมกับเกมเพื่อเป็นการอำนวยความสะดวกสำหรับเรา
‫ตอนนี้ เรากำลังจะสร้างวิดเจ็ตบางอย่าง เพื่อที่จะได้เห็นว่าเราชนะหรือแพ้ในเกมนั้น
‫แต่เราจะทำในวิดีโอหน้า
‫สำหรับตอนนี้ ฉันแค่ต้องการยืนยันว่ามีการเรียกและเรียกสิ่งนี้อย่างถูกต้อง เพื่อที่ฉันสามารถทำได้ด้วยโหนดสตริงการพิมพ์
‫และเราสามารถพิมพ์ค่าตามบูลีนนี้
‫ถ้าฉันคลิกและลากบูลีนนี้ไปยังอินพุตสตริงโดยตรง เราจะเห็นว่ามีการแปลงบูลีนเป็นสตริง
‫นี่เป็นโหนดการแปลงที่สะดวกอีกอันที่จะแปลงบูลีนเป็นสตริงสำหรับเรา และฟังก์ชันของโหนดนี้ก็แปลงเป็นคำจริงหรือเท็จตามค่าความจริงของบูลีน
‫ทำไมเราไม่ลองทดสอบดูล่ะ?
‫ฉันจะรวบรวมและกดเล่น
‫เอาล่ะ ตอนนี้ฉันพร้อมที่จะพยายามชนะเกมแล้ว
‫หวังว่าจะไม่แพ้ก่อนจะทำได้
‫ฉันแพ้เกมแล้ว และคุณสามารถเห็นการพิมพ์ผิดที่ด้านบนซ้ายของหน้าจอ
‫ดังนั้นตอนนี้เรารู้แล้วว่าการแพ้ในเกมส่งผลให้เกมอีเวนต์ถูกเรียกโดยส่งบอลปลอมเข้ามา เราจำเป็นต้องตรวจสอบให้แน่ใจว่าค่าจริงถูกส่งผ่านเมื่อเราชนะเกม
‫เรามาลองทำลายป้อมปราการทั้งหมดกันเถอะ
‫เลยต้องพยายามไม่ให้โดนจริงๆ
‫โอ้ ฉันโดนแล้ว
‫มันค่อนข้างท้าทาย
‫และเราไปที่นั่น
‫และ true จะพิมพ์ที่มุมซ้ายบนของหน้าจอ
‫ปรากฏขึ้นเพียงไม่กี่วินาที ดังนั้นคุณอาจพลาด
‫โอเค ดีมาก
‫ตอนนี้เรามีเงื่อนไขชนะและแพ้แล้ว
‫ขั้นตอนต่อไปคือการแสดงสิ่งนี้จริง ๆ ในรูปแบบของวิดเจ็ตบนหน้าจอ เพื่อที่เราจะได้ไม่ต้องพึ่งพาโหนดสตริงการพิมพ์
‫โดยสรุปแล้ว ตอนนี้เรามีเงื่อนไขชนะและแพ้ และมีเพียงไม่กี่สิ่งที่เราต้องทำเพื่อขัดเกลาสิ่งนี้
‫เช่น การสร้างวิดเจ็ตที่แจ้งผู้เล่นว่าพวกเขาชนะหรือแพ้เกม
‫นอกจากนี้เรายังนับจำนวนหอคอยโดยใช้ถาดและฟังก์ชันสถิตยศาสตร์ของการเล่นเกม
‫รับนักแสดงทุกคนในชั้นเรียน
‫งานที่ดี.
‫เกมนี้กำลังมาแรงจริงๆ
‫ในวิดีโอหน้า เราจะสร้างวิดเจ็ตเหล่านั้น จากนั้นเราก็พร้อมที่จะเพิ่มเอฟเฟกต์พิเศษและขัดเกลาเกมของเรา
‫แล้วพบกันใหม่ในวิดีโอหน้าครับ