Четверг, 18 Апреля 2024, 06:37

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » /*Уроки по Cocos2d-x*/ — Основные понятия и элементы ((#3 статья из серии уроков по Cocos2d-x))
/*Уроки по Cocos2d-x*/ — Основные понятия и элементы
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
  • Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » /*Уроки по Cocos2d-x*/ — Основные понятия и элементы ((#3 статья из серии уроков по Cocos2d-x))
    • Страница 1 из 1
    • 1
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг