Hướng dẫn: làm một obby
Obby là đường vượt chướng ngại: nhảy từ bệ này sang bệ khác, tránh dung nham, tới đích. Trong bài này bạn dựng một obby bằng các đối tượng gameplay của KHIM - chạy được mà không cần code - rồi thêm một script ngắn cho vạch đích.
Mất khoảng 20 phút. Bạn cần cài sẵn KHIM Engine (Cài đặt và world đầu tiên).
1. Tạo world
Ở Home, bấm New world, đặt tên My Obby, chọn Flat ground và bấm Create. Bạn có một mặt đất tên Ground và một SpawnLocation - nơi người chơi xuất hiện.
TIP
Mẫu Obby là một bản hoàn chỉnh của đường đua kiểu này. Mở nó sau để so sánh.
2. Dựng các bệ
- Chèn một Part (nút + trên thanh công cụ, hoặc chuột phải vào khung nhìn).
- Trong Inspector đặt Size là
6, 1, 6. Giữ nguyên Anchored - part đã neo thì không bao giờ rơi hay bị đẩy. - Di chuyển nó (Ctrl 2) cách điểm hồi sinh một bước nhảy: khoảng 10 unit về phía trước và cao 1 unit.
- Bấm Ctrl D để nhân bản, rồi dời bản sao xa thêm một bước nhảy. Bấm Ctrl D lần nữa: mỗi bản sao mới lại cách bản trước đúng chừng ấy, nên cả một dãy bệ chỉ là một lần kéo và vài lần Ctrl D.
- Tô màu cho các bệ. Đổi tên chúng trong Hierarchy (F2):
Stage1,Stage2...
Thỉnh thoảng bấm F5 để chắc mọi cú nhảy đều làm được. Nhân vật đi 20 unit một giây và nhảy cao khoảng 6 unit.
3. Thêm dung nham
- Chèn một part mỏng ngang qua một bệ - kích thước
3, 0.2, 2- tô đỏ với vật liệu Neon. Đặt tênLava. - Đang chọn nó, mở Insert Object (chuột phải vào dòng của nó trong Hierarchy) và chọn Hazard trong nhóm Gameplay (no script needed).
Thế là xong: Hazard làm đau ai chạm vào part của nó. Damage mặc định là 100, cả một thanh máu, nên dung nham giết ngay. Số nhỏ hơn thì trừ máu mỗi giây người chơi còn đứng trên đó.
4. Thêm checkpoint
Đặt một Checkpoint lên vài bệ một lần (chọn bệ, Insert Object > Checkpoint). Sau khi chạm vào, người chơi chết sẽ hồi sinh ở đó thay vì ở điểm xuất phát.
5. Thêm xu
- Chèn một Sphere, kích thước
1.5, 1.5, 1.5, màu vàng, lơ lửng trên một bệ. Đặt tênCoin. - Insert Object > Pickup vào nó.
Pickup biến part thành vật nhặt được: neo và đi xuyên qua được, nó cộng 1 vào chỉ số Coins của người chơi (một cột trong bảng người chơi, tự tạo lần đầu) và quay lại sau 10 giây. Đổi Stat, Amount và Comes back after trong Inspector. Nhân bản đồng xu dọc đường đua.
6. Bệ nhảy
Chèn một part phẳng ở chỗ cú nhảy quá xa, và đặt một Boost lên nó. Chạm vào sẽ được tăng tốc độ đi và lực nhảy trong vài giây (Walk speed, Jump power và Lasts trong Inspector).
7. Vạch đích
Món gameplay cuối cần vài dòng code. Dựng một bệ vàng lớn ở cuối tên Finish, rồi chuột phải vào nó trong Hierarchy > Insert Object > Script. Nhấp đúp để mở script và thay nội dung bằng:
-- Vạch đích: thêm một lần thắng vào bảng người chơi, một dòng trong chat, rồi về lại đầu.
local finish = script.parent
local arriving = {}
players.joined:connect(function(player)
player.stats.Wins = 0 -- cột "Wins" trong bảng người chơi
end)
finish.touched:connect(function(hit)
local player = players.fromPart(hit)
if not player or arriving[player.name] then return end
arriving[player.name] = true
player.stats.Wins += 1
chat.send(player.displayName .. " đã lên tới đỉnh!")
task.wait(1.5)
player.position = world.SpawnLocation.position + vec3(0, 4, 0)
arriving[player.name] = nil
end)Nó làm gì:
script.parentlà part chứa script - chính là Finish.players.joinedchạy một lần cho mỗi người chơi vào game.player.stats.Wins = 0thêm cột Wins vào bảng người chơi (Tab).finish.touchedchạy mỗi khi có gì chạm vào part.players.fromPart(hit)đổi part vừa chạm thành người chơi, hoặcnilnếu đó không phải người chơi.arrivingngăn một người thắng nhiều lần khi đứng trên bệ.- Gán
player.positiontừ Script trên server là dịch chuyển họ.
Đọc Cơ bản về script để hiểu từng dòng.
8. Chạy thử kỹ
Bấm F5 và chơi hết đường đua. Kiểm tra:
- mọi cú nhảy đều làm được, có và không có bệ nhảy;
- dung nham giết, và bạn hồi sinh ở checkpoint gần nhất;
- xu được đếm trong bảng người chơi và xuất hiện lại;
- vạch đích cộng một lần thắng và đưa bạn về đầu.
Console (Ctrl J) hiện lỗi script màu đỏ - bấm vào để nhảy tới dòng lỗi. Xem Chạy thử và gỡ lỗi.
9. Go live
Lưu (Ctrl S), rồi bấm Go live (Alt P). Chọn Create a new game, đặt tên và bấm Create. Obby của bạn đã lên KHIM, ở chế độ riêng tư lúc đầu. Go live và Workshop giải thích cách công khai và cập nhật nó.
Làm thêm
- Bệ di chuyển: đặt một Motion vào part là nó tự trượt hoặc xoay (Chạm, Prompt và Zone).
- Bấm giờ cho từng người, lưu thời gian tốt nhất (Lưu dữ liệu).
- Một cửa hàng tiêu xu (Server và client).