УРОК 4 ИЗ 4 · 45–60 МИНУТ

Охота за монетами

Собери три золотые монеты. Каждая исчезает при касании, а счёт в правом верхнем углу растёт.

Иллюстрация проекта Roblox
Что получится: Собери три золотые монеты. Каждая исчезает при касании, а счёт в правом верхнем углу растёт. Всё можно сделать самостоятельно по шагам и сверить с готовым примером.
Готовый проект для проверки

Скачай файл, затем открой его в Roblox Studio через File → Open from File. Он уже содержит все детали и скрипты урока.

Скачать .rbxlx ↓

Шаг 1 · Создай площадку и первую монету

  1. Открой новый шаблон Baseplate. В Properties задай плите размер 58, 1, 30 и положение 0, -0.5, 0. Передвинь SpawnLocation по таблице.
  2. На вкладке Home нажми маленькую стрелку у Part и выбери Cylinder. Назови его Coin1. Задай Size и Position из таблицы, включи Anchor, выключи CanCollide и покрась в жёлтый.
  3. Пока оставь одну монету. В конце урока скопируешь её вместе со скриптом. Добавь маленькую деталь Goal для финиша.
Пример готовой площадки с тремя монетами. Справа Explorer показывает их названия.
Пример готовой площадки с тремя монетами. Справа Explorer показывает их названия. Открыть крупно ↗

Размеры и расположение деталей

В Roblox числа идут по осям X, Y, Z. Size и Position меняются в Properties.

Имя в ExplorerSize (X, Y, Z)Position (X, Y, Z)Что это
Baseplate58, 1, 300, -0.5, 0Большая площадка
SpawnLocation6, 1, 6-21, 0.5, 0Игрок начинает слева
Coin10.5, 3, 3-8, 2, -6Жёлтый Cylinder; CanCollide выключен
Coin20.5, 3, 34, 2, 5Копия Coin1
Coin30.5, 3, 318, 2, -3Копия Coin1
Goal6, 0.3, 623, 0.15, 8Бирюзовый ориентир

Шаг 2 · Сделай счётчик игрока

  1. В Explorer найди ServerScriptService. Нажми «+» рядом с ним → Script. Назови скрипт CoinCounter.
  2. Открой CoinCounter двойным щелчком, удали шаблонный текст и вставь код. Папка с точным именем leaderstats нужна, чтобы Roblox показал счёт в таблице игроков.
Скрипт CoinCounter внутри ServerScriptService создаёт Coins со значением 0.
Скрипт CoinCounter внутри ServerScriptService создаёт Coins со значением 0. Открыть крупно ↗
Luau
game.Players.PlayerAdded:Connect(function(player)    local stats = Instance.new("Folder")    stats.Name = "leaderstats"    stats.Parent = player    local coins = Instance.new("IntValue")    coins.Name = "Coins"    coins.Value = 0    coins.Parent = statsend)

Как работает код

  • PlayerAdded запускается, когда игрок входит в игру.
  • Folder — папка для показателей игрока; IntValue хранит целое число монет.
  • Сначала Coins = 0. Позже скрипт монеты увеличит это число.

Шаг 3 · Научи монету собираться

  1. В Explorer наведи курсор на Coin1 и нажми «+» → Script. Назови его CollectCoin. Вставь код ниже.
  2. Теперь выдели Coin1 и нажми Ctrl+D на Windows или ⌘D на Mac два раза. Копии вместе со скриптом назови Coin2 и Coin3. Измени их Position по таблице.
  3. У каждой монеты Script должен находиться внутри самой монеты. Строка collected = true не даёт посчитать одно касание несколько раз.
Код CollectCoin в Script Editor. Скрипт прибавляет 1 и прячет монету.
Код CollectCoin в Script Editor. Скрипт прибавляет 1 и прячет монету. Открыть крупно ↗
Luau
local coin = script.Parentlocal collected = falsecoin.Touched:Connect(function(otherPart)    if collected then return end    local player = game.Players:GetPlayerFromCharacter(otherPart.Parent)    if not player then return end    collected = true    player.leaderstats.Coins.Value += 1    coin.Transparency = 1    coin.CanTouch = falseend)

Как работает код

  • GetPlayerFromCharacter ищет игрока, чей персонаж коснулся монеты.
  • Coins.Value += 1 увеличивает счёт на единицу.
  • Transparency = 1 прячет монету, CanTouch = false отключает повторное касание.

Шаг 4 · Собери все три

  1. Нажми Play ▶. В правом верхнем углу должна появиться колонка Coins со значением 0.
  2. Поверни камеру мышью к жёлтым монетам, иди клавишами W, A, S, D и дотронься до первой. Она исчезнет, а счёт станет 1. Найди ещё две — счёт должен стать 3.
  3. Нажми Stop ■ и сохрани свою карту через File → Save to File.
Проверка в Play: после первого касания в таблице игроков показано Coins = 1.
Проверка в Play: после первого касания в таблице игроков показано Coins = 1. Открыть крупно ↗

Проверь себя

  • При запуске показан счёт Coins = 0.
  • Одна монета даёт ровно 1 очко и исчезает.
  • После трёх монет в таблице показано 3.

Задание со звёздочкой: Расставь монеты в новых местах. Сможет ли другой игрок найти все три быстрее?

Если что-то не работает

  • Колонки Coins нет: проверь точное имя leaderstats, а также расположение CoinCounter в ServerScriptService.
  • Монета исчезает, но очко не добавляется: проверь строку player.leaderstats.Coins.Value += 1 и отсутствие ошибок в Window → Output.
  • Очки добавляются несколько раз: проверь collected = true и coin.CanTouch = false.
Подсказка преподавателю

Этот урок сложнее предыдущих. Сначала покажите готовую игру: ребёнок видит ноль, подбирает монету и видит единицу. Затем разделите работу на две части: один скрипт создаёт счётчик у игрока, другой меняет его при касании. Для первой группы достаточно собрать одну рабочую монету; копирование остальных — закрепление.