บทที่ 1: การใช้ตัวแปรขั้นสูงและการสร้างวัตถุเชิงโปรแกรม

ในบทเรียนนี้ นักเรียนจะได้เรียนรู้เกี่ยวกับการใช้ตัวแปรขั้นสูง เช่น Tables (ตาราง) และ Dictionaries (พจนานุกรม) ซึ่งเป็นโครงสร้างข้อมูลที่ช่วยจัดการข้อมูลที่ซับซ้อนในเกม Roblox นอกจากนี้ นักเรียนจะได้ฝึกฝนการสร้างวัตถุในเกมโดยใช้โค้ด ผ่านการเขียนสคริปต์ภาษา Lua


1.1 การใช้ตัวแปรขั้นสูง (Advanced Variables)

ตัวแปรขั้นสูงช่วยให้เราสามารถจัดเก็บข้อมูลได้หลายค่าในตัวแปรเดียว การใช้ Tables และ Dictionaries มีประโยชน์มากเมื่อต้องจัดการข้อมูลที่ซับซ้อนในเกม เช่น รายชื่อผู้เล่น, สถิติ, หรือไอเท็มต่าง ๆ

1.1.1 Tables (ตาราง)

Table เป็นโครงสร้างข้อมูลที่สามารถเก็บค่าหลายค่าในตัวแปรเดียว เราสามารถเก็บข้อมูลแบบลำดับได้ เช่น รายการไอเท็มหรือคะแนนผู้เล่น โดยใช้ตาราง

ตัวอย่าง:


local items = {"Sword", "Shield", "Potion"}  -- สร้างตารางที่เก็บไอเท็ม
print(items[1])  -- แสดงค่า "Sword"

ในตัวอย่างนี้ เราได้สร้างตัวแปร items ซึ่งเป็นตารางที่เก็บข้อมูลเกี่ยวกับไอเท็มในเกม การเข้าถึงข้อมูลทำได้โดยการใช้ดัชนี เช่น items[1] ซึ่งจะได้ค่า "Sword"

1.1.2 Dictionaries (พจนานุกรม)

Dictionary เป็นโครงสร้างข้อมูลที่ใช้คู่ของกุญแจ (Keys) และค่า (Values) สำหรับการเก็บข้อมูล เช่น การเก็บสถิติของผู้เล่นแต่ละคน

ตัวอย่าง:


local playerStats = {["Josh"] = 100, ["Sarah"] = 150}  -- สร้างพจนานุกรมเก็บคะแนนผู้เล่น
print(playerStats["Josh"])  -- แสดงคะแนนของ Josh

ในตัวอย่างนี้ เราใช้พจนานุกรมเก็บคะแนนของผู้เล่นแต่ละคน โดยใช้ชื่อผู้เล่นเป็นกุญแจ (Key) และคะแนนเป็นค่า (Value) การเข้าถึงข้อมูลสามารถทำได้โดยการระบุชื่อผู้เล่น เช่น playerStats["Josh"]


1.2 การสร้างวัตถุเชิงโปรแกรม (Programmatic Object Creation)

นอกจากการใช้ตัวแปรแล้ว เรายังสามารถสร้างวัตถุในเกมผ่านการเขียนโค้ดได้ วิธีนี้ทำให้เรามีความยืดหยุ่นในการสร้างวัตถุได้ตามสถานการณ์ในเกม เช่น การสร้างไอเท็มใหม่เมื่อผู้เล่นทำภารกิจสำเร็จ

1.2.1 การสร้างวัตถุด้วยโค้ด

เราสามารถสร้างวัตถุ (Objects) ในเกมผ่านการใช้สคริปต์ ตัวอย่างเช่น การสร้างบล็อก (Block) และเพิ่มลงในโลกของเกม

ตัวอย่าง:


local part = Instance.new("Part")  -- สร้างบล็อกใหม่
part.Size = Vector3.new(5, 5, 5)  -- กำหนดขนาดของบล็อก
part.Position = Vector3.new(0, 10, 0)  -- กำหนดตำแหน่ง
part.Parent = game.Workspace  -- เพิ่มบล็อกเข้าไปใน Workspace

ในตัวอย่างนี้ เราได้สร้างบล็อกใหม่ (Part) และกำหนดขนาดและตำแหน่งของมัน จากนั้นเพิ่มลงใน Workspace ซึ่งเป็นพื้นที่ในเกมที่ใช้สำหรับการจัดการวัตถุทั้งหมด

1.2.2 การปรับแต่งคุณสมบัติของวัตถุ

หลังจากสร้างวัตถุแล้ว เรายังสามารถปรับแต่งคุณสมบัติต่าง ๆ ของวัตถุได้ เช่น สี, ขนาด, หรือการหมุนของวัตถุ เพื่อให้เหมาะสมกับการใช้งานในเกม

ตัวอย่าง:


local part = Instance.new("Part")
part.Size = Vector3.new(5, 5, 5)
part.Position = Vector3.new(0, 10, 0)
part.BrickColor = BrickColor.new("Bright red")  -- เปลี่ยนสีของบล็อกเป็นสีแดง
part.Anchored = true  -- ล็อคตำแหน่งของบล็อกไม่ให้ขยับ
part.Parent = game.Workspace

ในตัวอย่างนี้ เราได้เปลี่ยนสีของบล็อกเป็นสีแดง และทำการ Anchored บล็อกให้คงที่ไม่ขยับ เมื่อเพิ่มบล็อกลงในเกม


1.3 การใช้โครงสร้างข้อมูลเพื่อจัดการไอเท็มในเกม

การใช้ Tables และ Dictionaries สามารถช่วยให้เราจัดการไอเท็มและข้อมูลต่าง ๆ ในเกมได้อย่างมีประสิทธิภาพ เช่น การเก็บข้อมูลไอเท็มทั้งหมดที่ผู้เล่นเก็บได้ และการตรวจสอบว่าผู้เล่นมีไอเท็มใดบ้าง

ตัวอย่าง:


local playerInventory = {}  -- สร้างตารางเก็บไอเท็มของผู้เล่น

function addItemToInventory(item)
    table.insert(playerInventory, item)  -- เพิ่มไอเท็มเข้าไปในตาราง
end

addItemToInventory("Sword")  -- เพิ่มดาบเข้าไปในคลังไอเท็ม
print(playerInventory[1])  -- แสดงไอเท็มที่ผู้เล่นมี

ในตัวอย่างนี้ เราได้สร้างฟังก์ชันเพื่อเพิ่มไอเท็มเข้าไปในตาราง playerInventory ของผู้เล่น และสามารถตรวจสอบไอเท็มที่ผู้เล่นเก็บได้


ในบทเรียนนี้ นักเรียนได้เรียนรู้เกี่ยวกับการใช้ตัวแปรขั้นสูง เช่น Tables และ Dictionaries เพื่อจัดการข้อมูลในเกม รวมถึงการสร้างวัตถุในเกมผ่านการเขียนโค้ด นอกจากนี้ยังได้ฝึกฝนการปรับแต่งคุณสมบัติวัตถุที่สร้างขึ้นด้วยสคริปต์ นักเรียนจะสามารถนำความรู้เหล่านี้ไปใช้ในการพัฒนาเกมที่ซับซ้อนและมีความยืดหยุ่นมากขึ้น


Free Joomla templates by Ltheme