嗨,我是 Roblox 开发的新手。我正在尝试制作一个有趣的网球游戏。我开始使用标准的游戏内物理将球从网的一侧击球到另一侧,但球移动得太快,其他人无法击球。
所以我需要更多地控制球的移动方式。当用户击中它时,我需要它稍微缓慢上升,然后下降到网另一侧的预设位置。我还需要球弹跳并继续移动。
我看过一些关于 BodyPosition、BodyForce 等内容的教程。但我不太明白要使用哪些。到目前为止,当球被击中时,我有一个 RemoteEvent,看起来像这样(如下)。我向球 (BallUnion) 添加了一个 BodyPosition 对象,其中 D = 1500,MaxForce = 1000,1000,1000 和 P=500。
它以正确的速度朝着我想要的方向移动,但它只是不断向天空移动而不会坠落。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = ReplicatedStorage:WaitForChild("HitBall")
remoteEvent.OnServerEvent:Connect(function(plr)
local direction = plr.Character.Head.CFrame.lookVector * 5
local newBall = script.Parent.BallUnion:Clone()
newBall.Parent = game.Workspace
newBall.Position = plr.Character.HumanoidRootPart.Position + plr.Character.Head.CFrame.lookVector * 2
local bodyPosition = newBall:WaitForChild("BodyPosition")
bodyPosition.Position = direction * 20 + Vector3.new(0,100,0)
--script.Parent.Anchored = false
--script.Parent:SetNetworkOwner(nil)
--script.Parent.BodyVelocity = direction * 6 + Vector3.new(0,40,0)
end)