Редактор карт #34 [Lua]: Костыльный ООП (Объектно Ориентированное Программирование в Lua)
Рассмотрим способ реализации ООП в Луа. А именно создание экземпляров класса и наследование.
Кусок кода урока
-------------------------------------------
-- Наследует все свойства и методы родителя
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
Видео Редактор карт #34 [Lua]: Костыльный ООП (Объектно Ориентированное Программирование в Lua) канала EponeshTutorial (Tokomotbl4)
Кусок кода урока
-------------------------------------------
-- Наследует все свойства и методы родителя
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
Видео Редактор карт #34 [Lua]: Костыльный ООП (Объектно Ориентированное Программирование в Lua) канала EponeshTutorial (Tokomotbl4)
Показать
Комментарии отсутствуют
Информация о видео
19 февраля 2020 г. 23:20:47
00:20:24
Другие видео канала