Parametri Pratica - pulsanti

*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 fornire alcuni feedback per consentire ai giocatori di sapere che viene interagito con, come cambiare colori 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 usare il ponte. Se il giocatore non ha premuto il pulsante, cadrà attraverso il ponte quando cercherà di camminarci sopra.

Fai un ponte

Inizia impostando il ponte.

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

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

  3. Seleziona il ponte, nella finestra Proprietà:

    • Cambia trasparenza a .5. Per la trasparenza, 0 è visibile, 1 è invisibile.
    • Controlla Anchor .
    • Deseleziona PuòCollidere .
  4. Prova il Gioco, il ponte dovrebbe essere bagnato e le persone non dovrebbero essere in grado di camminarci ancora.

Crea il pulsante

Ora che il ponte è impostato, 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 fluttui leggermente e non tocchi nulla. Questo per assicurarti che l'evento Touched non si Lanciareaccidentalmente.

Rendere il pulsante interattabile

Questa volta, invece di utilizzare l'evento Touched per creare una trappola, lo utilizzerai per creare un pulsante che rende 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. Conosci tutto il rest

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

  1. Inserisci uno script nuovo in pulsante chiamato AttivaPonte .
  2. Elimina Hello World .
  3. Crea variabili per il ponte e per il pulsante.
  4. Crea una funzione locale che fa ciò che il pulsante è toccato:
    • Stampa "button touched" .
    • Cambia il colore del pulsante dal rosso al verde quando viene toccato.
    • Cambia la trasparenza del ponte a 0 per renderlo visibile.
    • Rende il ponte utilizzabile utilizzando il codice bridge.CanCollide = true
  5. Connetti la funzione all'evento del pulsante Touched .
  6. Prova lo script e assicurati che il ponte appaia quando viene toccato il pulsante.

Code Solution qui sotto è una soluzione di codice possibile


-- 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)

Risolvere 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 il terreno o un'altra parte, e causare il funzionamento accidentale del pulsantePressed() . Problema: otieni un errore nella finestra di uscita che dice: "Il ponte non è un membro valido del Area di lavoro" Controlla i Seguendo:

  • La denominazione della tua橋. La桥 nel tuo script deve essere chiamata esattamente come nell'Explorer.
  • Quello part.Touched:Connect(buttonPressed) è al di fuori della funzione buttonPressed() .

Sfida di codice opzionale

Lo script in questa lezione può essere utilizzato anche per tenere le porte che tengono i giocatori fuori dalle aree specifiche. Pratica le tue abilità di codifica e fai 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 cambia trasparenza e così il giocatore non può collisionare con essa.

La tua versione potrebbe sembrare qualcosa come questo:


local button = script.Parent
-- Ricorda: Remplisci il nome della parte, Gate, con quello del tuo progetto
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Cambia il pulsante per rosso per ottenere Riscontro/Replicadel giocatore
button.BrickColor = BrickColor.Red() -- CAMBIARE QUESTO
-- Rende il cancello invisibile
gate.Transparency = 1
-- Così il giocatore può camminare attraverso il cancello
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)