En Introducción a la programación, aprendiste cómo hacer cambios en una experiencia en un bucle con el tiempo.¿Qué pasa si quieres hacer cambios basados en el comportamiento del usuario? En este tutorial, aprenderás cómo hacer un suelo de lava mortal que mata a los usuarios cuando lo pisan.
Establecer
Necesitas un lugar en tu mundo para poner la lava mortal.Si siguiste el curso de Introducción a la programación, el suelo de lava encajaría bien en el hueco cubierto por las plataformas desaparecientes.
Inserta un Part y móvelo al lugar en tu mundo. Nombrarlo LavaFloor .
Redimensionarlo para que cubra el suelo del espacio de contención.
Haz que el suelo se vea más como lava al establecer la propiedad Material a Neon y la Color a un tinte naranja.
Inserta un script en la parte LavaFloor y renombralo a Kill.
Elimina el código predeterminado y crea una variable para la lava.
local lava = script.Parent
Conectar a un evento
Usa un evento para detectar cuando un usuario toca la lava .Cada parte tiene un evento Touched que se activa cuando algo la toca.Puedes conectarte a este evento para ejecutar una función cuando se active.
Declare una nueva función llamada kill .
Acceda al evento Touched en el objeto de lava usando un punto, al igual que una propiedad: lava.Touched .
Llama a la función Connect en el evento Touched, pasando kill() como la función a llamar cuando se toca la parte.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Cualquier código que escribas en la función kill se ejecutará ahora cada vez que algo toque la lava.Tenga en cuenta que un colon se usa para la función Connect, no un punto - no se preocupe por qué en este momento, solo recuerde la diferencia.
Obtener la parte conmovedora
Para matar al usuario, la función necesitará un objeto asociado con ese usuario.El evento de una parte puede proporcionar la "otra parte" que la tocó - pero solo si lo solicita haciéndola un parámetro de la función.
Los parámetros son definiciones de lo que una función espera recibir cuando se llama.Un parámetro se puede usar en una función al igual que cualquier otra variable.Puedes pasar información a un parámetro incluyéndolo en los paréntesis cuando se llama una función.Los parámetros se definen en las comillas en la primera línea de una función.Crea un parámetro llamado para la función .
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Cuando se llama la función kill, el parámetro otherPart representará la parte que tocó el suelo de lava, y el código que escribirás en la función podrá usarlo.
Personaje y humanoide
Cuando un usuario toca la lava, Roblox puede detectar la parte específica del cuerpo del usuario que la tocó, como la pierna izquierda o el pie derecho.Esta parte está en el aplicación de modeladode personaje del usuario Carácter , que contiene todos los objetos que componen el avatar del usuario en la experiencia, incluyendo:
- Las partes del cuerpo individuales del usuario, como la cabeza, las extremidades y el torso.
- Cualquier ropa y accesorios usados por el usuario.
- El Humanoid , un objeto especial que contiene muchas propiedades relacionadas con el usuario, incluida la salud del usuario.
- La parte raíz humanoide que controla el movimiento del usuario.
Como se señaló anteriormente, cualquier parte del cuerpo que toque la lava es parte del aplicación de modeladode personaje, por lo que puedes obtener una referencia a ese personaje con otherPart.Parent .Crea una variable para almacenar el padre de la parte que tocó el suelo de lava.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Desde el aplicación de modeladode personaje, tendrás que obtener el objeto Humanoid para matar al usuario.Puedes hacer esto con la función FindFirstChild()—solo pasale el nombre de lo que estás buscando y te proporciona el primer hijo coincidente que encuentra en ese objeto.Llama FindFirstChild() a la variable partParent con "Humanoid" como hijo para encontrar y almacenar el resultado en una nueva variable llamada humanoid.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Comprueba el humanoide
Puedes verificar fácilmente si el Humanoide se encontró usando una declaración si .El código en una declaración if solo se ejecutará si la condición definida en la primera línea es verdadera.
Hay una variedad de operadores que se pueden utilizar para construir condiciones más complejas que encontrarás en futuros cursos - por ahora, solo pon la variable humanoid allí.Crea una declaración si con humanoid como condición.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
Establecer la salud del personaje
Ahora que se ha verificado el Humanoid, sus propiedades se pueden cambiar.Si estableces su propiedad Health a 0 , el personaje asociado muere.En el cuerpo de la declaración if, establece la propiedad Health de humanoid a 0.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
Con eso, ¡tu suelo de lava está completo! Prueba tu experiencia y deberías encontrar que tu lava mortal mata con éxito a los usuarios en ponerse en contacto/ contactar con.Prueba usar tu lava como un desafío adicional en un obby/ carrera de obstaculos, o como un límite para un mundo.
Código final
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)