Các khoảng trống và dàn trống

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Các biến hóa có thể được kết hợp với các lặp, such as whilefor , để lặp lại cùng một mã cho mỗi giá trị đã lưu. Ví dụ, dịch dữ liệu của mỗi người chơi trong một mat阵 sang một nơi mới hoặc làm cho một mat阵 của các bộ phận bị l

Để khám phá lặp lại qua các bảng, tạo một con đường cầu dấu không hiển thị nơi các bộ phận được đặt vào một bảng và sau đó được tạo ra để biến mất một cách nào đó.

Lặp qua một阵

Đối với dự án, tìm hoặc tạo một bộ ba phần để làm mất tích. Các phần phải được kết dính.

  1. Tạo ba phần. Đặt tên các phần theo thứ tự mà chúng nên biến mất, Part1, Part2, Part3.

  2. Trong ServerScriptService, hãy tạo một script mới và lưu một bảng để lưu các bộ phận.


    local pathArray = {
    }
  3. Trên một dòng mỗi, hãy nhập tên các bộ phận theo thứ tự mà chúng nên biến mất. Sử dụng dòng mới cho mỗi giá trị làm cho dễ dàng đã xemhơn.


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

Sử dụng for Loop với một阵

Sử dụng for loop để đi qua danh sách và kiểm tra tốc độ mà các bộ phận nên biến mất trong trật tự mà các bộ phận được xếp chỉnh trong danh sách.

  1. Để kiểm soát tần suất mà một phần nào đó biến mất trong giây lát, tạo một biến tối nhỏ có tên là VANISH_RATE . Để kiểm tra, tốt nhất là giữ nó ở một số nhỏ.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Tạo một for loop với những thứ theo dõi: Bắt đầu: partIndex = 1 , index của giá trị đầu tiên trong danh sách. Kết thúc: 1> #pathArray1> , kích thước của hàng đó.


    for partIndex = 1, #pathArray do
    end
  3. Vì vậy, có một thời gian trễ trước khi một phần biến mất, trong vòng lặp, thêm một task.wait() bằng cách sử dụng VANISH_RATE .


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Để nhận một phần biến mất, tạo một biến mới có tên whichPart và đặt nó bằng cách partsArray[partIndex] . Sau đó, để biến đó biến mất, đặt giá trị CanCollide của nó để false và đặt transparency thành 1.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Xem xét các bộ phận của con đường biến mất theo thời gian.

Mẹo dịch vụ

Nếu cầu không biến mất, hãy kiểm tra các vấn đề có thể xảy ra dưới đây: Vấn đề:: Các bộ phận biến mất quá nhanh hoặc tất cả đã đi vào bắt đầu.

  • Tùy thuộc vào tốc độ nhanh của nhân vật của bạn vào trải nghiệm, các bộ phận đầu tiên có thể đã bị tàng hình. Để đối phó với điều này, hãy thêm một vài giây chờ, chẳng hạn như task.wait(2), ở đầu trang của script.

Lập trình Vòng thứ hai

Ngay bây giờ, các bộ phận biến mất vĩnh viễn. Để làm cho chúng xuất hiện lại, tạo một giây cho vòng lặp sẽ đi qua mỗi bộ phận và ngay lập tức làm cho mỗi bộ phận trở nên đi bộ.

  1. Sau lần lặp đầu tiên, thêm một task.wait() để tạo một thời gian trễ ngắn trước khi con đường xuất hiện lại.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. Trên cá nhân của bạn , hãy thử lập trình một lần nữa để làm cho con đường có thể sử dụng trở lại bằng cách thay đổi tính CanCollide của mỗi bộ phận thành true và Transparency để 0. Khi hoàn thành, kiểm tra công việc của bạn chống lại mã bên dưới.


    -- Đặt lại con đường bằng cách làm cho tất cả các bộ phận có thể di chuyển trở lại
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Thử nghiệm dự án để xác nhận rằng một khi tất cả các bộ phận biến mất, chúng sẽ trở quay lại.

Lặp lại với một while

Các bộ phận biến mất và xuất hiện lại, nhưng chỉ một lần. Để làm cho mã được lặp lại, hãy ghép tất cả các mã trong một chuỗi thời gian.

  1. Ở dưới của script, tạo một cái mới while true do loop. Sau đó, di chuyển cả hai for loops into while loop.


    while true do
    -- Làm một phần biến mất khỏi ma trận để
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Đợi một giây trước khi đường dẫn lại xuất hiện
    task.wait(1)
    -- Đặt lại con đường bằng cách làm cho tất cả các bộ phận có thể di chuyển trở lại
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Kiểm tra xem tất cả các bộ phận biến mất sau đó hồi sinh.

Một phiên bản hoàn thành của dự án có thể được tải xuống.

Tập lệnh đã hoàn thành

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Làm một phần biến mất khỏi ma trận để
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Đợi một giây trước khi đường dẫn lại xuất hiện
task.wait(1.0)
-- Đặt lại con đường bằng cách làm cho tất cả các bộ phận có thể di chuyển trở lại
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Ma trận và ipairs()

ipairs() được sử dụng với mảng . The "i" in ipairs() đứng cho "索引".ipairs() có thể được sử dụng để nhanh chóng lặp lại một hành động trên nhiều đối tượng, chẳng hạn như, nói, một thư mục đầy các bộ phận.

Điều này sẽ được chứng tỏ bằng cách nhanh chóng thêm các hạt vào toàn bộ thư mục của các bộ phận.

  1. Trong Workspace, tạo một thư mục tên là PartsFolder. Thêm bao nhiêu bộ phận nào bạn muốn.

  2. Trong ServerScriptService, tạo một mô-đun mới và tham khảo thư mục.

  3. Sử dụng GetChildren() để tự động nhận một danh sách danh sách tất cả các tập tin trong thư mục.


    local partsFolder = workspace.PartsFolder
    -- Lấy một danh sách bộ phận trong PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. Sử dụng in ipairs(ArrayToUse) với for lặp để qua các bộ phận Array và thêm các hạt.

    Tập lệnh đã hoàn thành

    -- Lấy một danh sách bộ phận trong PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- Thêm các hạt vào mỗi phần trong массив
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Chơi thử và quan sát các hạt nhôm nổi lên từ mỗi bộ phận trong thư mục.

Tổng kết

Các lỗ hợp có thể được kết hợp với các ma trận để làm việc với bất kỳ số lượng giá trị nào nhanh chóng. Nếu bạn muốn có sự kiểm soát chính xác về những gì xảy ra với một vài bộ phận và trong đúng thứ tự, một ma trận phải được mã hóa cẩn thận với các giá trị cụ thể.

Để làm việc với nhiều phần mà sự sắp xếp không quan trọng, GetChildren() có thể tạo một danh sách các con của một đối tượng. Sử dụng ipairs(), danh sách có thể được lặp nhanh chóng mà không biết kích thước danh sách.