como criar jogos no roblox

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)
				
			

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *