Думал, что успешно добавил Cocos2D в свой проект Cocoa Touch, но автозаполнение не показывает классы CC

После нескольких онлайн-руководств мне удалось добавить Cocos2D в мой проект Cocoa Touch (UIKit). Проблема в том, что я могу #import "cocos2d.h" в верхней части любого из моих файлов, и моя игра компилируется и работает нормально, работает так же, как и раньше, но у меня нет доступа ни к одному из классов cocos, таких как CCNode, CCLayer и т.д.

Чтобы дать вам представление о том, что делает приложение, в настоящее время появляется главное меню UITableView, прокручивается как следует, кнопки, которые ведут к различным контроллерам представления (facebook, twitter, создание новой игры, магазин, настройки и т. д.), все работает отлично. Кнопки «Назад» в каждом представлении возвращают пользователя к представлению таблицы главного меню. Это почти все, что он делает на данный момент. Идея на этом этапе состоит в том, чтобы передать эстафету сцене Cocos2D, где будет происходить игровой процесс, когда пользователь нажимает на одну из ячеек UITableViewCell, которая представляет текущее совпадение.

Процесс, который я использовал для добавления Cocos2D в свой проект, был следующим:

  1. Перетащите файл cocos2d-ios.xcodeproj в мою папку «вспомогательные файлы».
  2. В разделе «Связать двоичный файл с библиотеками» в разделе «Настройки сборки» для моего проекта я добавил libcocos2d.a (который продолжает отображаться красным цветом даже после «успешного» добавления Cocos2D), libz.dylib, OpenGLES.framework и QuartzCore. рамки. Все они читаются как «требуется».
  3. В разделе "Настройки сборки" для моей цели установите для параметра "Пути поиска заголовков пользователей" значение "/Users/Home/Downloads/cocos2d-iphone-master-v2/**" (рекурсивный), где папка моей библиотеки Cocos2D.
  4. В разделе "Настройки сборки" для моей цели установите для параметра "Всегда искать пути пользователей" значение ДА.
  5. Сделал те же два шага одинаково для моего проекта "Настройки сборки"
  6. Просмотрел и выбрал все файлы Cocos2D .h и .m и установил флаги компилятора -fno-objc-arc для всех файлов Cocos2D, что позволяет вызовам pre-ARC сохранять, освобождать, освобождать и т. д. в старых файлах Cocos2D для играть хорошо со всеми файлами post-ARC в моем проекте.

Также стоит отметить, пожалуй, то, что когда я создаю новый файл в своем существующем проекте «cmd + n», единственными доступными мне опциями в шаблонах Cocos2D является класс CCNode.

Я что-то пропустил, здесь? Опять же, чтобы внести ясность, я могу импортировать файл cocos2d.h, и, похоже, все будет работать нормально. Но когда я пытаюсь определить что-либо, начинающееся с «CC», автозаполнение ничего не показывает. Любая помощь будет оценена по достоинству. Бьюсь головой о стену, вот. ТИА


person baptzmoffire    schedule 09.01.2013    source источник


Ответы (1)


Проблема с автозаполнением, скорее всего, связана с рекурсивным путем поиска. У Xcode есть проблемы с индексацией рекурсивных путей поиска заголовков (особенно если вы просто добавляете .xcodeproj). Измените его на абсолютный путь, добавьте несколько путей, если исходные файлы разбросаны по нескольким папкам.

С Xcode 4 вы больше не должны добавлять xcodeproj в другой проект. Используйте рабочее пространство для объединения нескольких проектов в одном рабочем пространстве. См. Kobold2D для примера (или просто используйте его, если у вас по-прежнему возникают проблемы, потому что они уже решены в Kobold2D). ).

person LearnCocos2D    schedule 09.01.2013
comment
Фу. Если бы это не было неуместно, непрофессионально и, возможно, немного странно, я бы публично признался тебе в любви, прямо сейчас, Штеффен. :) Метод А с использованием абсолютных путей сработал как шарм. Что касается рабочего пространства, я обязательно буду иметь это в виду в будущем. Что касается Kobold2D, то после того, как этот проект будет завершен, я собираюсь попробовать его. Я где-то прочитал ваш пост, в котором говорилось, что невозможно добавить Kobold2D в существующий проект UIKit, поэтому я не стал исследовать дальше. Это изменилось? - person baptzmoffire; 10.01.2013