ลูปและแมทริค

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

รายการ สามารถผสานกับลูป, เช่น ในขณะที่ และ สำหรับ เพื่อทำซ้ำรหัสเดียวสำหรับแต่ละมีมารถจัดเก็บข้อมูลที่มีมาสามารถจับไฟไหม้หรือสร้างรายการของส่ว

เพื่อสำรวจการเชื่อมต่อผ่านคลาสสาย สร้างเส้นทางเชื่อมที่หายไปเมื่อชิ้นส่วนถูกวางในคลาสสายแล้วจากนั้นก็ทำให้หายไปหนึ่งโดยหนึ่ง

สแน็ปผ่านค่ายี่สาม

สำหรับโครงการนี้ ค้นหาหรือสร้างชุดของสามส่วนเพื่อทำให้มันหายไป ชุดต้องมีทั้งหมดสามส่วน

  1. สร้างสามส่วน ตั้งชื่อส่วนในลำดับที่พวกเขาจะหายไป, ส่วน1, ส่วน2, ส่วน3.

  2. ใน ServerScriptService ใส่สคริปต์ใหม่และสร้างค่าย่อสำหรับเก็บชิ้นส่วน


    local pathArray = {
    }
  3. ในแถวเดียวของแต่ละรายการ อ่านแล้วโดยใช้เส้นสายใหม่สำหรับแต่ละมูลค่าทำให้มันเป็นเรื่องง่ายขึ้นที่จะอ่าน


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

ใช้ for หมุนด้วยแมทริค

ใช้ for เพื่อไปผ่านรายการและควบคุมว่าอะไหล่จะหายไปในลำดับที่อะไหล่ถูกดัดผมในลำดับที่อะไหล่เก็บไว้ในลำดับ

  1. เพื่อควบคุมความถี่ที่อะไหล่หายไปในแต่ละวินาที, สร้างตัวแปรที่มีชื่อว่า VANISH_RATE สำหรับการทดสอบ, มันดีที่สุดที่จะเก็บไว้เป็นตัวเลขเล็กๆ


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. สร้าง for กำลังติดตาม: เริ่ม: partIndex = 1 คือค่าแรกในรายการ เสร็จสิ้น: 1> #pathArray1> ขนาดของรายการนั้น


    for partIndex = 1, #pathArray do
    end
  3. ดังนั้นจึงมีความล่าช้าก่อนที่ส่วนหนึ่งจะหายไปในห่วงโซ่, เพิ่ม task.wait() โดยใช้ VANISH_RATE


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. เพื่อให้ได้ส่วนหนึ่งที่หายไป, สร้างตัวแปรใหม่ที่มีชื่อว่า whichPart และตั้งให้เท่ากับ partsArray[partIndex] แล้ว, เพื่อให้ส่วนหนึ่งนั้นหายไป, ตั้งค่าคว


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. ตรวจสอบว่าส่วนหนึ่งของเส้นทางหายไปเมื่อเวลาผ่านไป

เคล็ดลับการแก้ปัญหา

หากสะพานไม่ปรากฏ ตรวจสอบปัญหาที่อาจเกิดขึ้นด้านล่าง: ปัญหา: ชิ้นส่วนหายไปเร็วเกินไปหรือหายไปทั้งหมดในตอนเริ่มต้น

  • ขึ้นอยู่กับว่าตัวละครของคุณโหลดเข้าสู่ประสบการณ์ได้อย่างรวดเร็วแค่ไหน ส่วนแรกอาจมองไม่เห็นได้ เช่น task.wait(2) ในตอนเริ่มต้นของสคริป

การเขียน Second Loop

ตอนนี้, ชิ้นส่วนจะหายไปตลอดไป เพื่อให้พวกเขาเกิดขึ้นอีกครั้ง, สร้างส่วนที่สองสำหรับห่วงโซ่ที่จะผ่านแต่ละชิ้นส่วนและทันทีทำให้แต่ละชิ้นส่วนเดินได้

  1. หลังจากวงจรแรกเพิ่ม task.wait() เพื่อสร้างความล่าช้าสั้น ๆ ก่อนที่เส้นทางจะปรากฏขึ้นอีกครั้ง


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. บนคอมพิวเตอร์ของคุณเอง ลองเขียนโค้ดสองครั้งเพื่อให้เส้นทางสามารถใช้ได้อีกครั้งโดยการเปลี่ยนสมบัติภาพลายเส้นของแต่ละส่วนเป็น true และ Transparency เป็น 0 เมื่อเสร็จสิ้นให้ตรวจสอบงานของคุณ


    -- รีเซ็ตเส้นทางโดยทำให้ชิ้นส่วนทั้งหมดเดินได้อีกครั้ง
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. ย้อนกลับ

ทำซ้ำด้วย while ห่วง

ชิ้นส่วนหายไปและปรากฏขึ้นอีกครั้ง แต่เฉพาะครั้งเดียว เพื่อให้โค้ดที่ซ้ำซาก

  1. ในตอนท้ายของสคริปต์, สร้างใหม่ while true do loop. จากนั้น, ย้ายทั้งสอง for ล็อปใน while ล็อป.


    while true do
    -- ทำให้ชิ้นส่วนหายไปจากแผงในลำดับ
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- รอสักครู่ก่อนที่จะทำให้เส้นทางกลับมา
    task.wait(1)
    -- รีเซ็ตเส้นทางโดยทำให้ชิ้นส่วนทั้งหมดเดินได้อีกครั้ง
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. ตรวจสอบว่าเมื่อหายไปทั้งหมด, พวกเขาจะเรียกใหม่.

สามารถดาวน์โหลดเวอร์ชันสุดท้ายของโครงการได้

สคริปที่สำเร็จ

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- ทำให้ชิ้นส่วนหายไปจากแผงในลำดับ
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- รอสักครู่ก่อนที่จะทำให้เส้นทางกลับมา
task.wait(1.0)
-- รีเซ็ตเส้นทางโดยทำให้ชิ้นส่วนทั้งหมดเดินได้อีกครั้ง
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

แมทริคและ ipairs()

ipairs() ใช้กับ รายการ รายการ. สัญลักษณ์ "i" ใน ipairs() หมายถึง "ค้นหา" สามารถใช้ได้เพื่อทำซ้ำการดำเนินการบนจำนวนมากของเหตุการณ์เช่นกันเช่นกันเช่นกันเ

นี่จะแสดงให้เห็นโดยการเพิ่มอนุภาคให้กับโฟลเดอร์ของชิ้นส่วนอย่างรวดเร็ว

  1. ใน Workspace สร้างโฟลเดอร์ที่มีชื่อว่า PartsFolder เพิ่มจำนวนชิ้นส่วนตามที่คุณต้องการ

  2. ใน ServerScriptService สร้างสคริปต์ใหม่และอ้างอิงไฟล์เรียบร้อย

  3. ใช้ GetChildren() เพื่อรับรายการรายการทั้งหมดในโฟลเดอร์โดยอัตโนมัติ


    local partsFolder = workspace.PartsFolder
    -- รับรายการอันละเอียดใน PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. ใช้ in ipairs(ArrayToUse) กับ for ลูปเพื่อผ่านผ่านแผงลูกศรและเพิ่มอนุภาค

    สคริปที่สำเร็จ

    -- รับรายการอันละเอียดใน PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- เพิ่มอนุภาคให้กับทุกส่วนในคอลัมน์
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

ทดสอบและดูว่าอนุภาคจะลอยขึ้นจากแต่ละส่วนในโฟลเดอร์

สรุป

สามารถผสานกับแมทริคเพื่อให้สามารถทำงานกับค่าใด ๆ ได้อย่างรวดเร็ว หากคุณต้องการที่จะมีการควบคุมที่แน่นอนเกี่ยวกับสิ่งที่เกิดขึ้นกับบางส่วนและในลำดับใด ๆ แมทริคจะต้องถูกเข้ารหัสด้วย

เพื่อทำงานกับหลายส่วนที่คำสั่งไม่สำคัญได้รับChildren() สามารถสร้างรายการของบุตรของตัวอักษรได้ โดยใช้ ipairs() รายการสามารถเรียกใช้ได้อย่างรวดเร็วโดยไม่ต้องรู้ขนาดรายการ