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