By the end of this thread/if I receive a solution, I want the end result to achieve something similar to this:
To be completely honest, I have not tried to achieve this yet because the places where I did look for help were only between angles 0 and t1 (up to 360). I want to achieve something a bit more like between 45 and 90 then between 50 and 105. I want it to look non-linear aesthetically, not only programmatically so it’s angle will vary over time in sections. Any ideas?
1 Like
After looking into it, I got to work with someone’s WebApp module for creating radial images. After there, it was only a matter of how to get the animations I wanted, before I came up with this:
https://i.gyazo.com/b0c871edb9ffaa01a798ba6be902b208.mp4
The module I’m referring to is Radial Sprite Sheet Generator for Circular Progress Indicators. It’s a self-explanatory and easy-to-learn module.
The code used to create this effect:
local config = [[{"version":1,"size":120,"count":60,"columns":8,"rows":8,"images":["http://www.roblox.com/asset/?id=5194701797"]}]]
local radialModule = require(script.RadialModule)
local radialImage = radialModule.new(config, script.Parent.ImageLabel)
local radialImage2 = radialModule.new(config, script.Parent.ImageLabel2)
local t = 0
local r = 0
local decreasing = false
game:GetService("RunService").RenderStepped:Connect(function()
radialImage:UpdateLabel(t)
script.Parent.ImageLabel.Rotation = r * 360
radialImage2:UpdateLabel(1 - t)
script.Parent.ImageLabel2.Rotation = 360 - r * 360
if t >= 1 and not decreasing then
decreasing = true
t -= 0.01
elseif t < 0 and decreasing then
decreasing = false
t += 0.01
elseif decreasing then
t -= 0.01
else
t += 0.01
end
r += 0.005
end)