Vạch đích
Thuộc phần Lập trình game Roblox trong hành trình Lua của Coddy. Bài học 24 trên 25.
Vạch đích ghi nhận một chiến thắng và đưa người thắng trở lại điểm xuất phát. player:LoadCharacterAsync() tạo nhân vật mới cho người chơi tại điểm xuất hiện của họ mà không cần chờ bộ đếm thời gian hồi sinh.
Việc này mất một lúc. Trước khi nhân vật mới xuất hiện, vạch đích vẫn kích hoạt Touched với các bộ phận cơ thể khác của nhân vật cũ, và mỗi lần kích hoạt đều sẽ được tính là một chiến thắng. Cơ chế chống kích hoạt lặp ngăn việc đó xảy ra. Mỗi người chơi cần có một cơ chế riêng, vì vậy nếu hai người chơi về đích cùng lúc thì cả hai đều được tính chiến thắng. Hãy lưu cơ chế này trong một bảng, dùng người chơi làm khóa:
local busy = {}
if not busy[player] then
busy[player] = true
-- Tính một trận thắng, đưa người chơi trở lại
task.wait(1)
busy[player] = nil
endbusy[player] đọc hoặc đặt mục trong bảng tương ứng với người chơi đó, và mục chưa có giá trị là nil. busy[player] = nil xóa mục đó, nên lần băng qua tiếp theo của họ lại được tính.
Thử thách
Trung bìnhCộng một lượt thắng mỗi khi người chơi chạm đến đệm đích màu vàng. Cơ chế chống kích hoạt lặp riêng cho từng người chơi đã sẵn sàng.
- Cộng 1 vào
Winscủa người chơi. - Đưa người chơi trở lại điểm bắt đầu bằng
player:LoadCharacterAsync(). - Sau
task.wait(1), xóa trạng thái chống kích hoạt lặp của họ trongbusyđể lượt chạy tiếp theo được tính.
Nhấn Chơi và chạy đến đích hai lần: Wins hiển thị 2. Sau đó nhấn Kiểm tra.
Tự làm thử
local Players = game:GetService("Players")
local finish = script.Parent
local busy = {}
finish.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and not busy[player] then
busy[player] = true
-- 1. Cộng 1 vào Wins của người chơi
-- 2. Đưa người chơi trở lại điểm xuất phát
-- 3. Sau 1 giây, cho phép người chơi thắng lần nữa
end
end)
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình game Roblox
2Vòng lặp và hàm
Hàng cột trụDựng cầu thangDựng tòa thápNhà máy sản xuất đồng xuĐèn nhấp nháyCây cầu biến mất5Trò chơi đầu tiên của bạn
Obby đầu tiên của bạn3Sự kiện và người chơi
Tấm đệm cảm ứngSàn dung nhamLeaderstatsAi đã chạm vào?Thu thập xuXu xuất hiện lạiCửa xuTự luyện tập: Trình biên dịch Lua online