BLOG PROGRAMAÇÃO FOR KIDS

Programação para Crianças: Como Aprender Criando Jogos de Forma Divertida

Descubra como a programação para crianças pode desenvolver raciocínio lógico, criatividade e autonomia através de jogos, desafios e projetos práticos no Roblox e em outras plataformas.

Para pais, crianças e adolescentes Aprendizado criativo Roblox • Lógica • Tecnologia
Programação para crianças aprendendo com jogos

Como Criar uma Roleta de Prêmios Funcional no Roblox Studio com GUI e Lua

🎮 Já pensou em deixar seu jogo no Roblox mais divertido e interativo com uma roleta de prêmios animada?

Neste post, você vai aprender como criar uma roleta giratória com sorteios reais, usando GUI, TweenService e scripts em Lua. Uma aula prática, visual e perfeita para quem está começando a desenvolver jogos no Roblox Studio.

Vamos montar juntos cada parte: a imagem da roleta, o ponteiro central, o cálculo do sorteio e a animação suave — tudo de forma fácil e explicada passo a passo!

Veja o Passo a Passo da Criação da Roleta no Roblox Studio

🎥 Assista à aula completa no vídeo abaixo:
Nele, você vai acompanhar cada passo da criação da roleta de prêmios no Roblox Studio — desde a montagem do GUI até o cálculo exato do prêmio sorteado.

💡 No final da aula, eu mostro um truque super útil que deixa a roleta girando com muito mais fluidez, sem balançar ou errar o prêmio. Imperdível!

Scripts Utilizados na Aula

Aqui você encontra os scripts completos e atualizados usados nesta aula.
Eles foram criados com foco no aprendizado de crianças e adolescentes, com lógica simples e clara — perfeitos para quem quer entender como fazer sorteios funcionais no Roblox sem complicação.

Basta copiar, colar no Roblox Studio e testar sua própria roleta!

Server Script

				
					local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent= ReplicatedStorage:WaitForChild("RemoteEvent")
local PlayerData={}


RemoteEvent.OnServerEvent:Connect(function(player,data)
	print("Recebi um premio lá do cliente")
	print(player)
	print(data)
	PlayerData[player.UserId].moedas += data
	print(PlayerData)
	RemoteEvent:FireClient(player, PlayerData[player.UserId].moedas)
end)




Players.PlayerAdded:Connect(function(player)
	PlayerData[player.UserId] = {moedas=0}
	print(PlayerData)
end)
				
			

LocalScript - Gui Moedas

				
					local Players = game:GetService("Players")
local player = Players.LocalPlayer

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent= ReplicatedStorage:WaitForChild("RemoteEvent")

local TextLabel = script.Parent.Frame.TextLabel




RemoteEvent.OnClientEvent:Connect(function(data)
	print("Gui moedas eu recebi um alerta")
	print(data)
	TextLabel.Text= data
end)

				
			

LocalScript - Roleta

				
					local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent= ReplicatedStorage:WaitForChild("RemoteEvent")


local girando = false

local premios = {1,10,20,100,40000}

local totalpremios = #premios

local voltas =10


local FrameRoleta = script.Parent.FrameRoleta
local Roleta = FrameRoleta:WaitForChild("ImageLabel")
local Button = script.Parent.FrameButton.TextButton
local anguloAtual = 0

local function GirarRoleta()
	print("Girar a roleta")
	local anguloPorSetor = 360/totalpremios
	local anguloAleatorio = math.random(0,359)
	print(anguloAleatorio)
	local anguloNovo = 360 * voltas + anguloAleatorio
	anguloAtual += anguloNovo
	
	local tweenInfo = TweenInfo.new(4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
	local tween = TweenService:Create(Roleta, tweenInfo, {Rotation = - anguloAtual})
	tween:Play()
	
	local anguloVisivel = anguloAtual % 360

	local anguloAjustado = (anguloVisivel + anguloPorSetor /2) % 360
	local indicePremio = math.round(anguloAjustado/ anguloPorSetor) % totalpremios + 1
	print(indicePremio)
	
	tween.Completed:Connect(function()
		local premio = premios[indicePremio]
		print("Parabéns você ganhou".. premio)
		RemoteEvent:FireServer(premio)
	end)
	
end

Button.MouseButton1Up:Connect(function()
	if girando then return end
	girando=true
	
	GirarRoleta()
	wait(7)
	girando=false
end)
				
			

Imagens utilizadas

Quer aprender ainda mais?

💻 No nosso site você encontra cursos completos de programação para crianças e adolescentes, com apostilas, desafios e certificado gratuito!

👉 Acesse agora: https://programacaoforkids.com.br/cursos/

Já conhece o nosso canal no Youtube?

Se inscreva no canal Programação for Kids no YouTube e receba toda semana aulas novas sobre como criar jogos, apps e sistemas incríveis no Roblox Studio!

🎥 Inscreva-se aqui: https://youtube.com/@programacaoforkids

🎥 Outros tutoriais que você pode gostar:

2
    2
    Seu Carrinho