如何使用网格制作建筑工具?(ROBLOX LUA)

我在使用lua进行编码时有些新手,目前我正在尝试制作一个游戏,让4个团队在规定时间内建造一个基地,然后进行战斗。虽然我能够让玩家建造,但没有网格系统,并且所有团队共享相同的工具。

因此,我的问题是:如何制作“建造工具”,使玩家能够使用网格系统进行建造?我还需要以某种方式使相应的团队只能在自己的平台上建造。

如果可能的话,还需要一个“幽灵块”,显示玩家即将放置块的位置。

以下是我为建筑工具编写的代码:

- 所有内容都在锤子工具的localscript中

local players = game:GetService("Players"local hammer = script.Parent - 会使玩家知道他们处于“建造模式”中的锤子工具

local player = game.Players.LocalPlayer

local mouse = player:GetMouse() - 从玩家获取鼠标

function placeBlock(Part)

    local position = mouse.Hit.p - 鼠标的位置,所以我可以在那里放置块

    local buildingBrickRed = Instance.new("Part") - 创建玩家将放置的零部件

    buildingBrickRed.Parent = workspace

    buildingBrickRed.BrickColor = BrickColor.new("Really red") - 使砖块变红

    buildingBrickRed.Size = Vector3.new(5,5,5) - 设置块的大小

    buildingBrickRed.CFrame = CFrame.new(位置) - 将块的位置设置为鼠标所在的位置

end

hammer.Activated:Connect(placeBlock)-当玩家激活工具时连接函数
点赞
用户11298075
用户11298075

我不确定编写 Roblox 的工作原理,但是对于网格,您可以通过将鼠标的坐标(假设这也是一个三维向量)除以砖块大小并四舍五入该值并再次乘以原始大小来改变它们。

function griddify(coordinate)
    return math.floor(coordinate / 5) * 5
end

print(griddify(31))    -->   30
print(griddify(31.4))  -->   30
print(griddify(3141))  --> 3140

如果您想检查他们是否在其平台上构建,则必须检查 xz 坐标是否在正确范围内。

如果您想拥有幽灵方块,则必须以鼠标坐标显示每个方块,而不实际构建它们。

2019-10-14 09:24:08