I need to figure out how I can make it so tweening to mouse.position behaves like body velocity.
My issue is, basically if your mouse were to land on a player, if that player moved, it would still stop at that position where it hit the player. So if i’m throwing a projectile at a player’s head and they move, it’s gonna stop at where their head was.
I’ve tried looking up a solution on devforum but I couldn’t find anything, I even used google chrome.
Good suggestion but I would like to apply it to this script.
local PointA = Limb.Position
local PointB = MouseHit.Position
local Dist = (PointA - PointB).magnitude -- The distance between PointA and PointB
local TotalPoints = (Limb.Position - MouseHit.Position).Magnitude/30 -- The number of of times you want the projectile to "zig-zag"
local MaxOffset = 5 -- The max offset of each point in studs
local Duration = 0.1 -- The duration of the interpolation between each point
local Info = TweenInfo.new(Duration, Enum.EasingStyle.Linear)
for i = 1, TotalPoints do
-- First get the point on the linear path
local pointCF = CFrame.new(PointA,PointB) * CFrame.new(0, 0, -Dist * (i / (TotalPoints + 1)))
-- Calculate the offset of the point from the path
local offset = CFrame.new(math.random() * MaxOffset, math.random() * MaxOffset, 0)
-- Apply the offset to the point cframe
local finalPointCF = pointCF * offset
-- Move the part towards the final point cframe
local tween = TweenService:Create(NewBall, TweenInfo.new(Duration,Enum.EasingStyle.Linear), {CFrame = finalPointCF})
tween:Play()
wait(Duration)
end
local tween = TweenService:Create(NewBall, TweenInfo.new(Duration,Enum.EasingStyle.Linear), {CFrame = CFrame.new(PointB)})
tween:Play()
Tweening the position may work, I’m not quite sure what your goal is.
TweenService is very powerful, but it isn’t always the solution. When it comes to projectiles I’d use LinearVelocity (roblox.com), at least if they are going straight forward. LinearVelocity is BodyVelocity's replacement. It has plenty of features I have not yet experimented with, however from the little experimentation I have done I think this might be a good place to start looking.
If you wondered how you applied a linear velocity then this is how:
local vel = Instance.new("LinearVelocity")
... -- Configure different properties, such as VelocityConstraintMode
vel.Parent = newBall
I will try to use it in future projects, although this isn’t a solution to my problem I have been trying to find a replacement for body velocity since it’s deprecated, thank you so much!