‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เรากำลังใช้แพลตฟอร์มเคลื่อนที่
‫เรากำลังจะทำให้แพลตฟอร์มนี้เคลื่อนไหวโดยทำความเข้าใจสิ่งที่เรียกว่าลูปเกมและฟังก์ชันติ๊กใน
‫C ++ เกี่ยวข้องอย่างไร
‫ลองดำน้ำในและหา
‫จนถึงตอนนี้ เราเพิกเฉยต่อฟังก์ชันนี้ที่นี่ ฟังก์ชันขีด
‫เราทุ่มเททุกอย่างในการเริ่มเล่นเพราะนั่นคือสิ่งที่เราเคยใช้ใน Blueprint มาก่อน
‫แต่ให้ความกระจ่างเล็กน้อยเกี่ยวกับฟังก์ชันติ๊กนี้
‫เพื่อให้เข้าใจเห็บ เราต้องเข้าใจแนวคิดของ Game Loop และนี่คือวิธีที่เอ็นจิ้นเกมส่วนใหญ่จะสร้างเอ็นจิ้น
‫วิธีการทำงานคือ อย่างแรกเลย เอ็นจิ้นเกมจะรับข้อมูลจากผู้เล่น
‫ดังนั้นไม่ว่าจะเกิดอะไรขึ้น ไม่ว่า Space bar จะหยุดทำงาน หรือจะเป็นปุ่ม W ไม่ว่าเมาส์จะขยับเพียงเล็กน้อย
‫ไม่ว่าปุ่มของเมาส์จะหยุดทำงาน สิ่งของทั้งหมดจะถูกเอนจิ้นเกมเข้าครอบงำและประมวลผล
‫.
‫จากนั้นสิ่งต่อไปคือข้อมูลจะถูกใช้เพื่ออัปเดตสถานะเกม
‫บางทีผู้เล่นอาจจะก้าวไปข้างหน้าเล็กน้อย บางทีลูกบอลอาจจะกระเด้ง สิ่งของทั้งหมดนั้นจะถูกคำนวณและกลไกทางฟิสิกส์ทำงาน
‫และสิ่งที่ยอดเยี่ยมทั้งหมดที่เราเคยเห็นในเกมที่แล้วของเรา
‫ขั้นตอนที่สามคือเอ็นจิ้นเกมจะเข้าสู่สถานะของเกมและพูดว่า โอเค
‫ผู้เล่นอยู่ที่นี่และกล้องอยู่ที่นี่ ลูกบอลอยู่ตรงนั้น และมันจะแสดงผลไปยังหน้าจอ
‫มันจะเปลี่ยนจากชุดตัวเลขเป็นรูปภาพเพื่อแสดงบนหน้าจอของคุณ
‫ตอนนี้ รูปภาพนั้นเรียกว่า เฟรม เฟรมที่เป็นรูปภาพเดียวในชุดของรูปภาพที่ประกอบเป็นวิดีโอ
‫ตอนนี้ คอมพิวเตอร์ของคุณอาจสามารถแสดงเฟรมจำนวนมากในหนึ่งวินาที หรืออาจแสดงผลน้อยลง
‫แต่นั่นเรียกว่าอัตราเฟรมเรต
‫คอมพิวเตอร์ของคุณสามารถผ่านเกมลูปได้กี่เฟรมต่อวินาที
‫สามารถประมวลผลอินพุต อัปเดตสถานะ และแสดงผลได้บ่อยเพียงใด
‫นั่นคือเฟรมต่อวินาที และในสภาพที่ไม่จริง เราใช้ฟังก์ชันติ๊กเพื่อช่วยให้เราทำขั้นตอนกลางของลูปเกมเพื่อช่วยเราอัปเดตสถานะของเกมของเรา
‫เป็นฟังก์ชันที่ได้รับการเรียกทุกเฟรมและมีอยู่ในพิมพ์เขียวตลอดจนเหตุการณ์
‫ดังนั้นคุณจะได้รับเหตุการณ์ติ๊กและโดยพื้นฐานแล้วมันช่วยให้คุณทำบางสิ่งเพื่ออัปเดตเกมของคุณทุก
‫ๆ เฟรม
‫ในกรณีของเรา สิ่งที่เราต้องการจะทำคืออนุญาตให้ย้ายแพลตฟอร์มของเรา
‫แล้วเราจะทำอย่างนั้นได้อย่างไร?
‫ถ้าเราใช้ตำแหน่งของนักแสดงในฉากและลบออกจากการเริ่มต้นเล่น และเราอัปเดตตำแหน่งนั้นด้วยเครื่องหมายถูก
‫มันจะไม่ช่วยอะไรมากในตอนแรก เพราะเราจะตั้งค่าการอัปเดตตำแหน่งของเราเป็นตำแหน่งเดิมอย่างต่อเนื่อง
‫ถ้าเรากำหนดตำแหน่งของนักแสดง, เวกเตอร์ของฉันแล้วตามด้วยอัฒภาค นั่นคือทุกเฟรมเดียว ทุก
‫ๆ การวนซ้ำผ่านลูปเกม
‫มันจะทำให้นักแสดงอยู่ในที่เดียวกัน
‫อย่างไรก็ตาม สิ่งที่น่าสนใจคือถ้าเราอัปเดตค่าภายในเวกเตอร์ของฉัน
‫สิ่งที่เราทำได้คือบอกว่าเวกเตอร์ดอท z เท่ากับเวกเตอร์ดอท z บวกหนึ่ง
‫สิ่งที่เรากำลังทำอยู่นี้คือ เรากำลังหาค่าที่อยู่ในเวกเตอร์ Z ของผม
‫เรากำลังบวกหนึ่งเข้าไป จากนั้นเราก็นำผลลัพธ์ทั้งหมดนั้นมาใส่กลับเข้าไปในเวกเตอร์ดอท z
‫ของฉัน
‫ดังนั้นทุกครั้งที่เราผ่านเกมนี้และติ๊กถูกเรียกโดย unreal engine เวกเตอร์
‫z ของฉันควรเพิ่มขึ้นหนึ่ง
‫ลองดูว่าผลลัพธ์ของสิ่งนี้เป็นอย่างไร
‫เราเข้าไปใน Unreal แล้วเราก็กดปุ่มคอมไพล์แล้วไปต่อและกดเล่น
‫เราควรเห็นว่าชานชาลานั้นสูงขึ้น ลอยขึ้นไปในอากาศ เพราะฉันเพิ่มตำแหน่ง Z ของมัน
‫ดังนั้นฉันจึงทำให้มันสูงขึ้นเรื่อย ๆ
‫ฉันอยากให้คุณลองเปลี่ยน Y แทนการเปลี่ยน Z
‫ดังนั้นเปลี่ยนบรรทัดรหัสที่ถูกต้อง
‫คุณอาจต้องเปลี่ยนสถานที่มากกว่าหนึ่งแห่ง
‫ปรับขนาดลูกบาศก์ของแพลตฟอร์มเพื่อให้เป็นแพลตฟอร์มที่ดีสำหรับคุณที่จะข้ามไป และดูว่าตอนนี้การอัปเดต Y แทนการอัปเดต
‫Z ช่วยให้คุณข้ามไปที่แพลตฟอร์ม หยุดวิดีโอชั่วคราวแล้วเริ่มได้เลยหรือไม่
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫มาดูโค้ดของ Visual Studio กัน
‫และสิ่งที่เราอยากทำคือตั้งค่าเวกเตอร์ y เท่ากับเวกเตอร์ y บวกหนึ่ง
‫มันจะเคลื่อนไปตามแกน Y แทนที่จะเป็นแกน Z
‫จากนั้นเราจะตั้งค่าตำแหน่งทุกเฟรมเป็นผลลัพธ์ที่เก็บไว้ในตัวแปรเวกเตอร์ของฉัน
‫ดังนั้นเราจะกลับไปที่ Unreal และทำให้แน่ใจว่าเรารวบรวม
‫จากนั้นเราจะค้นหาโครงร่างสำหรับแท่นเคลื่อนที่และเลือก
‫ไปที่บานหน้าต่างรายละเอียด
‫และในที่นี้ เราต้องการให้โดยทั่วไปแล้ว ให้ดับเบิลคลิกบนแพลตฟอร์มเพื่อให้เรามองเห็นได้ จากนั้นเราต้องการที่จะขยายขนาดขึ้นอีกเล็กน้อย
‫ผมจะใช้เครื่องมือมาตราส่วนด้วยปุ่ม R และจะเพิ่มมาตราส่วน Y และมาตราส่วน X และลดมาตราส่วน
‫Z
‫ดังนั้นแพลตฟอร์มของฉันจึงสั้นลงเล็กน้อย
‫เช่นนั้นเราจะสามารถบันทึกการเล่นระดับและแพลตฟอร์มลอยไปทางขวาของฉัน
‫ดังนั้นมันจึงใหญ่กว่าด้วย ซึ่งหมายความว่าฉันสามารถลุกขึ้นยืนได้
‫และเราไปที่นั่น
‫เรามีช่างเกมชิ้นแรกของเราแล้ว
‫เรามีแท่นเคลื่อนที่
‫มันไม่ได้ย้อนกลับและไปข้างหน้าว่าเราจะคิดเพิ่มเติมอีกเล็กน้อยเกี่ยวกับการบรรยายที่จะเกิดขึ้น
‫แต่สำหรับตอนนี้ เราได้ใช้ฟังก์ชันเกมบางอย่างใน C++
‫ฉันคิดว่าคุณควรภูมิใจในตัวเองมากในขณะนี้
‫ตบหลังตัวเอง แล้วพบกันใหม่ในบทเรียนหน้า