Итак простенькое решение для красивых статус-баров любой формы.
Нам понадобятся… 2 картинки.
На первой картинке будет изображение пустого состояния.
На второй картинке состояние полного статуса.
Нет, я не ошибся. Вторая картинка перевёрнутая. А первая сделана из второй простым переводом её в чёрно-белое изображение.
В Explorer добавим наши GUI элементы. Выглядеть это будет так:
Теперь об элементах:
Gradient-Heart — обычный фрейм для нашего сердца
txt — просто метка, выводит текущий процент
img2_back — фоновое изображение сердца, оно же пустое
- ZIndex=1
- ScaleType = Stretch
img1 — полное, перевёрнутое, сердце
- ZIndex=2 — поверх пустого
- Rotation = 180 — перевернуть
- ScaleType = Tile
- TileSize = {1, 0},{9, 0}
- Size = {1, 0},{0.1, 0}
- Position = {0, 0},{0.9, 0}
Выглядеть на экране это будет примерно так:
Как вы заметили, img1 прижата к нижней части фрейма. Но при этом растянуто по всей ширине.
Ну… Чисто для наглядности я им обоим установил прозрачность на 50%.
- ImageTransparence = 0.5
Перейдём к скрипту и тому как же это работает?
me = script.Parent while true do wait(5) -- ждём, прежде чем начать заполнять for i = 0,100 do local proc=i -- процент заполненного изображения me.Position=UDim2.new(0,0,1-proc/100,0) -- положение по Y me.Size=UDim2.new(1,0,proc/100,0) -- размер по Y me.TileSize=UDim2.new(1,0,100/proc,0) -- скалирование по Y me.Parent.txt.Text = tostring(i) .. "%" wait(0.02) end wait(5) -- ждём, прежде чем начать опустошать for i = 100,0,-1 do local proc=i me.Position=UDim2.new(0,0,1-proc/100,0) me.Size=UDim2.new(1,0,proc/100,0) me.TileSize=UDim2.new(1,0,100/proc,0) me.Parent.txt.Text = tostring(i) .. "%" wait(0.02) end end
Собственно в скрипте нет ничего сверхъестественного.
Мы просто в цикле меняем процент заполнения и по нему формируем новый UDim2 (по русски размер и позицию) для заполненного изображения. И надпись на метке меняем.
Как то вот так решил задачу для прогресс баров сложной формы и расцветки.
На решение данной задачки у меня ушло… где-то полчаса. И поверьте, я гораздо больше времени потратил на то, чтобы это тут описать.
Пользуйтесь на здоровье. Но не забывайте об авторском праве.