‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะดูหมุดเล็กๆ เหล่านี้และสีต่างๆ ที่พวกมันเข้ามา และเข้าใจว่าสิ่งเหล่านี้เป็นประเภทข้อมูลที่แตกต่างกัน
‫ที่จำกัดสิ่งที่เราสามารถเสียบเข้าไปได้
‫มาดูว่าประเภทข้อมูลหมายถึงอะไร
‫ดังนั้น คำจำกัดความของประเภทข้อมูลที่ใช้การได้จริงคือมันแสดงข้อมูลบางส่วนในรูปแบบไบนารีในหน่วยความจำของคอมพิวเตอร์ของคุณ
‫และยังอาจเป็นเพียงวิธีการจำกัดสิ่งที่เราสามารถทำได้กับข้อมูลชิ้นนี้
‫ดังนั้นจึงไม่จำเป็นต้องเกี่ยวกับการแสดงแทนที่แตกต่างกันเสมอไป
‫และคุณสามารถคิดได้ว่าเป็นรูปร่างของข้อมูลในแง่ที่ว่าหมุดสี่เหลี่ยมไม่สามารถใส่ลงในรูกลมได้
‫ดังนั้นเราจึงไม่สามารถรับข้อมูลผิดประเภทไปยังพินที่ไม่ถูกต้องได้
‫เรามาดูตัวอย่างของประเภทข้อมูลกัน
‫มีจำนวนเต็ม ซึ่งเป็นตัวอย่างคลาสสิก
‫จำนวนเต็มเป็นจำนวนเต็ม ดังนั้นจึงมีค่าเช่น 223 -14 แต่ไม่ใช่ค่าเท่ากับ 1 2.
‫นั่นจะเป็นทศนิยมซึ่งย่อมาจากเลขทศนิยม
‫โดยพื้นฐานแล้วนี่คือตัวเลขที่คุณมีจุดทศนิยม และตัวเลขเหล่านี้อาจมีขนาดใหญ่หรือเล็กมาก
‫แต่ที่สำคัญ มันไม่ใช่จำนวนเต็ม
‫พวกเขาสามารถเป็นลบได้เช่นกัน
‫แล้วก็มีสตริง
‫เราเคยเจอเรื่อง strings มาก่อน strings เป็นแค่โปรแกรมเมอร์พูดแทนข้อความ
‫และโดยพื้นฐานแล้วเป็นประเภทข้อมูล
‫เป็นวิธีการจัดเก็บข้อความบางส่วนในหน่วยความจำเพื่อให้สามารถเป็นอะไรก็ได้ที่คุณชอบ
‫จริงๆ.
‫สวัสดีบ๊อบ
‫คุณรู้ไหม อะไรก็ตาม สิ่งเหล่านี้ ข้อความทั้งหมดบนหน้าจอของฉันเป็นสตริง อาจอยู่ที่ไหนสักแห่งในหน่วยความจำของคอมพิวเตอร์
‫และสุดท้ายก็มีลูกบอลที่สั้นสำหรับบูลีน และมีค่าที่เป็นไปได้เพียงสองค่า
‫จริงหรือเท็จ
‫ตอนนี้ประเภทข้อมูลเหล่านี้ยอดเยี่ยม แต่คุณไม่สามารถแสดงทั้งเกมด้วยสิ่งง่ายๆ แบบนั้นได้ใช่ไหม
‫คุณสามารถทำได้ถ้าคุณเริ่มจัดกลุ่มเข้าด้วยกันเป็นสิ่งของ เช่น วัตถุ
‫เมื่อคุณจัดกลุ่มพวกมันเข้าด้วยกันเป็นวัตถุ พวกมันจะเริ่มมีความหมายมากขึ้น
‫คุณสามารถมีจำนวนเต็มเพื่อแสดงถึงอายุ คุณสามารถมีทุ่นเพื่อแสดงคะแนนประสบการณ์ สิ่งต่างๆ
‫เหล่านั้นได้
‫และจุดหนึ่งที่ควรทราบก็คือ เช่นเดียวกับวัตถุ เรามีสิ่งต่าง ๆ ในพิมพ์เขียวที่เรียกว่า structs
‫และอย่าสับสนที่นี่
‫โดยพื้นฐานแล้ว struct ที่มากเกินไปนั้นเหมือนกับอ็อบเจกต์ เว้นแต่ว่าโดยปกติแล้วจะมีขนาดค่อนข้างเล็ก และเราไม่ได้ใช้การอ้างอิง
‫เราเพียงแค่ส่งต่อพวกมันไปรอบๆ และคัดลอกมันไปรอบๆ ในหน่วยความจำโดยไม่ต้องกังวลกับมัน เพราะมันเล็กมาก
‫และชนิดข้อมูลอย่างที่เรากล่าวคือรูปร่างของข้อมูลของเรา
‫ลองมาดูตัวอย่างโครงสร้างของวัตถุกัน
‫ลองนึกภาพว่าเรามีนักผจญภัยของเรา
‫นักผจญภัยของเราอาจมีหน้าตาประมาณนี้
‫นี่คือรูปร่างของข้อมูล
‫มีเลขจำนวนเต็มเพื่อแสดงระดับและจำนวนลอยเพื่อแสดงคะแนนประสบการณ์
‫ตอนนี้ คุณอาจมีอินสแตนซ์ของนักผจญภัยหลายตัวที่อยู่ในคลาสนักผจญภัยเดียวกัน ดังนั้นพวกมันจึงต้องมีรูปร่างของข้อมูลเหมือนกัน
‫แต่ไม่จำเป็นต้องมีเนื้อหาของข้อมูลเหมือนกัน
‫คุณสามารถเห็นได้ที่นี่ว่านักผจญภัยคนที่สองมีระดับ 100 และด้วยเหตุผลบางอย่างคะแนนประสบการณ์เป็นลบห้า
‫แต่อย่าลืมว่าคุณสามารถมีประเภทที่แตกต่างกันได้โดยการมีวัตถุประเภทอื่นเช่นเครื่องเล่น
‫และที่นี่คุณสามารถเห็นรูปร่างที่แตกต่างกัน
‫สองสิ่งนี้คือการผจญภัยและผู้เล่นไม่ใช่ประเภทที่เข้ากันได้ คุณรู้หรือไม่ว่าผู้เล่นเหล่านี้มีค่าต่างกันที่เก็บไว้ในนั้น
‫พวกเขามีชื่อผู้เล่น พวกเขาอาจจะใช้คอนโทรลเลอร์หรือไม่ก็ได้ เป็นข้อมูลบางส่วนในนั้น
‫ตอนนี้เรามาดูโครงสร้างบางอย่างที่เราเคยเห็นในอดีตกัน
‫ย้ำอีกครั้งว่าโครงสร้างและอ็อบเจกต์ใช้แทนกันได้ไม่มากก็น้อย ยกเว้นขนาด
‫อันแรกที่เราเคยเห็นมาหลายครั้งแล้วคือเวกเตอร์ และเวกเตอร์ก็ไม่มีอะไรนอกจากลอยสามอัน
‫นั่นคือทั้งหมดที่เป็นทุ่น X, Y และ Z ซึ่งสามารถใช้แทนตำแหน่งได้
‫นอกจากนี้ยังสามารถใช้เพื่อแสดงขนาดหรือเราใช้เมื่อเราป้อนแรงกระตุ้นลงในโหนดแรงกระตุ้น
‫ADD ของเรา
‫อีกสิ่งหนึ่งที่เราเห็นในการผ่านคือ rotator
‫ตอนนี้สังเกตว่าตัวหมุนนี้เป็นเพียงสามทุ่น แต่นั่นไม่ได้หมายความว่าทั้งสองประเภทนี้เข้ากันได้
‫เราสามารถตั้งชื่อให้ struct ต่างกันได้ เพื่อที่เราจะได้ช่วยตัวเองให้พ้นจากการใช้โดยไม่ได้ตั้งใจในสถานการณ์ที่เราไม่ควร
‫และเราสามารถรวมสิ่งเหล่านี้เข้าด้วยกัน และสร้างโครงสร้างประกอบที่ใหญ่ยิ่งขึ้นไปอีก
‫ซึ่งก็คือการเปลี่ยนรูป ซึ่งเป็นตำแหน่ง การหมุน และขนาดของนักแสดงในฉาก
‫คุณจะเห็นได้ว่านี่คือโครงสร้างที่ประกอบขึ้นจากโครงสร้างอื่นๆ และโดยพื้นฐานแล้วคุณสามารถซ้อนสิ่งเหล่านี้ได้มากเท่าที่คุณต้องการและมีโครงสร้างภายในวัตถุและอื่นๆ
‫พวกเขาสามารถซับซ้อนได้
‫มาดูวัตถุบางอย่างที่เราเคยเห็นในอดีตกัน
‫เราได้ดูวัตถุที่เป็นนักแสดงแล้ว
‫เรารู้ว่านักแสดงเป็นวัตถุประเภทหนึ่ง
‫เราเคยเห็นนักแสดงที่เป็นคิวบ์
‫นี่เป็นวัตถุอีกประเภทหนึ่ง
‫เราได้เห็นแล้วว่าโพรเจกไทล์ของเราเป็นวัตถุประเภทหนึ่งเช่นกัน และเป็นนักแสดง
‫และเราได้เห็นแล้วว่าเรามีองค์ประกอบเกี่ยวกับนักแสดงของเรา ซึ่งเป็นวัตถุประเภทหนึ่งด้วย
‫และองค์ประกอบคงที่เป็นตัวอย่างหนึ่งขององค์ประกอบเหล่านี้
‫ดังนั้นเราจึงมีสิ่งเหล่านี้ทั้งหมด และสิ่งเหล่านี้ถูกสร้างขึ้นจากประเภทข้อมูลพื้นฐานเหล่านั้น
‫ลึกลงไป อาจประกอบด้วยโครงสร้างที่ซับซ้อนมากขึ้นในระหว่างนี้ แต่ทั้งหมดเกี่ยวกับประเภทข้อมูลพื้นฐานเหล่านั้น
‫ดังนั้นเมื่อเราไปดูกราฟแบบนี้ เราจะเห็นได้ทันทีด้วยสีที่แรงกระตุ้นนี้เป็นเวกเตอร์
‫เช่น ตำแหน่ง การหมุน และมาตราส่วนที่นี่ เป็นเพียงตัวเลขทศนิยมสามตัว
‫และเรายังสามารถเห็นได้ว่าช่องกาเครื่องหมายการเปลี่ยนแปลงความเร็วสีแดงนี้เป็นบูลีน
‫มันคือคำตอบ ใช่ ไม่ใช่
‫ดังนั้นเราจึงเริ่มต้น
‫เพื่อให้เข้าใจว่าสิ่งเหล่านี้เป็นประเภทข้อมูลที่จำกัดสิ่งที่เราสามารถเสียบเข้าไปได้
‫โดยสรุป สิ่งที่เราเห็นคือชนิดข้อมูลคือรูปร่างของข้อมูลของเรา วัตถุนั้นเป็นเพียงคอลเล็กชันของข้อมูลและการทำงาน
‫ดังที่เราได้กล่าวไปแล้ว โครงสร้างนั้นเป็นวัตถุ แต่มักจะมีขนาดเล็กกว่าเล็กน้อย
‫.
‫และนั่นคือสิ่งที่คุณต้องรู้
‫แล้วพบกันใหม่ในบทเรียนหน้าครับ