← Усі уроки
Урок 3

Створи свій перший симулятор

Клікай по кристалу, щоб здобувати силу, продавай її за монети й купуй покращення, які роблять кожен клік сильнішим.

Безкоштовно50 хвилин · Для початківців · Roblox Studio
1
Крок 1 / 8

Підготуй місце

  1. Відкрий Roblox Studio, натисни New Experience і вибери шаблон Baseplate.
  2. Ти збудуєш на підлозі три речі: кристал для кліків, майданчик для продажу й майданчик для купівлі покращень.
  3. Залиш між ними приблизно 20 studs, щоб гравцям доводилося ходити.

Докладніше

  • Шаблон Baseplate є в списку шаблонів на початковому екрані.
  • Поле Position у Properties показує, де стоїть частина. Дві частини, у яких перші числа відрізняються на 20, стоять за 20 studs одна від одної.
  • Тримай ці три речі близько до SpawnLocation, платформи, на якій з'являються гравці.
  • На Mac щоразу, коли в уроці написано Ctrl, натискай клавішу Cmd.
Порада. Спочатку намалюй план на папері. Симулятор приємний, коли шлях між кліком, продажем і покращенням короткий.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

2
Крок 2 / 8

Створи статистику гравця

  1. Наведи курсор на ServerScriptService, натисни + і додай Script. Назви його Stats.
  2. Видали рядок, який уже є, і встав цей код.
  3. Натисни Play. У списку гравців буде Power 0 і Coins 0.
ServerScriptService > Stats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	for _, name in ipairs({"Power", "Coins"}) do
		local value = Instance.new("IntValue")
		value.Name = name
		value.Parent = stats
	end

	local multiplier = Instance.new("IntValue")
	multiplier.Name = "Multiplier"
	multiplier.Value = 1
	multiplier.Parent = player
end)

Що робить кожна частина

  • Цикл створює два значення одним шматком коду: Power і Coins.
  • Multiplier — це скільки сили дає один клік. Спочатку він дорівнює 1.
  • Multiplier лежить у гравця, а не в leaderstats, тож у списку гравців його не видно.

Докладніше

  • Коли ти клацаєш +, введи слово Script, щоб швидко його знайти.
  • Скрипт відкривається в новій вкладці. Клацни всередині коду, натисни Ctrl+A, а потім Ctrl+V, щоб замінити все.
  • Перейменуй скрипт в Explorer через F2. Ця назва потрібна лише тобі. Вона допоможе потім знайти скрипт.
  • Список гравців стоїть у правому верхньому куті гри.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

3
Крок 3 / 8

Збудуй кристал

  1. Додай Part. Постав Size на 6, 8, 6, увімкни Anchored і назви її Crystal. Вибери яскравий колір і постав Material на Neon.
  2. Наведи курсор на Crystal, натисни + і додай ClickDetector.
  3. Додай Script до Crystal і встав цей код.
  4. Натисни Play і клікни по кристалу. Power збільшується на 1 за кожен клік.
Crystal > Script
local crystal = script.Parent
local clickDetector = crystal.ClickDetector

clickDetector.MouseClick:Connect(function(player)
	local power = player.leaderstats.Power
	power.Value += player.Multiplier.Value
end)

Що робить кожна частина

  • ClickDetector робить частину клікабельною. Він працює і з дотиками на телефонах.
  • MouseClick повідомляє скрипту, який гравець клікнув.
  • Скрипт додає Multiplier гравця до Power, тож покращення роблять кожен клік сильнішим.

Докладніше

  • Введи розмір у поле Size в Properties і натисни Enter. Потім підніми кристал інструментом Move, доки він не стане на підлогу.
  • Коли ти клацаєш +, введи ClickDetector, щоб його знайти. В Explorer він має стояти на один крок правіше, під Crystal.
  • У грі вказівник миші змінюється на руку, коли він над кристалом.
  • Ти маєш стояти досить близько. ClickDetector працює з відстані 32 studs або менше.
Часта помилка. Нічого не відбувається при кліку: ClickDetector має лежати прямо всередині Crystal, поруч зі скриптом.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

4
Крок 4 / 8

Додай майданчик продажу

  1. Додай Part на підлогу. Постав Size на 8, 1, 8, увімкни Anchored, зроби її жовтою й назви Sell.
  2. Додай Script до Sell і встав цей код.
  3. Натисни Play, кілька разів клікни по кристалу й ступи на майданчик. Power перетворюється на Coins.
Sell > Script
local Players = game:GetService("Players")
local pad = script.Parent

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player then return end

	local stats = player.leaderstats
	if stats.Power.Value > 0 then
		stats.Coins.Value += stats.Power.Value
		stats.Power.Value = 0
	end
end)

Що робить кожна частина

  • GetPlayerFromCharacter знаходить гравця, який ступив на майданчик.
  • Майданчик додає всю Power гравця до Coins, а потім повертає Power на 0.

Докладніше

  • Pad є пласкою частиною, на яку заходять гравці.
  • Поклади pad пласко на підлогу. Якщо він надто високо, гравці не зможуть на нього ступити.
  • Якщо зайти на pad з 0 сили, нічого не станеться. Це правильно.
  • Щоб перевірити: клацни кристал 10 разів, зайди на pad, і список гравців покаже Power 0 і Coins 10.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

5
Крок 5 / 8

Додай майданчик покращень

  1. Додай ще одну Part на підлогу. Постав Size на 8, 1, 8, увімкни Anchored, зроби її синьою й назви Upgrade.
  2. Додай Script до Upgrade і встав цей код.
  3. Натисни Play, зароби 25 монет і ступи на майданчик. Тепер кожен клік дає 2 сили.
Upgrade > Script
local Players = game:GetService("Players")
local pad = script.Parent
local waiting = {}

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player or waiting[player] then return end

	local price = player.Multiplier.Value * 25
	local coins = player.leaderstats.Coins
	if coins.Value < price then return end

	waiting[player] = true
	coins.Value -= price
	player.Multiplier.Value += 1

	task.wait(1)
	waiting[player] = nil
end)

Що робить кожна частина

  • Ціна дорівнює Multiplier гравця, помноженому на 25, тож кожне покращення коштує дорожче за попереднє.
  • Таблиця waiting не дає одному довгому стоянню на майданчику купити багато покращень одразу.
  • Після купівлі Multiplier збільшується на 1.

Докладніше

  • Постав pad за кілька кроків від pad продажу, щоб гравці не купували випадково.
  • Перше покращення коштує 25 монет. Після нього Coins зменшується на 25, а один клік дає 2 сили.
  • Якщо монет менше, ніж ціна, pad нічого не робить. Зійди з нього, зароби більше й повернися.
  • Пауза в 1 секунду є причиною, чому стояння на pad купує лише одне покращення за раз.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

6
Крок 6 / 8

Підпиши майданчики

  1. Наведи курсор на Sell, натисни + і додай BillboardGui. Постав його Size на {0, 200}, {0, 50}, а StudsOffset на 0, 4, 0.
  2. Додай TextLabel у BillboardGui. Постав його Size на {1, 0}, {1, 0}, увімкни TextScaled і введи цей текст: SELL
  3. Зроби те саме для Upgrade з текстом: UPGRADE
  4. Зроби те саме для Crystal з текстом: CLICK ME. Там використай StudsOffset 0, 7, 0, щоб напис ширяв над кристалом.

Докладніше

  • Для Size і StudsOffset клацни поле в Properties, введи числа точно так, як показано, з дужками й комами, і натисни Enter.
  • Text є властивістю TextLabel. Клацни поле Text, введи слово й натисни Enter.
  • Швидший спосіб: клацни готовий BillboardGui в Explorer, натисни Ctrl+C, клацни наступну частину й натисни Ctrl+Shift+V. Потім зміни лише текст.
  • Написи допомагають новим гравцям зрозуміти гру без жодних пояснень.
Порада. BillboardGui завжди повертається до камери, тож гравці можуть прочитати його з будь-якого боку.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

7
Крок 7 / 8

Протестуй цикл

  1. Натисни F5. Клікай, продавай, купуй покращення й повторюй.
  2. Перевір, що ціна покращення зростає: 25 монет, потім 50, потім 75.
  3. Натисни Shift+F5, щоб зупинити. Якщо щось не працює, відкрий вікно Output у меню Window і прочитай червоний текст.

Докладніше

  • Рахуй свої кліки. З Multiplier 1 десять кліків дають 10 сили.
  • Після першого покращення десять кліків дають 20 сили, а після другого 30.
  • Зміни, які ти робиш, поки гра працює, зникають, коли ти її зупиняєш. Спершу натисни Shift+F5, а потім редагуй.
  • У вікні Output клацни червоний рядок, і Studio відкриє скрипт на рядку з помилкою.
Часта помилка. Майданчик нічого не купує: потрібно мати щонайменше 25 Coins, а не 25 Power. Спочатку продай.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

8
Крок 8 / 8

Опублікуй гру

  1. Вибери File → Publish to Roblox. Дай грі назву й короткий опис.
  2. На сайті Creator Hub відкрий свою гру й заповни анкету Maturity.
  3. Постав гру на Public і надішли посилання другові.

Докладніше

  • Коли ти публікуєш уперше, Studio просить назву й опис. Натисни Create.
  • Creator Hub є сайтом create.roblox.com. Увійди з тим самим акаунтом і клацни свою гру в списку.
  • Перш ніж гру можна зробити публічною, Roblox може попросити ще дещо, наприклад перевірку віку на акаунті. Сторінка підкаже, чого бракує.
  • Якщо тобі ще немає 18, виконуй цей крок разом із кимось із батьків.
Порада. Прогрес поки не зберігається. Коли гравець виходить, монети зникають. Збереження даних — це складніший урок.
Цей крок у мене не виходить

Спершу перевір ці три речі

  • Назва кожної частини й кожного скрипта точно така, як в уроці, з тими самими великими літерами.
  • Скрипт лежить у правильному об'єкті. Подивись на підпис над блоком із кодом.
  • Відкрий вікно Output через меню Window. Червоний текст показує скрипт і рядок, у якому є проблема.

Усе ще не виходить? Напиши нам →

Тепер змін це сам

  • Додай другий кристал, який дає 5 сили за клік, але стоїть далеко.
  • Зроби так, щоб ціна покращення подвоювалася щоразу. Підказка: 25 * 2 ^ (player.Multiplier.Value - 1)
  • Зроби кристал трохи більшим після кожного кліку. Підказка: зміни crystal.Size