การใช้งาน TweenService ด้วย Lua บน Roblox Studio

TweenService เป็นบริการที่มีประโยชน์ใน Roblox Studio ซึ่งช่วยให้เราสามารถสร้างการเคลื่อนไหวที่ลื่นไหล เช่น การเปลี่ยนตำแหน่ง การเปลี่ยนสี หรือการปรับคุณสมบัติต่างๆ ของวัตถุในเกมได้อย่างง่ายดาย โดยไม่ต้องเขียนโค้ดที่ซับซ้อนเกี่ยวกับการคำนวณค่าในแต่ละเฟรม


พื้นฐานของ TweenService

Tween หมายถึง การเปลี่ยนแปลงคุณสมบัติของวัตถุจากค่าเริ่มต้นไปยังค่าปลายทางในระยะเวลาที่กำหนด โดยมีการกำหนดรูปแบบ (easing style) และพฤติกรรม (easing direction) ของการเคลื่อนไหว

โครงสร้างของ TweenService:

  1. เรียกใช้บริการ TweenService ด้วย game:GetService("TweenService")
  2. กำหนด TweenInfo เพื่อกำหนดระยะเวลาและรูปแบบการเคลื่อนไหว
  3. ระบุคุณสมบัติที่ต้องการเปลี่ยนแปลงในรูปแบบตาราง (table)
  4. เรียกฟังก์ชัน TweenService:Create() เพื่อสร้าง Tween
  5. เรียกใช้งาน Tween ด้วย Tween:Play()

ตัวอย่างการใช้งาน TweenService

ตัวอย่างที่ 1: การเคลื่อนย้ายวัตถุ

-- เรียกใช้ TweenService
local TweenService = game:GetService("TweenService")

-- กำหนดวัตถุที่ต้องการเคลื่อนไหว
local part = workspace.Part

-- กำหนด TweenInfo
local tweenInfo = TweenInfo.new(
    2, -- ระยะเวลา (วินาที)
    Enum.EasingStyle.Quad, -- รูปแบบการเคลื่อนไหว
    Enum.EasingDirection.Out, -- ทิศทางการเคลื่อนไหว
    0, -- จำนวนรอบการเล่น
    false, -- เล่นซ้ำหรือไม่
    0 -- การหน่วงเวลา
)

-- กำหนดคุณสมบัติที่ต้องการเปลี่ยนแปลง
local goal = {
    Position = Vector3.new(10, 5, 0) -- ตำแหน่งปลายทาง
}

-- สร้าง Tween
local tween = TweenService:Create(part, tweenInfo, goal)

-- เรียกใช้ Tween
tween:Play()

ตัวอย่างที่ 2: การเปลี่ยนสีของวัตถุ

-- เรียกใช้ TweenService
local TweenService = game:GetService("TweenService")

-- กำหนดวัตถุที่ต้องการเปลี่ยนสี
local part = workspace.Part

-- กำหนด TweenInfo
local tweenInfo = TweenInfo.new(3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)

-- กำหนดคุณสมบัติที่ต้องการเปลี่ยนแปลง
local goal = {
    Color = Color3.fromRGB(255, 0, 0) -- สีปลายทาง
}

-- สร้าง Tween
local tween = TweenService:Create(part, tweenInfo, goal)

-- เรียกใช้ Tween
tween:Play()

คุณสมบัติเสริมใน TweenInfo

  • RepeatCount: กำหนดจำนวนรอบของการเคลื่อนไหว
  • Reverses: กำหนดว่าการเคลื่อนไหวจะย้อนกลับหรือไม่
  • DelayTime: กำหนดเวลาหน่วงก่อนเริ่ม

ตัวอย่าง:

local tweenInfo = TweenInfo.new(
    2, -- ระยะเวลา
    Enum.EasingStyle.Bounce, -- รูปแบบการเคลื่อนไหว
    Enum.EasingDirection.Out, -- ทิศทาง
    3, -- เล่นซ้ำ 3 รอบ
    true, -- ย้อนกลับ
    1 -- หน่วงเวลา 1 วินาที
)

เคล็ดลับการใช้งาน TweenService

  1. ใช้งานคู่กับ Event: สามารถใช้ Event เช่น .Completed เพื่อให้ทำสิ่งต่างๆ หลัง Tween จบการทำงาน

    tween.Completed:Connect(function()
        print("Tween เสร็จสิ้นแล้ว!")
    end)
    
  2. หยุด Tween: ใช้ Tween:Cancel() เพื่อหยุดการเคลื่อนไหว

  3. เพิ่มประสิทธิภาพ: หลีกเลี่ยงการสร้าง Tween ซ้ำๆ ในเกมที่มีการเคลื่อนไหวจำนวนมาก ให้ใช้ Tween เดิมซ้ำถ้าเป็นไปได้


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

ความคิดเห็น

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

การใช้งาน RPC (Remote Procedure Call) ด้วย Java พร้อมตัวอย่างเกมออนไลน์ (ต่อ)

เริ่มต้นสร้าง Quiz Widgets แบบสอบถามบนเว็บกัน

การใช้งาน RPC (Remote Procedure Call) ด้วย Java พร้อมตัวอย่างเกมออนไลน์อย่างง่าย