Все истории

🧩 Функции в Lua: как перестать превращать код в кашу?

Копия публикации из архива канала. Дата и текст сохранены.

Представь, что в игре есть несколько ловушек, и каждая должна наносить игроку 20 урона.

Можно каждый раз писать одно и то же:
health = health - 20
print("Получен урон")

А можно один раз собрать эту логику в функцию:
function takeDamage()
health = health - 20
print("Получен урон")
end

Теперь, когда нужно нанести урон, достаточно написать:
takeDamage()
И всё 😎

Функция — это кусочек кода, которому мы дали имя, чтобы потом вызывать его сколько угодно раз.

В игре можно сделать функции:
openDoor()
giveCoins()
healPlayer()
spawnEnemy()

И код уже начинает читаться почти как инструкция для самой игры.

🔥 Но есть штука ещё полезнее — функции могут принимать значения:
function takeDamage(damage)
health = health - damage
end

Теперь одна функция умеет наносить разный урон:
takeDamage(10)
takeDamage(50)
takeDamage(100)

Маленький шип отнял 10 HP, меч — 50, огромный босс зарядил на сотку 💀

И вот тут программирование начинает становиться реально удобным.
Переменные хранят данные.
Условия принимают решения.
Циклы повторяют действия.
А функции собирают действия в понятные команды.

Ну что, пока всё понятно? 👀
Если где-то уже начали путаться переменные, циклы и функции — пишите в комментариях.

Завтра соединяем всё вместе и разбираем события в Roblox — как игра понимает, что игрок нажал кнопку, коснулся блока или зашёл на сервер 🎮