у меня есть EmoteWheel gui в нём находится WheelFrame в этом Frame находится кнопка close кнопка edit а так же Highlighted чтобы при наведение мыши на эмоцию Highlighted анимироволся по кругу куда я навожусь - специальный центр где будет название эмоции и внутри этого центра находится HighlightedCenter что бы он так же вместе с Highlighted следовал и был анимирован, а сами кнопки эмоций находяться в Frame под названием Holder
Создание интерфейса EmoteWheel с использованием GUI в Roblox может быть интересным проектом. Давайте разберем, как можно реализовать описанную вами структуру.
Вот пример кода, который может помочь вам реализовать описанную функциональность:
local ScreenGui = Instance.new("ScreenGui")
local WheelFrame = Instance.new("Frame")
local CloseButton = Instance.new("TextButton")
local EditButton = Instance.new("TextButton")
local Highlighted = Instance.new("ImageLabel")
local HighlightedCenter = Instance.new("ImageLabel")
local Holder = Instance.new("Frame")
-- Настройка ScreenGui
ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
-- Настройка WheelFrame
WheelFrame.Size = UDim2.new(0, 400, 0, 400)
WheelFrame.Position = UDim2.new(0.5, -200, 0.5, -200)
WheelFrame.BackgroundColor3 = Color3.new(0, 0, 0)
WheelFrame.Parent = ScreenGui
-- Настройка CloseButton
CloseButton.Size = UDim2.new(0, 100, 0, 50)
CloseButton.Position = UDim2.new(0, 10, 0, 10)
CloseButton.Text = "Close"
CloseButton.Parent = WheelFrame
-- Настройка EditButton
EditButton.Size = UDim2.new(0, 100, 0, 50)
EditButton.Position = UDim2.new(0, 120, 0, 10)
EditButton.Text = "Edit"
EditButton.Parent = WheelFrame
-- Настройка Highlighted
Highlighted.Size = UDim2.new(0, 100, 0, 100)
Highlighted.Position = UDim2.new(0.5, -50, 0.5, -50)
Highlighted.BackgroundColor3 = Color3.new(1, 1, 0) -- Цвет выделения
Highlighted.Parent = WheelFrame
-- Настройка HighlightedCenter
HighlightedCenter.Size = UDim2.new(0, 50, 0, 50)
HighlightedCenter.Position = UDim2.new(0.5, -25, 0.5, -25)
HighlightedCenter.BackgroundColor3 = Color3.new(1, 0, 0) -- Цвет центра
HighlightedCenter.Parent = WheelFrame
-- Настройка Holder
Holder.Size = UDim2.new(1, 0, 1, 0)
Holder.Position = UDim2.new(0, 0, 0, 0)
Holder.BackgroundTransparency = 1
Holder.Parent = WheelFrame
-- Пример добавления кнопок эмоций
for i = 1, 5 do
local EmoteButton = Instance.new("TextButton")
EmoteButton.Size = UDim2.new(0, 80, 0, 80)
EmoteButton.Position = UDim2.new(0.5 + math.cos((i-1) * (2 * math.pi / 5)) * 0.4, -40, 0.5 + math.sin((i-1) * (2 * math.pi / 5)) * 0.4, -40)
EmoteButton.Text = "Emote " .. i
EmoteButton.Parent = Holder
-- Анимация Highlighted при наведении
EmoteButton.MouseEnter:Connect(function()
Highlighted.Position = EmoteButton.Position
HighlightedCenter.Position = EmoteButton.Position
-- Здесь можно добавить анимацию
end)
end
-- Закрытие GUI
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
-- Редактирование (пока просто выводим сообщение)
EditButton.MouseButton1Click:Connect(function()
print("Edit button clicked")
end)
ScreenGui
и добавляем в него WheelFrame
, который будет содержать все элементы интерфейса.Highlighted
при наведении мыши.ScreenGui
, закрывая интерфейс.Highlighted
и HighlightedCenter
при наведении.Этот код является базовым примером, и вы можете адаптировать его под свои нужды.