ข้ามไปที่เนื้อหาหลัก

เรื่องที่แนะนำ

คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025)

 คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025) บทนำ Java ยังคงเป็นภาษายอดนิยมที่ได้รับความนิยมอย่างต่อเนื่องตั้งแต่ยุค 1990 จนถึงปัจจุบัน ในปี 2025 Java ได้ก้าวหน้าอย่างมากทั้งด้านภาษาหลักและเครื่องมือสนับสนุน ล่าสุด Java 24 ได้เปิดตัวออกมาแล้ว และ Java 21 เป็นเวอร์ชัน LTS (Long-Term Support) ที่แนะนำให้ใช้งานสำหรับระบบจริงในระยะยาว บทความนี้จะช่วยให้คุณเข้าใจภาพรวมของ Java เวอร์ชันล่าสุด รวมถึงฟีเจอร์เด่น โครงสร้างภาษาที่ควรรู้ และแนวทางการพัฒนา Java ยุคใหม่ ภาพรวมเวอร์ชัน Java ล่าสุด เวอร์ชัน สถานะ วันเปิดตัว Java 24 เวอร์ชันล่าสุด มีนาคม 2025 Java 21 เวอร์ชัน LTS ล่าสุด กันยายน 2023 Java 17 LTS รุ่นก่อนหน้า กันยายน 2021 Java 11 LTS เก่า กันยายน 2018 โครงสร้างพื้นฐานของภาษา Java คลาสและอ็อบเจกต์ : โครงสร้างหลักของโปรแกรม Java Primitive Types : int, double, char, boolean เป็นต้น Control Statements : if, switch, while, for, do-while Methods : การแยกโค้ดเป็นหน่วยที่นำกลับมาใช้ซ้ำได้ Array และ Collection : จัดเก็บและจัดการข้อมูลหลายรายการ Exception Handling : try-catch-finally OOP Co...

การใช้งาน Vector และ CFrame ใน Lua บน Roblox Studio

 การพัฒนาเกมใน Roblox Studio จำเป็นต้องเข้าใจการทำงานของ Vector และ CFrame เนื่องจากเป็นเครื่องมือสำคัญที่ช่วยจัดการตำแหน่ง ทิศทาง และการเคลื่อนไหวของวัตถุต่างๆ ในโลก 3 มิติ บทความนี้จะแนะนำวิธีการใช้งาน Vector และ CFrame ด้วย Lua พร้อมตัวอย่างที่เข้าใจง่าย


1. Vector คืออะไร?

Vector เป็นข้อมูลชนิดหนึ่งที่ใช้แสดงค่าตำแหน่งหรือทิศทางในพื้นที่ 3 มิติในรูปแบบของสามแกน (x, y, z) ใน Roblox Studio คุณสามารถใช้งาน Vector3 เพื่อจัดการตำแหน่งในโลกของเกม

ตัวอย่างการสร้าง Vector3

local position = Vector3.new(10, 20, 30) -- สร้างตำแหน่งที่มีค่า x=10, y=20, z=30
print(position)

การคำนวณระหว่าง Vectors

  • การบวกและลบ:

    local vectorA = Vector3.new(5, 5, 5)
    local vectorB = Vector3.new(2, 3, 4)
    local result = vectorA + vectorB -- ผลลัพธ์คือ (7, 8, 9)
    print(result)
    
  • การหารและคูณด้วยตัวเลข:

    local scaledVector = vectorA * 2 -- ผลลัพธ์คือ (10, 10, 10)
    print(scaledVector)
    
  • การคำนวณขนาดของ Vector:

    local magnitude = vectorA.Magnitude
    print("ความยาวของ Vector: " .. magnitude)
    

2. CFrame คืออะไร?

CFrame (Coordinate Frame) ใช้สำหรับแสดงตำแหน่งและการหมุนของวัตถุในโลก 3 มิติ ซึ่งมีความสามารถมากกว่า Vector3 เพราะสามารถกำหนดการหมุนได้ในตัวเดียว

การสร้าง CFrame

local cframePosition = CFrame.new(0, 10, 0) -- กำหนดตำแหน่ง (0, 10, 0)
print(cframePosition)

การหมุนด้วย CFrame

  • การหมุนวัตถุโดยใช้มุม Euler:

    local rotatedCFrame = CFrame.Angles(math.rad(90), math.rad(0), math.rad(45)) -- หมุน 90 องศาบนแกน x และ 45 องศาบนแกน z
    print(rotatedCFrame)
    
  • การหมุนและเลื่อนพร้อมกัน:

    local combinedCFrame = CFrame.new(10, 10, 10) * CFrame.Angles(0, math.rad(90), 0) -- ย้ายตำแหน่งและหมุน
    print(combinedCFrame)
    

การแปลงตำแหน่งจาก CFrame เป็น Vector3

local position = combinedCFrame.Position
print("ตำแหน่ง: " .. tostring(position))

3. ตัวอย่างการใช้งาน Vector และ CFrame

การเคลื่อนย้ายวัตถุ

local part = Instance.new("Part")
part.Position = Vector3.new(0, 5, 0) -- ย้ายตำแหน่งด้วย Vector3
part.Anchored = true
part.Parent = workspace

การหมุนวัตถุ

local part = Instance.new("Part")
part.CFrame = CFrame.new(0, 5, 0) * CFrame.Angles(0, math.rad(45), 0) -- ย้ายและหมุนพร้อมกัน
part.Anchored = true
part.Parent = workspace

การเคลื่อนไหวอย่างต่อเนื่อง

local part = Instance.new("Part")
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace

while true do
    wait(0.1)
    part.CFrame = part.CFrame * CFrame.new(0, 0, -1) -- เคลื่อนที่ไปข้างหน้า
end

4. สรุป

Vector และ CFrame เป็นพื้นฐานที่สำคัญใน Roblox Studio โดย Vector เหมาะสำหรับจัดการตำแหน่งและทิศทางอย่างง่าย ส่วน CFrame มีความยืดหยุ่นมากกว่าเมื่อใช้งานร่วมกับการหมุน การเข้าใจและใช้งานทั้งสองอย่างนี้อย่างถูกต้องจะช่วยให้คุณสร้างเกมที่ซับซ้อนและน่าสนใจได้มากขึ้น

ความคิดเห็น

บทความที่ได้รับความนิยม