Lava mortale

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

In Introduzione alla programmazione , hai imparato a fare modifiche in un'esperienza in un ciclo nel tempo.E se vuoi apportare modifiche in base al comportamento dell'utente? In questo Tutoriale, imparerai a creare un pavimento di lava mortale che uccide gli utenti quando lo calpestano.

Configurare

Hai bisogno di un posto nel tuo mondo per mettere la lava mortale.Se hai seguito il corso Introduzione alla programmazione, il pavimento lavico si adatterebbe bene allo spazio copito dalle piattaforme sbiadite.

  1. Inserisci un Part e movilo nel tuo Mondo. Nominalo LavaFloor .

  2. Ridimensionalo in modo che copra il pavimento dello Spaziodi chiusura.

  3. Rendi il pavimento più simile alla lava impostando la proprietà Material a Neon e la Color a una tonalità arancione.

  4. Inserisci uno Script nella parte LavaFloor e rinominalo in Kill.

  5. Rimuovi il codice predefinito e crea una variabile per la lava.


    local lava = script.Parent

Connetti a un evento

Usa un evento per rilevare quando un utente tocca la lava.Ogni parte ha un evento Touched che si attiva quando qualcosa la tocca.Puoi connetterti a questo evento per eseguire una funzione quando si attiva.

  1. Dichiara una nuova funzione chiamata kill .

  2. Accedi all'evento Touched sull'oggetto lava usando un punto, proprio come una Proprietà: lava.Touched .

  3. Chiama la funzione Connect sul evento Touched, passando kill() come funzione da chiamare quando la parte viene toccata.


    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

Qualunque codice che scrivi nella funzione kill verrà eseguito ogni volta che qualcosa tocca la lava.Nota che un colon viene utilizzato per la funzione Connect , non un punto - non preoccuparti del motivo per cui a questo punto, ricorda solo la differenza.

Ottieni la parte commovente

Per uccidere l'utente, la funzione avrà bisogno di un oggetto associato a quell'utente.L'evento di una parte può fornire l'Touched che l'ha toccata - ma solo se lo richiedi rendendola un parametro funzione.

I parametri sono definizioni di ciò che una funzione si aspetta di ricevere quando viene chiamata.Un parametro può essere utilizzato in una funzione proprio come qualsiasi altra variabile.Puoi passare le informazioni a un parametro includendolo tra parentesi quando viene chiamata una funzione.I parametri sono definiti nelle parentesi sulla prima linea di una funzione.Crea un parametro chiamato otherPart per la funzione kill.


local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

Quando viene chiamata la funzione kill, il parametro otherPart rappresenterà la parte che ha toccato il pavimento lavico e il codice che scriverai nella funzione sarà in grado di utilizzarlo.

Personaggio e umanoide

Quando un utente tocca la lava, Roblox può rilevare la parte specifica del corpo dell'utente che l'ha toccata, come la gamba sinistra o il piede destro.Questa parte è nel modello Personaggio dell'utente, che contiene tutti gli oggetti che compongono l'avatar dell'utente nell'esperienza, tra cui:

  • Le parti del corpo individuali dell'utente come la testa, le membra e il torso.
  • Qualsiasi abbigliamento e accessori indossati dall'utente.
  • Il Humanoid , un oggetto speciale che contiene molte proprietà relative all'utente, tra cui la salute dell'utente.
  • The HumanoidRootPart che controlla il movimento dell'utente.

Come notato in precedenza, qualsiasi parte del corpo che tocca la lava fa parte del modello Personaggio, quindi puoi ottenere un riferimento a quel personaggio con otherPart.Parent .Crea una variabile per memorizzare il padre della parte che ha toccato il pavimento di lava.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

Dal modello di personaggio, dovrai ottenere l'oggetto Humanoid per uccidere l'utente.Puoi farlo con la funzione FindFirstChild()—passagli solo il nome della cosa che stai cercando e fornisce il primo figlio corrispondente che trova in quell'oggetto.Chiama FindFirstChild() sulla variabile partParent con "Humanoid" come figlio per trovare e archiviare il risultato in una nuova variabile chiamata humanoid .


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

Controlla l'umanoide

Puoi facilmente controllare se l'Humanoid è stato trovato utilizzando una dichiarazione se .Il codice in una dichiarazione if si eseguirà solo se la condizione definita nella prima riga è vera.

Ci sono una varietà di operatori che possono essere utilizzati per costruire condizioni più complesse che incontrerai nei corsi futuri - per ora, metti semplicemente la variabile humanoid lì.Crea una dichiarazione se con humanoid come condizione.


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)

Imposta la salute del personaggio

Ora che è stata controllata la Humanoid, le sue proprietà possono essere modificate.Se impostate la sua proprietà Health a 0 , il personaggio associato muore.Nel corpo della dichiarazione if, imposta la proprietà Health di 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 ciò, il tuo pavimento lavico è completo! Prova la tua esperienza e dovresti trovare che la tua lava mortale uccide con successo gli utenti a Contattare.Prova a utilizzare la tua lava come sfida extra in un Percorso ad ostacoli, o come confine per un Mondo.

Codice codice


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)