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 por jogadores para desbloquear novas áreas, dar pontos e revelar tesouros.Sempre que um jogador toca em um botão, ele deve dar algum feedback para deixar os jogadores saberem que estão sendo interagidos, como mudar as cores 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á pela ponte quando tentar caminhar sobre ele.

Faça uma ponte

Comece por configurar a ponte.

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

  2. Crie uma peça para a ponte e renomeie-a Ponte.

  3. Selecione a ponte, na janela Propriedades:

    • Altere Transparência para .5. Para Transparência, 0 é visível, 1 é invisível.
    • Verifique Âncora .
    • Desmarque Pode Colidir .
  4. Teste o jogo, a ponte deve ser enevoada e as pessoas não devem ser capazes de caminhar sobre ela ainda.

Crie o botão

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

  1. Crie uma nova peça chamada Botão.
  2. Mude a cor do botão para vermelho.
  3. Ancorar o botão.
  4. Mova o botão para que ele fique ligeiramente flutuando e não tocando em nada. Isso é para garantir que o evento Touched não Iniciar / executaracidentalmente.

Torne o botão interativo

Desta vez, em vez de usar o evento Touched para criar uma armadilha, você o usará para criar um botão que tornará 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 no botão.Você sabe tudo o mais 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 naquele botão chamado AtivarPonte.
  2. Excluir Hello World .
  3. Crie variáveis para a ponte e para o botão.
  4. Crie uma função local que faça o seguinte quando o botão for tocado:
    • Impressões "button touched" .
    • Muda a cor do botão de alterações de vermelho para verde quando tocado.
    • Muda 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 do botão Touched.
  6. Teste o script e certifique-se de que a ponte aparece quando o botão é tocado.

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


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

Resolva problemas com seu código

Problema: A ponte já está sólida quando o jogo começa.: Certifique-se de que as peças estejam Ancoradas e não estejam tocando em nada.As peças podem tocar em algo, como terreno ou outra peça, e causar a função buttonPressed() a disparar acidentalmente. Problema: Você recebe um erro na janela de Saída dizendo: "A ponte não é um membro válido do Workspacede Trabalho" Verifique o seguindo:

  • A nomeação de sua ponte. A ponte em seu script deve ser chamada exatamente como no Explorador.
  • Aquela 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 seguindo:

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

Sua versão pode parecer algo assim:


local button = script.Parent
-- Lembrete: Substitua o nome da peça, Portão, pelo da sua proposta
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Mudar o botão de alterações para vermelho para dar comentário/retornoao jogador
button.BrickColor = BrickColor.Red() -- MUDE ISSO
-- Torne o portão invisível
gate.Transparency = 1
-- Faz com que o jogador possa caminhar pelo portão
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)