การใช้งาน if-else และ table แทน switch ในภาษา Lua บน Roblox Studio พร้อมตัวอย่างเกมง่ายๆ 

Lua เป็นภาษาที่ใช้ในการพัฒนาเกมใน Roblox Studio ซึ่งมีความเรียบง่ายและยืดหยุ่น หนึ่งในคุณสมบัติที่สำคัญคือโครงสร้างควบคุมการทำงาน เช่น if-else และ switch (ซึ่งใน Lua จะใช้ table แทนเนื่องจากไม่มี switch ในตัว)

บทความนี้จะแนะนำวิธีใช้งาน if-else และโครงสร้าง table ที่คล้าย switch พร้อมตัวอย่างเกมง่ายๆที่คุณสามารถนำไปปรับใช้ได้


1. การใช้งาน if-else ใน Lua

โครงสร้าง if-else ใช้ในการตัดสินใจตามเงื่อนไขต่างๆ ตัวอย่างเช่น:

local playerScore = 50

if playerScore >= 100 then
    print("คุณชนะ!")
elseif playerScore >= 50 then
    print("คุณใกล้จะชนะแล้ว!")
else
    print("พยายามอีกหน่อย!")
end

ในโค้ดนี้:

  • ถ้าคะแนนมากกว่าหรือเท่ากับ 100 จะพิมพ์ว่า "คุณชนะ!"
  • ถ้าคะแนนอยู่ระหว่าง 50-99 จะพิมพ์ว่า "คุณใกล้จะชนะแล้ว!"
  • ถ้าคะแนนน้อยกว่า 50 จะพิมพ์ว่า "พยายามอีกหน่อย!"

2. การใช้ table แทน switch ใน Lua

Lua ไม่มีคำสั่ง switch โดยตรง แต่สามารถใช้ table และฟังก์ชันเพื่อจำลองโครงสร้าง switch ได้ ตัวอย่างเช่น:

local action = "jump"

local actions = {
    run = function() print("ผู้เล่นกำลังวิ่ง") end,
    jump = function() print("ผู้เล่นกำลังกระโดด") end,
    attack = function() print("ผู้เล่นกำลังโจมตี") end,
}

if actions[action] then
    actions[action]()
else
    print("คำสั่งไม่ถูกต้อง")
end

ในตัวอย่างนี้:

  • action เป็นตัวแปรที่เก็บคำสั่ง
  • actions เป็นตารางที่เก็บฟังก์ชันต่างๆ
  • ระบบจะเรียกใช้ฟังก์ชันที่ตรงกับค่าของ action หรือแสดงข้อความเมื่อคำสั่งไม่ถูกต้อง

3. ตัวอย่างเกมง่ายๆ: ระบบการกระทำของตัวละคร

สมมติเราสร้างเกมที่ตัวละครสามารถกระโดด วิ่ง หรือโจมตีตามคำสั่งของผู้เล่น:

local playerAction = "attack" -- เปลี่ยนเป็น "run", "jump" หรือ "attack"

local function handleAction(action)
    if action == "run" then
        print("ผู้เล่นกำลังวิ่ง")
    elseif action == "jump" then
        print("ผู้เล่นกำลังกระโดด")
    elseif action == "attack" then
        print("ผู้เล่นกำลังโจมตี")
    else
        print("คำสั่งไม่ถูกต้อง")
    end
end

handleAction(playerAction)

4. การปรับปรุงด้วยโครงสร้างคล้าย switch

เราสามารถเขียนโค้ดเดิมให้กระชับขึ้นโดยใช้ table ที่มีโครงสร้างคล้าย switch ดังนี้:

local playerAction = "jump"

local actions = {
    run = function() print("ผู้เล่นกำลังวิ่ง") end,
    jump = function() print("ผู้เล่นกำลังกระโดด") end,
    attack = function() print("ผู้เล่นกำลังโจมตี") end,
}

actions[playerAction] = actions[playerAction] or function() print("คำสั่งไม่ถูกต้อง") end
actions[playerAction]()

ในตัวอย่างนี้:

  • ใช้ตาราง actions เพื่อเก็บการกระทำที่รองรับ
  • ถ้าคำสั่งไม่ตรง จะใช้ฟังก์ชันเริ่มต้นแสดงข้อความว่า "คำสั่งไม่ถูกต้อง"

สรุป

  • if-else เหมาะสำหรับการตัดสินใจที่มีเงื่อนไขไม่ซับซ้อน
  • โครง table ที่คล้าย switch เหมาะสำหรับการจัดการคำสั่งหลายกรณีที่ไม่ซ้ำซ้อน
  • การใช้โครงสร้างที่เหมาะสมช่วยให้โค้ดอ่านง่ายและบำรุงรักษาได้ง่ายขึ้น

ลองนำตัวอย่างไปปรับใช้กับเกมของคุณใน Roblox Studio เพื่อเพิ่มความสามารถและความสนุกให้กับเกม!

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

จากสมศรี 422R สู่หุ่นยนต๋ในยุค llm