สร้าง 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
-- ทำการสุ่มตำแหน่งเพื่อเขย่า
while true do
wait(0.1)
local i = math.random(mapSize)
local j = math.random(mapSize)
task.spawn(function ()
shake (map[i][j])
end)
end
ความคิดเห็น
แสดงความคิดเห็น