Como mudar a cor do Player com Gradiente de Cores
Fala, galera! 🚀 Já imaginou dar aos seus jogadores a possibilidade de mudar a cor do personagem com apenas alguns cliques? Pois é exatamente isso que você vai aprender com a nossa nova aula no canal Programação for Kids! Vamos criar um círculo de gradiente de cores que funciona como uma paleta interativa.
🔵 O que é esse círculo de gradiente?
É uma interface super estilosa que mostra todas as cores de forma contínua. Com ela, o jogador pode clicar em qualquer ponto do círculo e aplicar instantaneamente a cor escolhida ao personagem. Essa funcionalidade deixa o jogo muito mais interativo e visualmente incrível! 🌈
🔑 Por que adicionar isso ao seu jogo?
Personalização é uma das melhores formas de engajar seus jogadores. Quando eles têm a liberdade de modificar elementos do jogo, como a aparência do personagem, a experiência se torna mais divertida e única.
Neste tutorial, você vai aprender:
- Como criar e configurar um menu GUI com círculo de gradiente.
- A usar scripts para que a troca de cores aconteça em tempo real.
- Técnicas simples e práticas para elevar o nível do seu jogo no Roblox Studio.
🔗 Assista agora:
Códigos para o Gradiente Color no Roblox Studio
local ReplicatedStorage= game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
RemoteEvent.OnServerEvent:Connect(function(player,data)
print("A cor recebida")
print(data)
print(player)
for i, part in pairs(player.Character:GetChildren()) do
print(part)
if part:IsA("BasePart") then
part.Color= data
end
end
end)
local ReplicatedStorage= game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
local screenGui = script.Parent
local frame = screenGui.Frame
local gradient = frame.UIGradient
local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255,0,0)),
ColorSequenceKeypoint.new(0.33, Color3.fromRGB(0,255,0)),
ColorSequenceKeypoint.new(0.66,Color3.fromRGB(0,0,255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255,255,0))
})
gradient.Color = colorSequence
local function getColorAtPosition(position)
local colorSequence = gradient.Color
local keypoints = colorSequence.Keypoints
local firstKeyPoint = keypoints[1]
local secondKeyPoint = keypoints[#keypoints]
for i=1, #keypoints-1 do
if position >= keypoints[i].Time and position <= keypoints[i+1].Time then
firstKeyPoint = keypoints[i]
secondKeyPoint = keypoints[i+1]
break
end
end
local alpha = (position - firstKeyPoint.Time) / (secondKeyPoint.Time - firstKeyPoint.Time)
local color = firstKeyPoint.Value:Lerp(secondKeyPoint.Value, alpha)
return color
end
local function getMousePosition(x)
local frameWidth= frame.AbsoluteSize.X
local position =(x - frame.AbsolutePosition.X) / frameWidth
position =math.clamp(position,0,1)
return position
end
frame.MouseMoved:Connect(function(x,y)
local position= getMousePosition(x)
local hoveredColor = getColorAtPosition(position)
print(hoveredColor)
RemoteEvent:FireServer(hoveredColor)
print(x,y)
end)