Questo ci porta all'ultima fase del ciclo di gioco - l'acquisto di aggiornamenti.Permettendo ai giocatori di acquistare aggiornamenti che aumentino la dimensione della loro borsa di oggetti, possono raccogliere più oggetti per viaggio e guadagnare ancora più oro.
Crea una Negozio
Ogni negozio avrà un pulsante che i giocatori cliccheranno per acquistare una borsa per oggetti più grande.Lo stesso negozio sarà una parte con una SurfaceGUI, un oggetto che consente di scrivere del testo su parti.
Crea il segno
Nell'area di lavoro, crea un nuovo modello chiamato Shop.
Nel negozio, crea una nuova parte di blocco chiamata BuyButton.
Nel pulsante Acquista, aggiungi una nuova interfaccia utente di superficie facendo clic su + e scorrendo fino all'interfaccia GUI or Intefaccia grafica utente.
Nella GUI or Intefaccia grafica utentesuperficiale, aggiungi un nuovo TextLabel chiamato BuyText. Un piccolo etichetta apparirà da qualche parte sulla parte.
A seconda di come è stata realizzata la parte, l'etichetta può essere altrove.Se non vedi il testo sul lato che vuoi, vai nella SurfaceGUI e trova la ProprietàFace.Cambia quella proprietà fino a quando non vedi l'Etichettadel testo.
Cambia il testo del segno
Al momento, il TextLabel è molto piccolo e difficile da vedere per i giocatori. Deve essere ridimensionato.
Nelle proprietà di BuyText, fai clic sulla freccia accanto a Dimensione . Cambia l'offset di Offset per X (sinistra e destra) e Y (su e giù) a 0.
Cambia la scala di X e Y a 0.5 per fare un quadrato.
Scorri verso l'alto nelle proprietà di TextLabel e clicca la freccia a sinistra di AncoraggioPoint .Digita 0.5 per X e Y.Questo sposta una parte del tuo titolo fuori dalla vista ma lo posizionerai correttamente successivamente.
Scorri verso il basso nelle proprietà e apri Posizione . Cambia la scala di X e Y a 0,5 in modo che la casella sia centrata nel mezzo.
Nelle proprietà di BuyText, scorri verso il basso e cambia Testo in qualcosa di descrittivo. Ad esempio: "Buy Larger Bag: 100 gold" .
Controlla TextScaled per essere su . Questo scala automaticamente il tuo testo in modo che si adatti alla Quadro di selezione.
Aggiungi un detector di clic
I giocatori acquisteranno oggetti facendo clic sul negozio piuttosto che soltanto toccandolo.Lo script userà un rilevatore di clic per dire se un giocatore ha cliccato sul segno del negozio. ClickDetectors sono oggetti che consentono agli utenti di interagire con qualcosa nell'Ambiente, come l'apertura di una porta.
Nel pulsante Acquista, aggiungi un ClickDetector.
Nel pulsante Acquista, aggiungi un nuovo script chiamato BuyScript e dagli un Commentaredescrittivo.
In BuyScript, crea le variabili per memorizzare la parte del pulsante e il rilevatore di clic.
-- Fai clicare ai giocatori su un pulsante per acquistare un aggiornamento che aumenta gli spazilocal buyButton = script.Parentlocal clickDetector = buyButton.ClickDetectorCrea una nuova funzione chiamata giveUpgrade() che ottiene un parametro chiamato player .La funzione aggiornerà gli spazi di un Giocatoreogni volta che clicca il pulsante.
local buyButton = script.Parentlocal clickDetector = buyButton.ClickDetectorlocal function giveUpgrade(player)endDopo la funzione, digita l'evento connect del click detector di MouseClick alla funzione giveUpgrade().
local function giveUpgrade(player)endclickDetector.MouseClick:Connect(giveUpgrade)Aggiungi una dichiarazione di stampa in giveUpgrade() per testare la funzione.
local function giveUpgrade(player)print("Someone clicked the button.")endGioca al tuo progetto. Fai clic sul pulsante e controlla che vedi il testo nella finestra di output.
Suggerimenti per la risoluzione dei problemi
Problema: Non è possibile fare clic sul pulsante o il cursore del mouse non appare sul pulsante.
- Assicurati che l'oggetto ClickDetector sia un figlio della parte su cui stai tentando di fare clic.
- Verifica che il tuo personaggio è abbastanza vicino al pulsante. O, assicurati che lo strumento non sia equipaggiato.
Acquista aggiornamenti
Con un pulsante di lavoro, è il momento di aggiungere codice in giveUpgrade per rimuovere l'oro di un Giocatorein cambio di una borsa aggiornata.
Aggiungi le variabili di aggiornamento
Ogni aggiornamento avrà due variabili: il costo dell'aggiornamento e quante spazi ha.
In BuyScript, sotto local clickDetector, crea due variabili:
- newSpace : Quanti spazi aggiunge un aggiornamento quando acquistato.
- upgradeCost : Il costo di un singolo Aggiornarmento
-- Variabili per l'Aggiornarmentolocal newSpaces = 10local upgradeCost = 100
Concessione di aggiornamenti
Prima di vendere il giocatore l'Aggiornarmento, devi controllare se hanno abbastanza denaro. Se lo fanno, aggiungerai alla loro quantità massima di spazi.
In giveUpgrade() , digita quanto segue per ottenere le statistiche del Giocatorecosì puoi accedere alle sue variabili oro e spazio.
local function giveUpgrade(player)print("Someone clicked the button")-- Ottieni la classifica del Giocatoreper ottenere altri IntValueslocal playerStats = player:FindFirstChild("leaderstats")if playerStats then-- Ottiene i soldi e gli spazi del Giocatoreper apportare modifichelocal playerGold = playerStats:FindFirstChild("Gold")local playerSpaces = playerStats:FindFirstChild("Spaces")endendDopo aver scritto le variabili per gli spazi, crea una dichiarazione if per se il valore di playerGold è maggiore o uguale al costo dell'aggiornamento.
local function giveUpgrade(player)local playerStats = player:FindFirstChild("leaderstats")if playerStats thenlocal playerGold = playerStats:FindFirstChild("Gold")local playerSpaces = playerStats:FindFirstChild("Spaces")-- Verifica se il giocatore ha abbastanza denaro per permettersi l'Aggiornarmentoif playerGold and playerSpaces and playerGold.Value >= upgradeCost thenendendendNella dichiarazione if, sottrai il costo dell'Aggiornarmentodall'oro del Giocatore.
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then-- Sottrai il costo dell'Articolodal denaro del GiocatoreplayerGold.Value -= upgradeCostendNella prossima riga, aggiungi il numero degli spazi attuali del Giocatoreinsieme ai nuovi spazi concessi per l'Aggiornarmento.
if playerGold and playerSpaces and playerGold.Value >= upgradeCost thenplayerGold.Value -= upgradeCostplayerSpaces.Value += newSpacesendGioca al tuo progetto e controlla la classifica per verificare se l'aggiornamento degli spazi ha funzionato.
Suggerimenti per la risoluzione dei problemi
A questo punto, i miglioramenti non funzionano come previsto, prova uno dei seguenti.
- Assicurati che tutto in di abbia citazioni su entrambi i lati, come .
- Assicurati che ogni stringa in FindFirstChild sia esattamente la stessa come il nome di IntValue nell' script PlayerSetup .Ad esempio, se il tuo codice usa Rubini come denaro, dovresti avere FindFirstChild("Rubies") .
- Assicurati che giveUpgrade() sia sopra clickDetector.MouseClick .
Completa lo script BuyScript
Una versione finale dello script può essere citata qui sotto.
-- Fai clicare ai giocatori su un pulsante per acquistare un aggiornamento che aumenta MaxSpaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- Variabili per l'Aggiornarmento
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Ottieni la classifica del Giocatoreper ottenere altri IntValues
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Ottiene i soldi e gli spazi del Giocatoreper apportare modifiche
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Verifica se il giocatore ha abbastanza denaro per permettersi l'Aggiornarmento
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Sottrai il costo dell'Articolodal denaro del Giocatore
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)