‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะทำเพื่อให้คุณใช้โพรเจกไทล์ของคุณจนหมด เกมของคุณจะรีสตาร์ทโดยอัตโนมัติในระดับปัจจุบัน
‫หลังจากหยุดไป 5 วินาที มาดูวิธีการทำกัน
‫องค์ประกอบหนึ่งของเกมนี้ที่ไม่สนุกเป็นพิเศษในตอนนี้ก็คือ เมื่อคุณหมดกระสุน มันจะเป็นทางตัน
‫คุณไม่สามารถลองอีกครั้ง
‫คุณไม่สามารถทำอะไรได้อีก
‫คุณไม่สามารถก้าวไปสู่ระดับอื่นได้
‫ตอนนี้ วิธีที่คุณสามารถแก้ไขได้คือการอนุญาตให้เราโหลดระดับปัจจุบันใหม่
‫วิธีที่คุณทำได้คือการใช้โหนดพิเศษในพิมพ์เขียว
‫ดังนั้น หากคุณคลิกขวาในกราฟเหตุการณ์ แสดงว่าคุณเปิดพิมพ์เขียวระดับของคุณและคลิกขวาในกราฟเหตุการณ์
‫เราสามารถค้นหาระดับเปิด
‫และมีสองตัวเลือกที่นี่
‫มีระดับเปิดตามชื่อและระดับเปิดตามการอ้างอิงวัตถุ
‫เราสามารถใช้ระดับเปิดตามชื่อ
‫ดังนั้นที่นี่คุณจะได้โหนดที่มีผลข้างเคียงอย่างเห็นได้ชัด เพราะมันจะทำการโหลดระดับใหม่ และมีอินพุต
‫ซึ่งเป็นชื่อระดับที่นี่
‫ตอนนี้เราจะได้รับชื่อระดับปัจจุบันได้อย่างไร?
‫เราสามารถพิมพ์ได้ แต่ถ้าเราเปลี่ยนชื่อระดับนี้โดยไม่ได้ตั้งใจในอนาคต
‫สิ่งที่เราสามารถทำได้คือคลิกขวาและรับชื่อระดับปัจจุบัน ซึ่งทำให้เรามีโหนดอื่นที่ส่งคืนชื่อระดับปัจจุบัน
‫ที่น่าสนใจคือ อันนี้ไม่ใช่ฟังก์ชันล้วนๆ
‫ฉันมีความคิดว่าทำไมไม่มี.
‫เพราะเห็นว่ามันควรจะเป็น
‫และสิ่งที่เราสามารถทำได้คือแม้ว่าทั้งสองประเภทนี้จะแตกต่างกัน แต่ประเภทหนึ่งส่งคืนสตริงและอีกประเภทหนึ่งต้องการชื่อประเภท
‫เป็นไปได้จริง ๆ ที่จะแปลงระหว่างสตริงและชื่อเพื่อให้เราสามารถลากจากค่าที่ส่งกลับเป็นค่าอินพุต
‫และโหนดการแปลงจะถูกสร้างขึ้นสำหรับเราโดยอัตโนมัติ
‫เราจำเป็นต้องเชื่อมต่อพินการดำเนินการระหว่างสองสิ่งนี้ด้วย ดังนั้นเราจะแปลงชื่อระดับปัจจุบันแล้วเปิดระดับ
‫ตอนนี้เราต้องการทำสิ่งนี้เมื่อไหร่?
‫ขณะนี้ทุกอย่างกำลังเกิดขึ้นในเหตุการณ์สำคัญหรือเริ่มเล่น แต่มีตัวเลือกอื่น
‫สิ่งที่เราทำได้คือเราสามารถมีโหนดพิเศษในกราฟเหตุการณ์รูท ดังนั้นจึงไม่อยู่ในฟังก์ชัน แต่อยู่ภายในกราฟเหตุการณ์รูทที่เรียกว่าโหนดล่าช้า
‫สิ่งที่เราจะทำคือหลังจากกดกระสุนหมด เราจะดึงหมุดการประหารชีวิตออกที่นี่
‫และค้นหาการหน่วงเวลา
‫จากนั้นคุณจะเห็นว่ามีโหนดชนิดพิเศษที่มีนาฬิกาติดอยู่
‫และนี่หมายความว่าเอาต์พุตไม่ได้เกิดขึ้นทันทีหลังจากฟังก์ชันเสร็จสิ้น แต่จะเกิดขึ้นหลังจากผ่านไประยะหนึ่ง
‫คุณจะเห็นว่าเราสามารถป้อนระยะเวลาที่นี่ และระยะเวลานั้นอาจเป็น 5 วินาที เป็นต้น
‫ดังนั้นในสตริงการพิมพ์ของฉัน ฉันจะอัปเดตเพื่อบอกว่ากระสุนจะรีสตาร์ทใน 5 วินาที แล้วจากนั้นก็ dot, dot,
‫dot
‫จากนั้นเราสามารถเสียบโค้ดที่รีสตาร์ทระดับลงในเอาต์พุตซึ่งเป็นโหนดที่เสร็จสมบูรณ์ของโหนดการหน่วงเวลา
‫ดังนั้นถ้าเราเริ่มเล่นตอนนี้ สิ่งที่เราจะเห็นคือ กระสุนหมด กระสุนทั้งหมดของฉันหมด
‫ฉันหมดและมันบอกว่า ฉันจะรีสตาร์ทใน 5 วินาที และหลังจากผ่านไป 5 วินาที บูมระดับเพิ่งเริ่มต้นใหม่
‫ความท้าทายเล็กน้อยสำหรับการบรรยายครั้งนี้คือการดึงฟังก์ชันจากโหนดที่เราเพิ่งสร้างขึ้น รับระดับปัจจุบัน
‫ชื่อและระดับที่เปิดอยู่
‫และความท้าทายของฉันสำหรับคุณคือการคิดชื่อที่ดีสำหรับฟังก์ชันนี้
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫ฉันจะเรียกมันว่าระดับเริ่มต้นใหม่เพราะนั่นคือสิ่งที่ฉันคิดว่ากำลังทำอยู่
‫ดังนั้นฉันจะคลิกขวาเพื่อยุบเพื่อทำงานและเรียกมันว่าระดับการรีสตาร์ทและใช้ได้กับอินพุตปัจจุบัน
‫ไม่จำเป็นต้องบริสุทธิ์เพราะมันมีผลข้างเคียงของการเริ่มระดับใหม่
‫ดังนั้นเราจึงไม่ต้องการให้มันบริสุทธิ์อยู่ดี
‫แค่นั้นเอง
‫ฉันจะจัดระเบียบโหนดใหม่เล็กน้อยและลบโหนดทดสอบและลบฟังก์ชันการทดสอบของฉันโดยคลิกขวาที่มันในพิมพ์เขียวของฉันแล้วกดลบ
‫และเราก็มีกราฟพิมพ์เขียวย่อเล็ก ๆ ที่อธิบายได้ชัดเจนว่าเกมของเราทำอะไรได้บ้างในระดับที่สูงมาก
‫ดังนั้นฉันจึงพอใจกับผลลัพธ์ที่ได้
‫รู้สึกเหมือนมี game loop ที่ดี แล้วเจอกันในการบรรยายครั้งต่อไป