Tymonr | Дата: Суббота, 13 Июня 2015, 18:28 | Сообщение # 1 |
With OpenSource forever♥
Сейчас нет на сайте
| Урок #3. С остальными можно ознакомиться по ссылке.
Данный урок практически полностью описан в официальном руководстве программиста в главе 2 «Базовые Cocos2d-x концепты» а так же является полностью обзорным – более подробно о каждом из описанных элементов можно прочитать в последующих уроках. Cocos2d обладает несколькими основными, и, разумеется множеством производных классов (Читай – объектов). Основными являются: Director, scene, node. Из основных наследуемыми от node элементами можно выделить: Layer, Label, sprite, menu; Так же очень важными понятиями являются родители/дети*[0], диспетчеры событий, график(дерево) сцены(scene graph), действия, пользовательские преопределения (UserDefault)
Director представляет собой стержень, основу – это класс, хранящий данные о текущем состоянии приложения, используемых окнах и сценах, размере окна(экрана) и подобная базовая информация. В официальном руководстве в пример приводится схема: В данном случае демонстрируется функциональность Director’a как класса, переключающего активные сцены. Класс Director является чисто виртуальным, а его нестатические функции вызываются через метод getInstance();
Scene представляет из себя, как ни странно, сцену, к которой «прикрепляются» (Читай пункт про детей/родителей) все внутриигровые объекты, является не столько техническим, сколько визуальным представлением для удобства программиста. Больше о сцене сказать нечего. Кроме того, что она тоже наследуется от node, но я выделил ее отдельно в силу ее специфического назначения.
Node – является предком всех внутриигровых, «Интерактивных» объектов. Среди них: Menu и MenuElement – классы элементов пользовательского интерфейса, «Меню». Sprite – класс спрайта, основной элемент для отображения и передачи изображений Label – класс отображения текста, к нему можно применять Layer – слой, предназначен для объединения групп объектов, например: игровое поле, UI и слой эффектов. Уже упомянутая Scene.
Родители/дети, или наследование – работает похожим способом, что и наследование в C++: Дети наследуют свойства родителей, а также все методы, вызываемые для родителей, вызываются и для детей. Пример наследования из официального руководства:
Scene graph – система приоритетов вызова методов детей. При «наследовании» для ребенка выставляется параметр z-order’а – тот порядок, в котором будут вызываться методы детей (И детей их детей). Чем меньше значение, тем меньше будет приоритет. В т.ч. это касается функций прорисовки.
Диспетчеры событий – наинеобходимейшая вещь для взаимодействия с пользователем. Это методы, вызываемые при происхождении определенных событий
Действия – действия, выполняемые над объектами – движение в заданную точку, изменение прозрачности, вращение, удаление. Удобство этих методов том что пользователю(Программисту) нет необходимости отдельно выполнять лишние проверки и вызывать лишние функции во время выполнения действий.
Класс UserDefault хранит значения, сохраненные с определенным ключом
Код UserDefault::getInstance()->setStringForKey("string", "value1"); UserDefault::getInstance()->getStringForKey("string");
[0] – В идеале это стоит называть наследованием, но дабы избежать путаницы с наследованием в самом коде называю системой родителей/детей
Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
Сообщение отредактировал Tymonr - Суббота, 13 Июня 2015, 18:33 |
|
| |