Các biến hóa có thể được kết hợp với các lặp, such as while và for , để 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.
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.
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 = {}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.
Để 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.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}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 doendVì 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 dotask.wait(VANISH_RATE)endĐể 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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endXem 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ộ.
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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)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ạifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endThử 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.
Ở 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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Đợi một giây trước khi đường dẫn lại xuất hiệntask.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ạifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendKiể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.0local 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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Đợi một giây trước khi đường dẫn lại xuất hiệntask.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ạifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
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.
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.
Trong ServerScriptService, tạo một mô-đun mới và tham khảo thư mục.
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 PartsFolderlocal partsArray = partsFolder:GetChildren()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 PartsFolderlocal partsArray = partsFolder:GetChildren()-- Thêm các hạt vào mỗi phần trong массивfor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
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.