Редактор карт #34 [Lua]: Костыльный ООП (Объектно Ориентированное Программирование в Lua) HD

19.02.2020
Рассмотрим способ реализации ООП в Луа. А именно создание экземпляров класса и наследование. Кусок кода урока ------------------------------------------- -- Наследует все свойства и методы родителя function Inherit(parent, instance) local newInstance = {} if instance ~= nil then newInstance = instance end setmetatable(newInstance, { __index = parent }) return newInstance end -- "Класс" сумки local Bag = { arrows = 15, coins = 8 } -- Возвращает экземпляр класса function Bag:New (config) return Inherit(self, config) end -- Достаем одну стрелу из сумки function Bag:takeArrows () self.arrows = self.arrows - 1 print(self.arrows) end -- Создаем экземпляр сумки с новым значением local DeepBag = Bag:New({ bananas = 5 }) print(DeepBag.arrows) print(DeepBag.bananas) -- Создаем экземпляр сумки, -- перетераем количество стрел на свое значение local VeryDeepBag = Bag:New({ arrows = 50 }) print(VeryDeepBag.arrows) ------------------------------------------- Опять на всякий случай. Кому не терпится и хочется поглядеть карту с выбором героев - можно скачать уже сейчас https://yadi.sk/d/HWXCs7LDYBfZJA Так же не забываем подписыватья! http://www.youtube.com/subscription_center?add_user=Tokomotbl4

Похожие видео