Рассмотрение
любого языка, фреймворка и тд, зачаcтую
начинают с обычного проекта
“Hello Word”. Но для начала,
чуть-чуть разберемся в архитектуре построения классов
cocos2d.
Как видно из диаграммы, в основе всех объектов кокоса лежит CCNode.
CCNode – класс прародитель (или базовый), определяющий все свойства и методы общие для всех его наследников и не имеющий визуального представления.
Основные классы, используемые в построении базового функционала – CCDirector,CCLayer и CCScene, о которых мы сейчас и поговорим.
CCDirector(Директор) – это singleton-класс, основной в механизме работы приложения. Он хранит глобальные настройки, конфигурации для фреймворка и управляет сценами (CCScene).CCScene(сцена) – класс-контейнер для всех объектов.CCLayer(слой) – класс, для группировки объектов (аналог слоя в PhotoShop J). Слой, чаще всего, используется для разделения функциональной части и графической + обладает методами для обработки касаний, нажатия мыши и снятия данных с акселерометра.
Итак, приступим к практике:
1. Создадим кокосовский проект
CCNode – класс прародитель (или базовый), определяющий все свойства и методы общие для всех его наследников и не имеющий визуального представления.
Основные классы, используемые в построении базового функционала – CCDirector,CCLayer и CCScene, о которых мы сейчас и поговорим.
CCDirector(Директор) – это singleton-класс, основной в механизме работы приложения. Он хранит глобальные настройки, конфигурации для фреймворка и управляет сценами (CCScene).CCScene(сцена) – класс-контейнер для всех объектов.CCLayer(слой) – класс, для группировки объектов (аналог слоя в PhotoShop J). Слой, чаще всего, используется для разделения функциональной части и графической + обладает методами для обработки касаний, нажатия мыши и снятия данных с акселерометра.
Итак, приступим к практике:
1. Создадим кокосовский проект
2. Откроем класс Hello Word.
Как видно, тэмплейт кокоса, уже содержит проект с надписью Hello World.( у меня стоит не последняя версия данного фреймворка. В последней версии, стандартный темплейт, содержит еще дополнительный функционал, в виде подключения к Game Center ). Но на данный момент, это не суть важно.
3. Удалим все лишнее и рассмотрим основную структуру CCLayer. Я добавил пару методов, которым стоит уделить внимание.
Первое - объявление сцены. Сцена, как я упоминал выше, является контейнером для объектов, а все объекты помещаются в слои. Примером была надпись (CCLable), в исходном темплейте.
Объявление сцены - не обязательная часть структуры класса. Для отображения каких либо пунктов интерфейса или игрового мира и персонажа, хватит и одной сцены, содержащей множество слоев.Следущее - метод update. Аналог таймера из UIKit, но при конструировании игр, имеющий очень большое значение. Этот метод, так же не обязателен.
Далее у нас идет, комплекс методов для обработки Touches или другими словами прикосновений. Эти методы не обязательны (к примеру в ситуации - простой интерфейс, состоящий из меню).
И последнее - dealloc. Метод деинициализации объявленных ранее объектов в этом слое.
На этом мы остановимся. Более подробно о использовании, каждого из методов и объектов, я расскажу в следующих статьях. А теперь, я дам пару советов.
Делайте сниппеты
Выделяем нужный кусок кода и над выделенной частью кода зажимаем левую кнопку, пока не появится курсор, при этом захватив выделенный кусок кода.
Затем, перенесите его в область стандартных сниппетов, создав новую ячейку. Я взял для примера, метод scene.
Проведем небольшую конфигурацию новоиспеченного сниппета.
Title(название): Scene Snippet
Platform(платформа): All
Language(Язык программирования): Objective-CCompletion Shortcut(подсказка): scene (основная опция)
Completion Scopes(Область видимости): All
И проведем пару замен в коде. В место, названия слоя (Hello World), подставим не большой тэг <#Class name#>. Этот тег позволит при автокомплите создать заглушки.
Теперь, при наборе кода, если мы начнем вводить часть подсказки указанной в настройках сниппета, нам высветится меню автокомплита с уже ново созданной заглушкой scene.
При выборе scene, у нас появится данный блок кода с двумя полями для заполнения.
Комментариев нет :
Отправить комментарий