Prática de parâmetros - botões

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Botões podem ser usados pelos jogadores para desbloquear novas áreas, dar pontos e revelar tesouros. Sempre que um jogador tocar em um botão, ele deve oferecer algum feedback para informar aos jogadores que está sendo interagido, como mudar de cor ou fazer sons.

Neste exemplo, o botão será usado para ativar uma ponte. Quando o botão for pressionado, ele ficará verde e os jogadores poderão usar a ponte. Se o jogador não pressionou o botão, ele cairá através da ponte quando tentar andar sobre ela.

Fazer uma ponte

Comece configurando a ponte.

  1. Crie uma área em seu ambiente onde os jogadores precisarão de uma ponte.

  2. Crie uma parte para a ponte e renomeie-a para Ponte.

  3. Selecione a ponte, na janela de Propriedades:

    • Mude Transparência para .5. Para Transparência, 0 é visível, 1 é invisível.
    • Marque Ancorar.
    • Desmarque PodeColidir.
  4. Quando você testará a experiência, a ponte deve parecer nebulosa e as pessoas não deverão poder andar sobre ela ainda.

Criar o botão

Agora que a ponte está configurada, crie o botão.

  1. Crie uma nova parte chamada Botão.

  2. Mude a cor do botão para vermelho.

  3. Ancore o botão.

  4. Mova o botão para que ele flutue levemente e não toque em nada. Isso garante que o evento Tocado não seja acionado acidentalmente.

Tornar o botão interativo

Desta vez, em vez de usar o evento Tocado para criar uma armadilha, você o usará para criar um botão que torna a ponte utilizável. Para tornar a ponte colidível, use o código bridge.CanCollide = true dentro de uma função personalizada que é executada quando um jogador toca o botão. Você sabe tudo que precisa para completar os seguintes passos.

Tente descobrir sozinho antes de olhar para a solução de código.

  1. Insira um novo script no botão chamado AtivarPonte.
  2. Exclua Hello World.
  3. Crie variáveis para a ponte e para o botão.
  4. Crie uma função local que faz o seguinte quando o botão é tocado:
    • Imprime "botão tocado".
    • Muda a cor do botão de vermelho para verde quando tocado.
    • Altera a transparência da ponte para 0 para torná-la visível.
    • Torna a ponte utilizável usando o código bridge.CanCollide = true
  5. Conecte a função ao evento Tocado do botão.
  6. Teste o script e verifique se a ponte aparece quando o botão é tocado.

Solução de Código Abaixo está uma possível solução de código


-- Insira este script no botão
-- Muda o botão para verde quando algo toca o botão.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("botão tocado")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

Solucione seu código

Problema: A ponte já está sólida quando a experiência começa. Certifique-se de que as partes estão ancoradas e não estão tocando em nada. As partes podem tocar em algo, como terreno ou outra parte, e causar a função buttonPressed() a ser acionada acidentalmente.

Problema: Você recebe um erro na janela de Saída dizendo: "A Ponte não é um membro válido do Workspace" Verifique o seguinte:

  • O nome da sua ponte. A ponte em seu script deve ser nomeada exatamente como no Explorer.
  • Que part.Touched:Connect(buttonPressed) está fora da função buttonPressed().

Desafio de código opcional

O script nesta lição também pode ser usado para manter portas que mantém os jogadores fora de áreas específicas. Pratique suas habilidades de codificação e faça o seguinte:

  • Crie uma parte de porta.
  • Crie um botão mais distante da porta.
  • Altere o script nesta lição para que faça a porta mudar de transparência e para que o jogador não possa colidir com ela.

Sua versão pode ser algo assim:


local button = script.Parent
-- Lembre-se: Troque o nome da parte, Porta, pelo que está em seu projeto
local gate = workspace.Gate
local function buttonPressed()
print("botão tocado")
-- Muda o botão para vermelho para dar feedback ao jogador
button.BrickColor = BrickColor.Red() -- ALTERE ISTO
-- Faz com que a porta fique invisível
gate.Transparency = 1
-- Faz com que o jogador consiga atravessar a porta
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.