Pratica dei parametri - bottoni

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

I pulsanti possono essere utilizzati dai giocatori per sbloccare nuove aree, dare punti e rivelare tesori.Ogni volta che un giocatore tocca un pulsante, dovrebbe dare qualche feedback per far sapere ai giocatori che viene interagito, come cambiare colore o fare suoni.

In questo esempio, il pulsante verrà utilizzato per attivare un ponte.Quando il pulsante è stato premuto, diventerà verde e i giocatori potranno utilizzare il ponte.Se il giocatore non ha premuto il pulsante, cadrà attraverso il ponte quando cercherà di camminare su di esso.

Crea un ponte

Inizia impostando il ponte.

  1. Crea un'area nel tuo gioco in cui i giocatori hanno bisogno di un ponte.

  2. Crea una parte per il ponte e rinominala Ponte.

  3. Seleziona il ponte, nella finestra Proprietà:

    • Cambia Trasparenza a .5. Per la trasparenza, 0 è visibile, 1 è invisibile.
    • Controlla Ancoraggio .
    • Deseleziona CanCollide .
  4. Prova il Gioco, il ponte dovrebbe essere nebuloso e le persone non dovrebbero essere ancora in grado di camminare su di esso.

Crea il pulsante

Ora che il bridge è configurato, crea il pulsante.

  1. Crea una nuova parte chiamata Pulsante.
  2. Cambia il colore del pulsante a rosso.
  3. Ancorare il pulsante.
  4. Sposta il pulsante in modo che galleggi leggermente e non tocchi nulla. Questo è per assicurarsi che l'evento Touched non si Lanciareaccidentalmente.

Rendi il pulsante interattivo

Questa volta, invece di utilizzare l'evento Touched per creare una trappola, lo userai per creare un pulsante che renda il ponte utilizzabile.Per rendere il ponte collidibile, usa il codice bridge.CanCollide = true all'interno di una funzione personalizzata che viene eseguita quando un giocatore tocca il pulsante.Sai tutto il resto di cui hai bisogno per completare i seguenti passaggi.

Prova a risolverlo da solo prima di guardare la soluzione del codice.

  1. Inserisci un nuovo script nel pulsante chiamato ActivateBridge.
  2. Elimina Hello World .
  3. Crea variabili per il ponte e per il pulsante.
  4. Crea una funzione locale che fa quanto segue quando il pulsante viene toccato:
    • Stampa "button touched" .
    • Cambia il colore del pulsante da rosso a verde quando viene toccato.
    • Cambia la trasparenza del ponte a 0 per renderlo visibile.
    • Rende il ponte utilizzabile usando il codice bridge.CanCollide = true
  5. Collega la funzione all'evento Touched.
  6. Prova lo script e assicurati che il ponte appaia quando il pulsante viene toccato.

Soluzione del codice qui sotto è una possibile soluzione del codice


-- Inserisci questo script nel pulsante
-- Rende il pulsante verde quando qualcosa tocca il pulsante.
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)

Risolvi i problemi del tuo codice

Problema: Il ponte è già solido quando inizia il gioco.: Assicurati che le parti siano Ancorate e non toccare nulla.Le parti potrebbero toccare qualcosa, come terreno o un'altra parte, e causare l'errore della funzione buttonPressed() a fuoco accidentale. Problema: ottieni un errore nella finestra di output che dice: "Il bridge non è un membro valido dello spazio di lavoro" Controlla quanto Seguendo:

  • La denominazione del tuo ponte. Il ponte nel tuo script deve essere nominato esattamente come nell'esploratore.
  • Quel part.Touched:Connect(buttonPressed) è al di fuori della funzione buttonPressed().

Sfida del codice opzionale

Lo script di questa lezione può essere utilizzato anche per mantenere le porte che tengono i giocatori fuori da aree specifiche. Esercitare le tue abilità di codifica e fare quanto Seguendo:

  • Crea una parte della porta.
  • Crea un pulsante più lontano dalla porta.
  • Cambia lo script in questa lezione in modo che la porta cambi la trasparenza e così il giocatore non possa collidere con essa.

La tua versione potrebbe sembrare qualcosa del genere:


local button = script.Parent
-- Promemoria: Sostituisci il nome della parte, Gate, con quello nel tuo progetto
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Cambia il pulsante a rosso per dare al giocatore Riscontro/Replica
button.BrickColor = BrickColor.Red() -- CAMBIA QUESTO
-- Rendi il gate invisibile
gate.Transparency = 1
-- Fa in modo che il giocatore possa camminare attraverso il cancello
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)