Проект пригодницької гри. Частина 3.

Купівля оновлень

Це підводить нас до останнього етапу ігрового циклу — купівлі оновлень. Дозволяючи гравцям купувати оновлення, які збільшують розмір сумки з предметами, вони можуть збирати більше предметів за подорож і заробляти ще більше золота.

Створення магазину

У кожному магазині буде кнопка, яку гравці натискають, щоб придбати більшу сумку з предметами. Сам магазин буде частиною з SurfaceGUI, елементом, який дозволяє писати текст на частинах.

У робочій області створіть нову модель під назвою «Магазин».

У Shop створіть нову частину блоку під назвою BuyButton.

У BuyButton додайте новий графічний інтерфейс Surface, натиснувши + і прокрутивши до GUI.

У Surface GUI додайте нову TextLabel під назвою BuyText. Десь на деталі з’явиться маленька мітка.

Залежно від того, як була виготовлена ​​деталь, ярлик може знаходитися в іншому місці. Якщо ви не бачите тексту з потрібної сторони, перейдіть до SurfaceGUI і знайдіть властивість Face. Змінюйте цю властивість, доки не побачите текстову мітку.


Залежно від частини властивість Face може відрізнятися від показаної вище.

Додавання детектора кліків

Гравці купуватимуть предмети, натискаючи на магазин, а не просто торкаючись його. Сценарій використовуватиме детектор кліків, щоб визначити, чи клацнув гравець вивіску магазину. Детектори кліків — це об’єкти, які дозволяють користувачам взаємодіяти з чимось у середовищі, наприклад відкривати двері.

У BuyButton додайте ClickDetector.


У BuyButton додайте новий сценарій під назвою BuyScript і додайте до нього скрипт, розміщений нижче.



Скрипт для магазину BuyScript


-- Lets players click a button to buy an upgrade that increases Spaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector

-- Variables for the upgrade
local newSpaces = 5
local upgradeCost = 100

local function giveUpgrade(player)
print("Someone clicked the button")
-- Get's the player's leaderboard to get other IntValues
local playerStats = player:FindFirstChild("leaderstats")

if playerStats then
-- Gets the player's money and spaces to make changes
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Checks if player has enough money to afford the upgrade
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
-- Subtract the item's cost from the player's money
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end

clickDetector.MouseClick:Connect(giveUpgrade)



Відтворіть свій проект і перевірте таблицю лідерів, щоб перевірити, чи спрацювало оновлення просторів.