Acquista aggiornamenti

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

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

  1. Nell'area di lavoro, crea un nuovo modello chiamato Shop.

  2. Nel negozio, crea una nuova parte di blocco chiamata BuyButton.

  3. Nel pulsante Acquista, aggiungi una nuova interfaccia utente di superficie facendo clic su + e scorrendo fino all'interfaccia GUI or Intefaccia grafica utente.

  4. Nella GUI or Intefaccia grafica utentesuperficiale, aggiungi un nuovo TextLabel chiamato BuyText. Un piccolo etichetta apparirà da qualche parte sulla parte.

  5. 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.

  1. 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.

  2. Cambia la scala di X e Y a 0.5 per fare un quadrato.

  3. 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.

  4. 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.

  5. Nelle proprietà di BuyText, scorri verso il basso e cambia Testo in qualcosa di descrittivo. Ad esempio: "Buy Larger Bag: 100 gold" .

  6. 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.

  1. Nel pulsante Acquista, aggiungi un ClickDetector.

  2. Nel pulsante Acquista, aggiungi un nuovo script chiamato BuyScript e dagli un Commentaredescrittivo.

  3. 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 spazi
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Crea 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.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Dopo la funzione, digita l'evento connect del click detector di MouseClick alla funzione giveUpgrade().


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. Aggiungi una dichiarazione di stampa in giveUpgrade() per testare la funzione.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Gioca 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.

  1. 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'Aggiornarmento
    local newSpaces = 10
    local 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.

  1. 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 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")
    end
    end
  2. Dopo 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 then
    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
    end
    end
    end
  3. Nella 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 Giocatore
    playerGold.Value -= upgradeCost
    end
  4. Nella 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 then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Gioca 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)