บทความ

กำลังแสดงโพสต์จาก พฤษภาคม, 2024

คู่มือ 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...

สร้างสะพานอัตโนมัติตามการก้าว

รูปภาพ
local ladder = script.Parent local TweenService = game:GetService("TweenService") ladder.Touched:Connect(function(otherPart: BasePart) if otherPart.Parent:FindFirstChild("Humanoid") then -- โคลนบันไดแล้วปรับตำแหน่งไปด้านหน้า 3 studs วางซ่อนไว้ข้างบน local nextLadder = ladder:Clone() nextLadder.CFrame *= CFrame.new(0, 50, -3) nextLadder.Parent = workspace -- ใช้ TweenService เพื่อเล่น Animation โดยให้มันวิ่งมาอยู่ข้างหน้า local goal = {} goal.CFrame = ladder.CFrame * CFrame.new(0, 0, -3) local tween = TweenService:Create(nextLadder, TweenInfo.new(0.5), goal) tween:Play() -- อย่าลืมลบ Script ทิ้งเพื่อมันจะไม่ทำซ้ำ เหยียบทีเดียวสร้างครั้งเดียว ladder.Script:Destroy() end end)

เขียน Script เพื่อสร้างบันได

รูปภาพ
  สร้าง Part กำหนดให้เป็นบันไดขั้นแรกแล้วที่ ServerScriptService ใส่โค้ดตามนี้ครับ local part = workspace.Part local folder = Instance.new("Folder") folder.Name = "Circles" folder.Parent = workspace local angle = 0 local radius = 30 local y = 3 while angle < 360 * 3 do -- ลูปลากมุมวงกลมสามวง local x = math.cos(math.rad(angle)) * radius -- x ตามสมการวงกลมครับอย่าลืมแปลงมุมเป็น Radian local z = math.sin(math.rad(angle)) * radius -- ใช้แกน z เพราะเราสร้างบันไดตามระนาบ xz -- adjust center offset ปรับ offset เทียบกับบันไดขั้นแรกครับเพราะอาจจะไม่ได้วางที่ xz 0,0 x += part.Position.X z += part.Position.Z print (x .. ", " .. z) local newPart = Instance.new("Part") --สร้าง Part ใหม่ newPart.Size = newPart.Size + Vector3.new(0, 0, 3) -- ปรับความหนา ลองเล่นดูครับ newPart.CFrame = newPart.CFrame * CFrame.new(x, y, z) -- ระบุตำแหน่งที่คำนวณได้ newPart.CFrame = newPart.CFrame * CFrame.Angles(0, math.rad(10), 0) -- บิดเล็กน้อยต...

ออกแบบ Map สนุกๆไว้เล่นเอง

รูปภาพ
 

ตะลุยดงซอมบี้

รูปภาพ
 

สร้างรถ 2 ล้อไว้ขับเองอย่างง่าย

รูปภาพ
  ทดลองขับได้ที่  https://create.roblox.com/store/asset/17730970493

สร้างหมวกกันน็อคใช้เป็น Tool ได้ด้วย

รูปภาพ
 

ออกแบบเสื้อไว้ใส่เอง

รูปภาพ
 

สร้าง procedural map แบบสุ่มอย่างง่าย

รูปภาพ
  local MapGeneratorPart = script.Parent -- Part ตั้งต้น MapGeneratorPart.Transparency = 1 -- ให้โปร่งใส local map = {} local mapSize = 20 local partSize = 5 -- Function ไว้สร้าง Part แบบสุ่มสี local function createPart(i, j) local newPart = Instance.new("Part") newPart.Size = Vector3.new(partSize, partSize, partSize) newPart.Position = Vector3.new(i * partSize, partSize, j * partSize) newPart.BrickColor = BrickColor.Random() return newPart end -- เอาไว้เขย่า Part ขึ้นลง ที่แกน Y local function shake(part) part.Position += Vector3.new(0, 5, 0) --wait(0.5) --part.Position -= Vector3.new(0, 5, 0) end -- วนลูป 2 มิติ ixj เพื่อสร้าง Part แล้วนำไปใส่ลง table ในรูปแบบ {{row1_part1, ..}, ...} for i=1, mapSize do local row = {} for j=1, mapSize do table.insert(row, createPart(i, j)) end table.insert(map, row) end -- หยิบ Part จาก table นำไปใส่ลง workspace for i, v in ipairs(map) do for j, part in ipairs(v) do part.Parent = workspace end end -- ทำการสุ่ม...