Trong Giới thiệu về lập trình, bạn đã học cách thay đổi trong trải nghiệm trong một vòng lặp theo thời gian.Thế nào nếu bạn muốn thực hiện các thay đổi dựa trên hành vi của người dùng? Trong hướng dẫn này, bạn sẽ học cách tạo một tầng sàn dung nham chết người mà giết người khi họ bước vào nó.
Thiết lập
Bạn cần một nơi trên thế giới để đặt dung nham chết người.Nếu bạn tuân theo khóa học Giới thiệu về lập trình, sàn nham sẽ phù hợp tốt trong khoảng trống được bao phủ bởi các nền tảng biến mất.
Hãy nhập vào Part và di chuyển nó vào chỗ trong thế giới của bạn. Đặt tên nó là LavaFloor .
Thay đổi kích cỡ để nó bao phủ sàn của không gian bao quanh.
Làm cho sàn nhà trông giống như dung nham bằng cách đặt thuộc tính Material thành Neon và Color thành màu cam.
Chèn một Tập lệnh vào phần LavaFloor và đổi tên thành Kill.
Loại bỏ mã mặc định và tạo một biến cho dung nham.
local lava = script.Parent
Kết nối với một sự kiện
Sử dụng một sự kiện event để phát hiện khi người dùng chạm vào dung nham.Mỗi phần có một sự kiện Touched xảy ra khi có thứ gì đó chạm vào nó.Bạn có thể kết nối với sự kiện này để chạy chức năng khi nó bắt lửa.
Tuyên bố một chức năng mới có tên là kill.
Truy cập sự kiện Touched trên đối tượng dung nham bằng một chấm, giống như một thuộc tính: lava.Touched .
Gọi chức năng Connect trên sự kiện Touched, truyền kill() như chức năng được gọi khi phần được chạm vào.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Bất kỳ mã nào bạn viết trong chức năng kill sẽ chạy bất cứ khi nào có thứ gì đó chạm vào dung nham.Lưu ý rằng một colon được sử dụng cho chức năng Connect, không một chấm tròn - đừng lo lắng vì sao lúc này, chỉ cần nhớ sự khác biệt.
Lấy phần tiếp xúc
Để giết người dùng, chức năng sẽ cần một đối tượng liên quan đến người dùng đó.Sự kiện của một phần có thể cung cấp "phần khác" đã chạm vào nó - nhưng chỉ khi bạn yêu cầu nó bằng cách làm nó trở thành một tham số của chức năng.
Tham số là định nghĩa về những gì một chức năng mong đợi nhận khi nó được gọi.Một tham số có thể được sử dụng trong chức năng giống như bất kỳ biến nào khác.Bạn có thể truyền thông tin đến một tham số bằng cách bao gồm nó trong dấu ngoặc khi một chức năng được gọi.Các tham số được định nghĩa trong dấu ngoặc trên dòng đầu tiên của một chức năng.Tạo một tham số được gọi là otherPart cho chức năng kill.
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Khi chức năng kill được gọi, tham số otherPart sẽ đại diện cho phần chạm vào sàn dung nham, và mã bạn sẽ viết trong chức năng sẽ có thể sử dụng nó.
Nhân vật và hình người
Khi một người dùng chạm vào dung nham, Roblox có thể phát hiện phần cơ thể cụ thể của người dùng đã chạm vào nó, chẳng hạn như chân trái hoặc chân phải.Phần này nằm trong mô hình Nhân vật của người dùng, chứa tất cả các đối tượng tạo nên avatar của người dùng trong trải nghiệm, bao gồm:
- Các bộ phận cơ thể cá nhân của người dùng như đầu, chi và thân.
- Bất kỳ quần áo và phụ kiện nào mà người dùng mặc.
- The Humanoid , một đối tượng đặc biệt chứa nhiều thuộc tính liên quan đến người dùng, bao gồm sức khỏe của người dùng.
- Phần HumanoidRootPart kiểm soát chuyển động của người dùng.
Như đã lưu ý trước đó, bất kỳ phần cơ thể nào tiếp xúc với dung nham là một phần của mô hình Nhân vật, vì vậy bạn có thể nhận được một tham chiếu đến nhân vật đó với otherPart.Parent .Tạo một biến để lưu phần cha của phần đã chạm vào sàn dung nham.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Từ mô hình nhân vật, bạn sẽ cần phải lấy được đối tượng Humanoid để giết người dùng.Bạn có thể làm điều này với chức năng FindFirstChild() — chỉ cần truyền tên của thứ bạn đang tìm kiếm và nó cung cấp đứa con phù hợp đầu tiên nó tìm thấy trong đối tượng đó.Gọi FindFirstChild() trên biến partParent với "Humanoid" như con để tìm và lưu kết quả trong một biến mới có tên là humanoid .
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Kiểm tra humanoid
Bạn có thể dễ dàng kiểm tra xem Humanoid đã được tìm thấy bằng cách sử dụng một tuyên bố if .Mã trong một tuyên bố if chỉ sẽ chạy nếu điều kiện được định nghĩa trong dòng đầu tiên là đúng.
Có nhiều loại hoạt động có thể được sử dụng để xây dựng các điều kiện phức tạp hơn mà bạn sẽ gặp phải trong các khóa học trong tương lai - bây giờ, chỉ cần đặt biến humanoid ở đó.Tạo một if tuyên bố với humanoid như điều kiện.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
Đặt sức khỏe nhân vật
Bây giờ khi Humanoid đã được kiểm tra, các thuộc tính của nó có thể được thay đổi.Nếu bạn đặt thuộc tính Health của nó thành 0 , nhân vật liên quan sẽ chết.Trong thân của tuyên bố if, hãy đặt thuộc tính Health của humanoid thành 0.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
Với điều đó, sàn nhà dung nham của bạn đã hoàn thành! Kiểm tra trải nghiệm của bạn và bạn nên tìm thấy rằng dung nham chết người của bạn thành công giết người trong tiếp liên hệ.Thử sử dụng dung nham của bạn như một thử thách bổ sung trong một obby, hoặc như giới hạn cho một thế giới.
Mã cuối mã
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)