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

Heart Beating UI | Best Way To Go At It? | Improving In Future |

Asked by 4 years ago
Edited 4 years ago

Hey, I'm Sonicbulletwolf1!

Explanation

I'm working on a UI system and this included a heart icon that beats every few seconds. I will provide resources below, but I noticed with bigger moment it would change where the position Is. Understanding that changing the size will, of course, change the location of the icon. This is where I have trouble. Though I want to first look at my code and see if its the most efficient / best way to go at it.

Side Note: The current script works with smaller movements.

Resources:

-- HeartUIHandler
-- author Sonicbulletwolf
-- since 5/6/2020

local phase1, phase2, phase3 = true,false,false
local tweenService = game:GetService("TweenService")

while wait(1) do
    if phase1 then
        phase1 = false
        phase2 = true
    elseif phase2 then
        script.Parent:TweenSize(
            UDim2.new(.0365, 0, .1065, 0),
            "Out",
            "Elastic",
            1,
            false
        )
        phase2 = false
        phase3 = true
    else
        script.Parent:TweenSize(
            UDim2.new(.035, 0, .105, 0),
            "In",
            "Elastic",
            1,
            true
        )
        phase3 = false
        phase1 = true
    end
end

Video Resources

Smaller Movements [ Current Script] https://media.giphy.com/media/L3R8S83yoX1ewSqkhZ/giphy.gif

Macro Movements [ Slighty Changed Script] https://media.giphy.com/media/S9u8JVAgWT19CMVa8T/giphy.gif

Further Explanation

In this model, or test you can see that with micromovements it wouldn't seem to change, but it did. The task I'm having trouble with is understanding how to use TweenService Size and Position with different inputs given.

Expanding on this idea, when you take damage the heart handler will retrieve that amount and expand in size based on it. Meaning, I won't have a set number to fall back on. In short, it will differ based on the amount of damage the user takes.

I do understand that after about a second I could change the size and position back to the original form, which I didn't do in the current script.

My question is do you think I would have to worry that much about the changing of position? If so, in theory, what would be the best way to formulate the size and position?

Answer this question