Skip to content

Создание объектов

rpg edited this page Dec 21, 2012 · 2 revisions

В движке Cheetah 2D все объекты являются сущностью "Entity". Объекты можно создавать и удалять, назначать им события, изменять их функцию рисования, анимировать объекты различными способами. У каждого объекта есть родитель, таким образом все объекты объединяются в одно большое дерево, называемое графом сцены.

Изначально объект - это ничто, это всего лишь абстрактная сущность. Но вы можете создавать на основе этой сущности всё что угодно: изображения, спрайты, анимированные эффекты, текст, звуки и так далее. Дальнейшая жизнь объекта зависит от его параметров, функций отображения и событий.

Создание объектов в Cheetah - очень простая операция. Сначала, при запуске движка, Cheetah создаёт глобальный объект - screen. Затем вы можете создавать свои собственные объекты, присоединяя их к screen как потомков. Ваш первый объект всегда должен быть потомком screen:

local myEntity = Entity:new(screen)

После этого, вы можете создавать новые объекты как потомки screen или как потомки myEntity - ваш собственный объект.

local myChildEntity = Entity:new(myEntity)
local myChildEntity2 = Entity:new(screen)

Безымянные объекты

Безымянный объект - объект, который не привязан к какой-либо переменной. Безымянный объект живёт до тех пор, пока живы все его предки, и вы не можете обращаться к нему напрямую.

Вы можете создавать безымянные объекты или объекты, связанные с глобальными или локальными переменными. Безымянные объекты не могут быть удалены сборщиком мусора. Будьте осторожны с безымянными объектами: если вы создаёте их постоянно, это может стать причиной утечки памяти. Используйте безымянные объекты только для статических объектов, которые живут на всем протяжении работы программы.

--Это безымянный объект
Entity:new(screen)

После создания, вы больше не можете обратиться к этому объекту. Вы можете обращаться к этому объекту только при помощи массива _screen.child. Объекты без имени могут использоваться в движке Cheetah очень часто: фоновые изображения, статические картинки, объекты, которые живут постоянно: кнопки, индикаторы, объекты пользовательского интерфейса.


Уроки | Документация Language: English | Русский
Clone this wiki locally