Шукати в цьому блозі

Класи і успадкування в Gideros



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

Немає коментарів:

Дописати коментар