Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

How can I determine where the part touches something at?

Asked by 4 years ago
Edited 4 years ago

I wanted to try adding Magnus Effect to a ball when I shoot it (It means the ball curves like in football/soccer).

Here's a reference to what I'm talking about

Video

Illustration

Here's what I did (It's a function for a ModuleScript) Note that this is not the whole script, I removed some unnecessary things from the script that you don't need to see

function module.magnuseffect(b) --b refers to the Ball
    local limb = RL --RL refers to Right Leg
    local arm = RA --RA refers to Right Arm

    local mag = ((b.Position - arm.Position).Magnitude)-((b.Position - 
        limb.Position).Magnitude) --Calculates the difference between the Magnitudes

    local curlnone = (function()
        -- No curve applies to ball
    end)

    local curlright = (function()
        -- Ball curves to the right
    end)

    local curlleft = (function()
        -- Ball curves to the left
    end)

    if mag < 1.5 then
        curlright()
    elseif mag > 2.35 then
        curlleft()
    else
        curlnone()
    end
end

The problem is that it is not actually as accurate because when you are too far back behind the ball sometimes It won't curve even though it didn't hit the middle part of the ball (Because it checks the Magnitude of the distance between the ball and the Arm)

Is there a better solution for this? Thank you.

Answer this question