‫เฮ้ ยินดีต้อนรับกลับมา
‫ในวิดีโอนี้ เราจะสร้างนาฬิกาจับเวลาถอยหลังเพื่อให้ผู้เล่นรู้ว่าต้องรออีกนานเท่าใดจึงจะสามารถเคลื่อนรถถังไปรอบๆ
‫และระเบิดสิ่งของได้
‫ดังนั้นเราจะแสดงเวลาที่เหลือในตัวจับเวลาถอยหลังจนกว่าเกมจะเริ่ม
‫ไปที่ตัวแก้ไขแล้วเริ่มทำสิ่งนี้
‫ตอนนี้ฉันอยู่ที่นี่ใน Widget Blueprint, BP Start Game Widget และนี่คือเครื่องมือแก้ไขวิดเจ็ตอย่างที่เราเคยเห็น
‫แต่คุณอาจสังเกตเห็นที่ด้านบนขวา มีสองแท็บที่นี่ หนึ่งแท็บที่ระบุว่านักออกแบบ
‫นั่นคือสิ่งที่เราอยู่ในตอนนี้และอีกอันหนึ่งที่บอกว่ากราฟ
‫และถ้าคุณคลิกที่กราฟ จะดูเหมือนกราฟเหตุการณ์พิมพ์เขียวที่มีโหนดเหตุการณ์และแท็บพิมพ์เขียวของฉันที่นี่ซึ่งมีส่วนต่างๆ
‫และนี่คือจุดที่เราทำตรรกะพิมพ์เขียวได้
‫ตอนนี้เรามีสามโหนดที่นี่
‫เรามีการสร้างเหตุการณ์ล่วงหน้า
‫สิ่งนี้คล้ายกับคอนสตรัคเตอร์ใน C ++ จากนั้นเรามีโครงสร้างเหตุการณ์ซึ่งคล้ายกับเริ่มเล่น
‫ดังนั้นนี่คือจุดที่เหมาะสมกว่าที่จะทำสิ่งต่าง ๆ ในตอนเริ่มเกม เพราะคลาสที่เกี่ยวข้องทั้งหมดถูกสร้างขึ้นโดยจุดนี้
‫และจากนั้นเราจะมีขีดเหตุการณ์
‫และเช่นเดียวกับฟังก์ชันติ๊กใน C++ เราสามารถเข้าถึงเวลาเดลต้าได้ที่นี่
‫ตอนนี้เราจะไม่ใช้สองโหนดแรก ดังนั้นฉันจะเน้นที่โหนดเหล่านั้นและลบออก และเราจะใช้เทคโนโลยีของเหตุการณ์
‫เป้าหมายของเราสำหรับวิดีโอนี้คือการแสดงเวลาที่เหลือ และตอนนี้เรามีตัวจับเวลานับถอยหลังสามวินาทีใน
‫C++
‫เราสร้างตัวจับเวลาและเราใช้ตัวจัดการตัวจับเวลาโลกเพื่อเริ่มตัวจับเวลา
‫ทุกสิ่งที่เราทำในพิมพ์เขียวไม่ขึ้นกับสิ่งนั้น
‫เรากำลังสร้างระบบตรรกะที่ต่างไปจากเดิมอย่างสิ้นเชิงที่นี่ และจะตรงกับตัวจับเวลาที่เราตั้งค่าไว้ใน
‫C++
‫ทั้งหมดนี้จึงแตกต่างและเป็นอิสระจากด้าน C++
‫ตอนนี้ในวิดเจ็ต WB start game เราสามารถเพิ่มตัวแปรได้เหมือนกับที่เราเพิ่มตัวแปรใน C++ ได้ที่นี่
‫ภายใต้พิมพ์เขียวของฉัน ฉันสามารถคลิกเพิ่มและเลือกตัวแปรได้ และตอนนี้ฉันมีตัวแปรที่เรียกว่า new var underscore
‫zero
‫และข้างล่างนี้ในแผงรายละเอียดซึ่งอยู่ทางด้านซ้ายอย่างสับสน ตอนนี้เรามีชื่อตัวแปรและประเภทตัวแปรแล้ว
‫ตอนนี้มันถูกเน้นโดยค่าเริ่มต้นเพราะคาดว่าคุณจะเปลี่ยนชื่อตัวแปรของคุณทันทีที่คุณสร้าง
‫ดังนั้นเราจึงไม่ต้องการชื่อเริ่มต้นนี้
‫เราจะเรียกสิ่งนี้ว่าชื่อของเราเอง
‫ฉันจะเรียกมันว่าการนับถอยหลัง
‫และการนับถอยหลังจะเป็นตัวแปรทศนิยม Y เพราะนี่จะติดตามว่าเราเหลือเวลาเท่าไร
‫ฉันจะเริ่มต้นใน 3 วินาที และแต่ละเฟรม ฉันจะลบระยะเวลาที่ผ่านไปตั้งแต่เฟรมก่อนหน้า
‫ดังนั้นเราจึงมีการนับถอยหลังจากสามลงไป
‫ตอนนี้ฉันจะคลิกคอมไพล์
‫ตอนนี้ ทันทีที่ฉันคลิกคอมไพล์ ฉันสามารถให้ค่าเริ่มต้นนี้ได้โดยเลื่อนลงมาในรายละเอียด
‫แผง มันถูกตั้งค่าเป็นศูนย์โดยค่าเริ่มต้น
‫ฉันจะตั้งค่าเป็นสามโดยค่าเริ่มต้นเนื่องจากเรามีการนับถอยหลังสามวินาที
‫เวลาในขณะนี้เป็นเพียงการลอยตัวที่เรียกว่า Countdown ที่มีค่าสาม
‫เราไม่ได้เปลี่ยนมันจริงๆ แต่ทุกเฟรมของเกม ฉันต้องการลบเวลาเดลต้าออก ซึ่งเป็นระยะเวลาที่ผ่านไปตั้งแต่เฟรมก่อนหน้า
‫และด้วยวิธีการนั้น การนับถอยหลังจะอัปเดตการลดลงตามเวลาเดลต้าอย่างต่อเนื่อง เพื่อให้เรานับเวลาทำงาน
‫ต่อไปนี้คือวิธีที่เราทำได้
‫ฉันจะนับถอยหลังจากแท็บ My Blueprint คลิกแล้วลากมาที่นี่ในกราฟกิจกรรมแล้วปล่อย
‫ตอนนี้ ทันทีที่ฉันปล่อย ฉันมีสองทางเลือก
‫รับการนับถอยหลังและตั้งค่าการนับถอยหลัง
‫ถ้าฉันคลิก Get Countdown ตอนนี้ฉันมีบันทึกการนับถอยหลัง และหากฉันคลิกและลากออกจากผลลัพธ์
‫สิ่งนี้ทำให้ฉันเข้าถึงค่าของการนับถอยหลัง
‫ตอนนี้ฉันยังสามารถคลิกที่ Countdown ลากเข้าไปแล้วคลิก Set Countdown และเรามี set node
‫เราเคยเห็นทั้งสองสิ่งนี้มาก่อน
‫ในวิดีโอก่อนหน้านี้ ขาอินพุตสำหรับตัวตั้งค่าช่วยให้เราเสียบค่าโฟลตแล้วนับถอยหลังจะถูกตั้งค่าเป็นค่านั้น
‫แล้วเราจะลบเวลาเดลต้าออกจากการนับถอยหลังแล้วตั้งค่านั้นเป็นค่านับถอยหลังได้อย่างไร
‫เอาล่ะ เราสามารถนำโหนดนับถอยหลังของเรามาที่นี่ และฉันสามารถคลิกและลากมันออก แล้วพิมพ์สัญลักษณ์ลบบนแป้นพิมพ์ของฉัน
‫แล้วเลือกโหนดการลบ
‫ถ้าฉันเลือกอย่างนั้น ตอนนี้ฉันมีทศนิยมลบทศนิยมหรือโหนดลบ
‫คุณจะเห็นว่า Target is Kismet Math Library
‫นั่นบอกคุณว่า Kismet Math Library หนุนโหนดนี้
‫โหนดทั้งหมดมีรหัส C++ ที่แกนหลัก
‫ดังนั้นสิ่งที่โหนดนี้ทำคือต้องใช้สองอินพุต
‫ใช้อินพุตแบบลอยตัว
‫และต้องใช้อินพุตแบบลอยตัวที่สอง
‫ตอนนี้ มันจะไม่เปลี่ยนแปลงตัวแปรใดๆ ที่เรากำลังส่งผ่านเข้ามา
‫มันก็แค่ทำการคำนวณและคืนค่านั้นซึ่งเป็นผลลัพธ์ของการลบ
‫ตอนนี้ฉันต้องการนับถอยหลังและลบเวลาเดลต้าจากนั้นฉันสามารถใช้พินเอาต์พุตที่เรียกว่าเวลาเดลต้าจากโหนดติ๊กเหตุการณ์และเสียบตรงเข้ากับอินพุตที่สองในโหนดการลบของฉัน
‫สิ่งที่ผมทำคือผมกำลังนับถอยหลังลบเวลาเดลต้า แล้วนี่ก็ได้ผลลัพธ์
‫ตอนนี้นับถอยหลังเริ่มต้นคือ 3 วินาทีและเวลาเดลต้าเป็นค่าที่น้อยมาก
‫คือระยะเวลาเป็นวินาทีที่ผ่านไปตั้งแต่เฟรมที่แล้ว
‫ดังนั้นนี่จะเป็นจำนวนเล็กน้อย
‫ดังนั้นสิ่งที่จะส่งผลในครั้งแรกที่ดำเนินการคือสามลบจำนวนเล็กน้อย
‫และสิ่งที่ผมอยากทำคือตั้งค่าการนับถอยหลังให้เท่ากับผลลัพธ์นั้น ทุกๆ เฟรม
‫ดังนั้นการนับถอยหลังแต่ละเฟรมจึงถูกลบออกจากทีละน้อย
‫และด้วยวิธีนี้จะทำให้การนับถอยหลังจาก 3 วินาทีลดลง
‫ดังนั้นฉันจะนำผลการส่งคืนจากโหนดการลบนี้ และเสียบเข้ากับอินพุตสำหรับโหนดนับถอยหลังที่ตั้งไว้
‫ตอนนี้ จะไม่ทำอะไรเลยหากฉันไม่เชื่อมต่อสายการดำเนินการจากเหตุการณ์ ให้ทำเครื่องหมายที่พินการดำเนินการกับพินอินพุตสำหรับการนับถอยหลังที่ตั้งไว้
‫ตอนนี้สิ่งที่กำลังทำอยู่คือทุกๆ เฟรมเดียวลบเวลาเดลต้าออกจากการนับถอยหลัง นำผลลัพธ์นั้นและตั้งค่าการนับถอยหลังเป็นค่าใหม่นั้น
‫ตอนนี้เราสามารถดูว่าสิ่งนี้ทำงานอย่างไรกับโหนดสตริงการพิมพ์
‫ดังนั้นฉันจะลากสตริงการพิมพ์ประเภท setter และรับโหนดสตริงการพิมพ์
‫จากนั้นฉันต้องการพิมพ์ค่าของการนับถอยหลังเพื่อที่ฉันจะได้ค่าที่ส่งคืนจาก setter
‫ซึ่งจะให้ค่าใหม่ของการนับถอยหลังแต่ละเฟรมแก่เราและเสียบเข้ากับโหนดสตริง
‫และสังเกตว่าฉันเห็นการแปลง float เป็นสตริง และถ้าฉันปล่อยตอนนี้ ฉันได้รับโหนดการแปลงที่จะนำ float
‫ของฉันไปแปลงเป็นสตริง และตอนนี้ เราสามารถพิมพ์สิ่งนั้นไปยังหน้าจอได้
‫ตอนนี้เรามาดูกันว่าจะเกิดอะไรขึ้นถ้าฉันกดเล่น
‫ตรวจสอบออก
‫เราเห็นว่าการนับนั้นถูกบันทึกไว้ในแต่ละเฟรม และเรากำลังสแปมหน้าจอด้วยค่าของการนับถอยหลัง และมันเริ่มเป็นลบมากขึ้นเรื่อยๆ
‫นี่เป็นขั้นตอนแรกในการทำให้ตัวนับเวลาถอยหลังของเราทำงาน
‫ฉันจะปิดตอนนี้
‫เราเห็นแล้วว่าเรากำลังพิมพ์ค่าทศนิยมที่มีจุดทศนิยมจำนวนหนึ่ง
‫และเมื่อเราพิมพ์ค่าไปที่หน้าจอ เราก็ไม่ต้องการจุดทศนิยม เราต้องการเป็นจำนวนเต็ม
‫ฉันต้องการดูจำนวนวินาทีที่เหลือโดยไม่มีตัวเลขต่อท้ายทางด้านขวาของจุดทศนิยม
‫สิ่งที่ฉันต้องการคือจำนวนเต็ม
‫สิ่งที่ฉันทำได้คือฉันจะลบโหนดการแปลงนี้ และฉันจะเอาผลลัพธ์ของตัวตั้งค่าการนับถอยหลัง
‫และฉันจะพิมพ์ C E I'll seal ซึ่งย่อมาจากการปิดผนึก
‫การดำเนินการปิดผนึกจะใช้ค่าทศนิยมและปัดขึ้นเป็นจำนวนเต็มที่ใกล้เคียงที่สุด
‫ถ้าเราอยู่ตีสาม ก็ไม่จำเป็นต้องปัดเศษ
‫มันจะคืนค่าจำนวนเต็มที่มีค่าสาม
‫แต่ถ้าเราอยู่ม.2 ตัวอย่างเช่น 9 จากนั้นโหนดซีลจะปัดขึ้นเป็นสาม
‫และเมื่อค่านั้นลดลง มันจะส่งกลับสามต่อไปจนกว่าเราจะลดเหลือสอง
‫เราก็จะได้จำนวนเต็มเสมอ
‫ตอนนี้ฉันสามารถเสียบสิ่งนี้เข้ากับสตริงการพิมพ์แล้วคุณจะเห็นว่าแปลงจำนวนเต็มเป็นสตริง
‫ดังนั้นตอนนี้โหนดซีลกำลังลอยตัว ปัดเศษขึ้นเป็นจำนวนเต็มที่ใกล้เคียงที่สุดและส่งกลับค่าจำนวนเต็มนั้น
‫ตอนนี้ถ้าผมเล่น เราจะเห็นว่าเราได้ 3 ต่อ 1 และศูนย์
‫และแน่นอนว่ามันยังคงลดลงเพราะเราไม่เคยบอกให้หยุดจริงๆ
‫แต่นี่เป็นการเริ่มต้นที่ดี เพราะตอนนี้เราสามารถเข้าถึงจำนวนวินาทีที่เหลือ และเราสามารถพิมพ์บางสิ่งไปยังหน้าจอเพื่อตอบกลับ
‫แล้วเราจะพิมพ์ข้อความที่ถูกต้องไปที่หน้าจอได้อย่างไร?
‫สิ่งที่ฉันต้องการจะทำคือเมื่อเราเหลือเวลาอีก 3 วินาที ฉันอยากให้วิดเจ็ตบอกว่า เตรียมตัวให้พร้อม
‫เมื่อเราเหลือเวลาอีก 2 วินาที ฉันอยากให้คุณแสดงเลขสอง
‫เมื่อเราเหลือเวลาหนึ่งวินาที ผมขอโชว์หมายเลขหนึ่ง
‫และเมื่อเราเหลือ 0 วินาที ฉันอยากให้ข้อความพูดว่าไป
‫เราทำสิ่งนี้ได้ด้วยสวิตช์โหนด สวิตช์โหนดสามารถเปิดได้หลายประเภทรวมถึง
‫INT
‫วิธีการทำงานของสวิตช์บนโหนด int คือมีหลายกรณีสำหรับค่าจำนวนหนึ่ง
‫และจากค่าที่เราส่งผ่านไปยังโหนดสวิตช์นี้ มันจะทำสิ่งใดสิ่งหนึ่งได้หลายอย่าง
‫ตัวอย่างเช่น ถ้าเราส่งผ่านค่าจำนวนเต็ม 3 เราก็จะได้กรณีสามตัว ซึ่งจะส่งผลให้ดำเนินการในสิ่งที่สาม
‫ดังนั้นสวิตช์บนโหนดปลายจึงมีการดำเนินการหลายบรรทัด และจะดำเนินการเพียงบรรทัดเดียวตามนั้น
‫อินพุต
‫ตอนนี้เราสามารถใช้สวิตช์บนโหนด int และส่งผ่านเป็นจำนวนเต็มได้ เช่น ผลลัพธ์ของโหนดซีลของเรา
‫ดังนั้นฉันจะลบสตริงการพิมพ์และฉันจะลากออกจากโหนดนับถอยหลังและพิมพ์สวิตช์บน
‫INT แล้วเลือกสวิตช์ที่ int
‫ตอนนี้สังเกตว่ามันใช้อินพุตของประเภทจำนวนเต็ม
‫ฉันจะส่งค่าส่งคืนจากโหนดซีลและสังเกตว่าเรามีตัวเลือกพินเพิ่ม
‫หากเราคลิกไปที่นั้น คุณจะเห็นว่าเราได้พินเริ่มต้นเพิ่มเติมจากเอาต์พุตที่ระบุว่าศูนย์
‫สิ่งนี้บอกว่าถ้าเราเชื่อมต่อตรรกะพิมพ์เขียวจากพินการดำเนินการเป็นศูนย์ ตรรกะนั้นจะถูกดำเนินการ
‫หากค่าอินพุตที่ส่งเป็นศูนย์ และหากค่านั้นไม่ดี ค่าเริ่มต้นจะเป็นพินการดำเนินการนี้
‫ตอนนี้เราสามารถคลิกเพิ่มพินอีกครั้งและตอนนี้เรามีศูนย์และหนึ่ง
‫ดังนั้นเราจึงสามารถดำเนินการได้สองบรรทัด หนึ่งสำหรับศูนย์และหนึ่งสำหรับหนึ่ง
‫แล้วถ้าอินพุตไม่ใช่ศูนย์หรือหนึ่ง สิ่งใดก็ตามที่เชื่อมต่อกับค่าเริ่มต้นจะถูกดำเนินการ
‫ฉันจะคลิกบวกอีกครั้งสองครั้ง
‫ดังนั้นเราจึงมีกรณี 0 ถึง 3 และกรณีเริ่มต้น
‫ดังนั้นตอนนี้ก็ขึ้นอยู่กับเราแล้วที่จะลากสิ่งนี้ออกและเพิ่มตรรกะพิมพ์เขียวที่เราต้องการดำเนินการตามค่าที่ส่งผ่านที่เราได้รับจากโหนด
‫SEAL นี้
‫และนั่นคือสิ่งที่ฉันต้องการให้คุณทำเพื่อความท้าทายของคุณ
‫ฉันต้องการให้คุณพิมพ์ข้อความที่แตกต่างกันสำหรับแต่ละกรณีโดยใช้โหนดสตริงการพิมพ์สำหรับค่าสามที่คุณสามารถพิมพ์ได้
‫เตรียมพร้อมโดยใช้โหนดสตริงการพิมพ์
‫สำหรับสองกรณี คุณสามารถพิมพ์ค่าสองสำหรับหนึ่งกรณี คุณสามารถพิมพ์หนึ่ง และสำหรับกรณีศูนย์
‫คุณสามารถพิมพ์ตอนนี้สำหรับกรณีเริ่มต้น เพียงพิมพ์เริ่มเกมด้วยโหนดสตริงการพิมพ์ของเรา
‫หยุดวิดีโอชั่วคราวและเพิ่มโหนดสตริงการพิมพ์ทั้งหมดในกราฟเหตุการณ์ทันที
‫ตกลง.
‫ดังนั้นฉันต้องการไปข้างหน้าและใช้โหนดสตริงการพิมพ์และฉันจะเริ่มต้นที่นี่ที่ด้านล่างสำหรับกรณีเริ่มต้นและฉันจะพิมพ์สตริงการพิมพ์
‫และสตริงที่ฉันต้องการพิมพ์คือเริ่มเกม
‫นี่คือทางลัด
‫หากคุณไม่ทราบเมื่อเลือกโหนดสตริงการพิมพ์ ฉันสามารถวางเมาส์ไว้ที่อื่นในกราฟเหตุการณ์และกด
‫control dx ซึ่งจะคัดลอกโหนดที่ฉันเลือกไว้
‫ฉันจะเชื่อมโยงสามกรณีกับโหนดสตริงการพิมพ์นี้และฉันจะพิมพ์เตรียมพร้อม
‫ดังนั้นเมื่ออินพุตของสวิตช์เป็นสาม เราจะเห็น
‫เตรียมพิมพ์ลงจอได้เลย
‫ตอนนี้ฉันจะควบคุม DX อีกครั้งและขอต่อกรณีนี้กับสองกรณี และสำหรับสอง ฉันจะพิมพ์สองตอนนี้
‫ฉันจะคัดลอกโหนดสตริงการพิมพ์ และอีกกรณีหนึ่ง ฉันจะพิมพ์ ค่าหนึ่ง
‫และสุดท้าย โหนดสตริงการพิมพ์สุดท้ายที่นี่ จะเชื่อมต่อกับกรณีศูนย์ และนี่จะบอกว่าไป
‫ตกลง.
‫ไปข้างหน้าและรวบรวมสิ่งนี้และฉันจะกดปุ่มเล่นและตอนนี้ฉันเห็นพร้อมแล้ว สอง
‫หนึ่ง และไป
‫และแน่นอนว่าเราจะเริ่มเกมเมื่อเราหมดเวลา
‫ดังนั้นเราจึงรู้ว่าค่ากำลังลดลงและกลายเป็นเชิงลบมากขึ้นเรื่อยๆ แต่นั่นเป็นกรณีเริ่มต้นสำหรับสวิตช์ของเรา
‫และนั่นคือเมื่อเรารู้ว่าเราสามารถเริ่มเกมได้จริงๆ
‫นี่เป็นขั้นตอนแรกในการแสดงตัวนับเวลาถอยหลังในวิดเจ็ตของเรา
‫เรายังไม่ได้เปลี่ยนข้อความที่ระบุว่า Get ready แต่เราจะดำเนินการในเร็วๆ นี้
‫ดังนั้นในวิดีโอนี้ เราจึงสร้าง Countdown Logic และเพิ่มสิ่งนั้นลงในพิมพ์เขียววิดเจ็ตของเรา
‫เราใช้สตริงการพิมพ์เพื่อแสดงค่านับถอยหลังของเราและพิมพ์ข้อความอื่น
‫ตามค่าการนับถอยหลังของเรา
‫เรายังคงต้องตั้งค่าข้อความในวิดเจ็ต และเราจะทำในวิดีโอหน้า
‫เจอกันเร็วๆนี้ครับ