Botões podem ser usados por jogadores para desbloquear novas áreas, dar pontos e revelar tesouros. Sempre que um jogador toca um botão, ele deve dar algum feedback para deixar os jogadores saberem que está interagindo com ele, como mudar 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, eles cairão através da ponte quando tentarem caminhar sobre ela.
Faça uma Ponte
Comece configurando o bridge.
Crie uma área em seu jogo onde os jogadores precisarão de uma ponte.
Crie uma parte para a ponte e renomeie-a Ponte.
Selecione a ponte, na janela Propriedades:
- Altere Transparência para .5. Para Transparência, 0 é visível, 1 é invisível.
- Verifique Âncora .
- Desmarque Colisão pode Colidir .
Teste o jogo, a ponte deve parecer nebulosa e as pessoas não devem poder caminhar sobre ela ainda.
Criar o Botão
Agora que a ponte está configurada, crie o botão.
- Crie uma nova peça chamada Botão.
- Altere a cor do botão para vermelho.
- Ancorar o botão.
- Mova o botão para que ele flutue um pouco e não toque em nada. Isso é para garantir que o evento Touched não Iniciar / executarinadvertidamente.
Tornando o Botão Interativo
Desta vez, em vez de usar o evento Touched para criar uma armadilha, você usará-a para criar um botão que torna a ponte usá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 o que prec
Tente descobrir por conta própria antes de olhar para a solução de código.
- Insira um novo script no botão chamado ActivateBridge.
- Excluir Hello World.
- Crie variáveis para a ponte e para o botão.
- Crie uma função local que faz o seguinte o botão é tocado:
- Impressões "button touched".
- Muda a cor do botão de vermelho para verde ao tocá-lo.
- Altera a transparência da ponte para 0 para torná-la visível.
- Torna a ponte usável usando o código bridge.CanCollide = true
- Conecte a função ao evento Touched do botão.
- Teste o script e certifique-se de que a ponte apareça quando o botão for tocado.
Abaixo está uma solução de código possível
-- Insira este script em um 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)
Troubleshooting do seu código
Problema: A ponte já está sólida quando o jogo começar. Certifique-se de que as peças estão ancoradas e não tocando em nada. As peças podem tocar alguma coisa, como terreno ou outra peça, e causar o botãoPressed() acionar acidentalmente. Problema: Você recebe um erro na janela de saída dizendo: "A ponte não é um membro válido do Workspace" Verifique o seguindo:
- A nomeação da sua ponte. A ponte em seu script deve ser nomeada exatamente como na Explorador.
- 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 as 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 de porta.
- Crie um botão mais longe da porta.
- Altere o script nesta lição para que a porta mude sua 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, Gate, com o que está em seu projeto
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Altera o botão para vermelho para dar comentário/retornoao jogador
button.BrickColor = BrickColor.Red() -- MUDE ISSO
-- Tornar o portão invisível
gate.Transparency = 1
-- Faz com que o jogador possa caminhar através do portão
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)