Lua не підтримує класи як інші мови. Але в Lua кожен об'єкт може визначити свою власну поведінку через метатаблиці. Таким чином, можна емулювати ООП і класи в Lua.
Gideros слідує тієї ж парадигми в своєму API. Кожен екземпляр створений Gideros API представляє собою таблицю в Lua.
екземпляри об'єктів (Instances) ми створюємо функцією new:
local sprite = Sprite.new()
local texture = Texture.new("image.png")
local bitmap = Bitmap.new(texture)
local timer = Timer.new(1000, 0)
Функція Core.class дозволяє створити свій клас через успадкування:
MyClass = Core.class()
Використовуючи класи, можна розробляти і здійснювати візуальні елементи своєї гри окремо:
StartButton = Core.class(Sprite) -- Створюємо свій клас кнопки успадковуємо Sprite
Menu = Core.class(Sprite) -- Створюємо клас меню
-------------------------------
Player = Core.class(Sprite) -- Створюємо клас гравець
function Player:walk()
-- тут ходимо
end
function Player:jump()
-- тут Стрибаємо
end
--------------------------------
stage:addChild(Player.new()) -- Створюємо і додаємо екземпляр гравця в рівень
Коли створюється екземпляр виконується його функція init () - ініціалізація:
Player = Core.class(Sprite)
function Player:init()
-- функция init для класа Player
self.health = 100 --Додаємо параметр здоров'я і швидкість в таблицю класу гравця
self.speed = 3
end
local player = Player.new() -- Створюємо гравця при створенні екземпляра гравця виконається функція Player: init ()
Можна не використовувати класи зовсім, але користуючись класами ваш код буде зрозуміліше і логічніше3
Немає коментарів:
Дописати коментар