Paramètres de práctica - 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 se pueden usar por los jugadores para desbloquear nuevas áreas, dar puntos y revelar tesoros. Cada vez que un jugador toca un botón, debe dar algunas sugerencias para permitir que los jugadores sepan que se está interactuando con, como cambiar colores o hacer sonidos.

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

Hacer un puente

Comienza por configurar el puente.

  1. Crea un área en tu juego donde los jugadores necesiten un puente.

  2. Crea una parte para el puente y renombralo Puente.

  3. Selecciona el puente, en la ventana Propiedades:

    • Cambia Transparencia a .5. Para Transparencia, 0 es visible, 1 es invisible.
    • Compruebe Anclar .
    • Deseleccione Puede colisionar .
  4. Prueba el juego, el puente debería tener la apariencia de brumoso y las personas no deberían poder caminar por él aún.

Crear 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. Anclar el botón el botón.
  4. Mueva el botón para que flote ligeramente y no toque nada. Esto es para asegurarse de que el evento Touched no desencadenaraccidentalmente.

Haciendo 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 hace que el puente sea usable. Para hacer que el puente sea colisionable, usa el código bridge.CanCollide = true dentro de una función personalizada que se ejecuta cuando un jugador toca el botón. Todo lo demás que necesitas para completar los sigu

Intenta encontrar la solución de código antes de mirar la solución de código.

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

La solución de código a continuación es una posible solución de código


-- Inserta este script en el botón
-- Hace que el botón sea verde cuando algo toca el botón.
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)

Solucionando problemas con tu código

Problema: el puente ya está sólido cuando comienza el juego. Asegúrese de que las partes estén ancladas y no toque nada. Las partes pueden tocar algo, como el terreno o otra parte, y causar que la función presionadaPulsado() dispare accidentalmente. Problema: Obtienes un error en la ventana de salida diciendo: "El puente no es un miembro válido de Workspace" Comprueba lo siguiendo:

  • La nomenclatura de tu puente. El puente en tu script debe estar nombrado exactamente como en el Explorador.
  • Ese 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 mantengan a los jugadores fuera de áreas específicas. Práctica tus habilidades de codificación y haz lo siguiendo:

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

Tu versión puede verse algo así:


local button = script.Parent
-- Recordatorio: Reemplace el nombre de la parte, Gate, con el que está en su proyecto
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Cambia el botón para rojo para darle opiniónal jugador
button.BrickColor = BrickColor.Red() -- CAMBIE ESTO
-- Haz que el portón sea invisible
gate.Transparency = 1
-- Lo hace para que el jugador pueda caminar a través de la puerta
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)