Práctica de parámetros - botones

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Los botones pueden ser utilizados por los jugadores para desbloquear nuevas áreas, otorgar puntos y revelar tesoros. Cada vez que un jugador toca un botón, debería dar alguna retroalimentación para que los jugadores sepan que se está interactuando con él, como cambiar colores o hacer sonidos.

En este ejemplo, el botón se usará para activar un puente. Cuando se haya presionado el botón, se volverá verde y los jugadores podrán usar el puente. Si el jugador no ha presionado el botón, caerá a través del puente cuando intente caminar sobre él.

Haz un puente

Comienza configurando el puente.

  1. Crea un área en tu entorno donde los jugadores necesitarán un puente.

  2. Crea una parte para el puente y renómbrala a Puente.

  3. Selecciona el puente, en la ventana de Propiedades:

    • Cambia Transparencia a .5. Para Transparencia, 0 es visible, 1 es invisible.
    • Marca Anclado.
    • Desmarca Puede Colisionar.
  4. Cuando pruebes la experiencia, el puente debería verse brumoso y las personas no deberían poder caminar sobre él todavía.

Crea el botón

Ahora que el puente está configurado, crea el botón.

  1. Crea una nueva parte llamada Botón.

  2. Cambia el color del botón a rojo.

  3. Ancla el botón.

  4. Mueve el botón para que esté ligeramente flotando y no toque nada. Esto es para asegurarte de que el evento Touched no se dispare accidentalmente.

Haz que el botón sea interactivo

Esta vez, en lugar de usar el evento Touched para crear una trampa, lo usarás para crear un botón que haga que el puente sea utilizable. Para hacer el puente colisionable, usa el código bridge.CanCollide = true dentro de una función personalizada que se ejecute cuando un jugador toque el botón. Sabes todo lo que necesitas para completar los siguientes pasos.

Intenta resolverlo tú mismo antes de mirar la solución del código.

  1. Inserta un nuevo script en el botón llamado ActivarPuente.
  2. Elimina Hola Mundo.
  3. Crea variables para el puente y para el botón.
  4. Crea una función local que haga lo siguiente cuando se toque el botón:
    • Imprime "botón tocado".
    • Cambia el color del botón de rojo a verde cuando se toque.
    • Cambia la transparencia del puente a 0 para hacerlo visible.
    • Hace que el puente sea utilizable usando el código bridge.CanCollide = true
  5. Conecta la función al evento Touched del botón.
  6. Prueba el script y asegúrate de que el puente aparezca cuando se toque el botón.

Solución de código A continuación se muestra una posible solución de código


-- Inserta este script en el botón
-- Vuelve el botón verde cuando algo toca el botón.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("botón tocado")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

Soluciona los problemas de tu código

Problema: El puente ya es sólido cuando la experiencia comienza. Asegúrate de que las partes estén ancladas y no toquen nada. Las partes pueden tocar algo, como terreno u otra parte, y causar que la función buttonPressed() se dispare accidentalmente.

Problema: Obtienes un error en la ventana de salida que dice: "Bridge no es un miembro válido de Workspace." Verifica lo siguiente:

  • La denominación de tu puente. El puente en tu script debe estar nombrado exactamente como en el Explorador.
  • Que part.Touched:Connect(buttonPressed) esté fuera de la función buttonPressed().

Desafío de código opcional

El script en esta lección también se puede usar para mantener puertas que mantienen a los jugadores fuera de áreas específicas. Practica tus habilidades de codificación y haz lo siguiente:

  • Crea una parte de puerta.
  • Crea un botón más lejos de la puerta.
  • Cambia el script en esta lección para que haga que la puerta cambie de transparencia y que el jugador no pueda colisionar con ella.

Tu versión podría verse algo así:


local button = script.Parent
-- Recordatorio: Reemplaza el nombre de la parte, Puerta, con el de tu proyecto
local gate = workspace.Gate
local function buttonPressed()
print("botón tocado")
-- Cambia el botón a rojo para dar retroalimentación al jugador
button.BrickColor = BrickColor.Red() -- CAMBIA ESTO
-- Haz que la puerta sea invisible
gate.Transparency = 1
-- Hace que el jugador pueda atravesar la puerta
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.