Как я могу добавить шрифт в мой проект Cocos2D iOS и использовать его с CCLabelTTF?

Мне нужно использовать собственный шрифт с моим проектом Cocos2D. Я попробовал несколько методов, но Cocos2D продолжает сообщать:

Невозможно загрузить шрифт XXX.ttf

Почему я не могу заставить мой собственный шрифт работать с Cocos2D?


ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Это вопрос + ответ пост. Это была проблема, из-за которой я все утро бился головой о стену. Прочитав множество решений на многочисленных веб-сайтах, я обнаружил, что для решения этой проблемы необходимо объединить все доступные решения.

Что еще больше запутало проблему для некоторых людей, так это то, что вы иногда можете заставить свое приложение работать идеально в симуляторе, но оно не будет работать на вашем устройстве iOS! Кроме того, я также читал о нескольких случаях, когда у пользователей возникала противоположная проблема, когда устройство будет работать правильно, а не симулятор. У меня не было последней проблемы, но я уверен, что следование этим инструкциям поможет решить эту проблему для всех.

Если у вас возникла эта проблема, вы решили ее самостоятельно, и я пропустил шаг, пожалуйста, оставьте комментарий. Я обновлю свой пост, чтобы включить любые дополнительные детали.

1 ответ

Решение

Вот необходимые шаги, которые вы должны выполнить, чтобы добавить шрифт в ваш проект.

  1. Установите новый, собственный шрифт в Font Book. Я предполагаю, что вы знаете, как это сделать, и я оставлю дальнейшее объяснение этого шага в Google.

  2. Далее, в Font Book, найдите свой только что установленный шрифт. Выберите шрифт и нажмите кнопку " Информация" на панели инструментов "Шрифт".

  3. Принять к сведению PostScript name имущество. Это должно быть имя вашего файла шрифта (исключая расширение файла шрифта) в вашем приложении.

    ПРИМЕЧАНИЕ. Я читал, что у некоторых пользователей возникают проблемы с использованием пользовательских шрифтов с именами, включая пробелы. Я не уверен, что это была просто ошибка со стороны пользователя, потому что я не уверен, могут ли имена PostScript содержать пробелы. В любом случае, если ваше имя в PostScript содержит пробел, у вас могут возникнуть проблемы с доступом к вашему шрифту.

    Если это ваша проблема, вы можете посмотреть, можете ли вы приобрести инструмент, который позволит вам изменить свойство имени PostScript вашего шрифта. Вам нужно будет сделать это до того, как вы добавите файл в ваш проект XCode. В противном случае, я предполагаю, что ваш собственный шрифт будет работать в симуляторе, но не на вашем устройстве iOS.

  4. Откройте свой проект XCode и перетащите ваш шрифт из Finder в папку ресурсов вашего проекта. Прежде чем нажимать кнопку "Готово" на экране "Добавить файл", обязательно установите флажок, чтобы скопировать шрифт в папку целевой группы.

  5. После добавления вашего шрифта в папку ресурсов. Убедитесь, что имя шрифта совпадает с именем PostScript, которое упоминалось на шаге № 3. Имя должно также включать любые специальные символы, такие как дефисы или подчеркивания.

    Если ваш шрифт не совпадает с именем PostScript (исключая расширение файла), вы не сможете получить доступ к этому шрифту с вашего устройства iOS, поэтому переименуйте файл в своем проекте. В случае моего образца шрифта мне нужно было переименовать NES.ttf в Nintendo-NES-Font.ttf

  6. Далее откройте проект info.plist файл. На экране конструктора списков щелкните правой кнопкой мыши первую строку списка и выберите " Добавить строку". Это вызовет окно выбора ключа. Выберите опцию "Шрифты, предоставляемые приложением".

  7. Новый массив в plist автоматически добавит пустой "Item 0". Установите свойство строки в имя вашего файла шрифта. В моем примере значение свойства должно быть Nintendo-NES-Font.ttf.

  8. Затем перейдите на экран Build Phases для вашего проекта XCode. Отсюда убедитесь, что ваш файл шрифта находится в списке группы " Копировать комплект ресурсов ". Если это не так, добавьте файл в каталог вашего проекта.

Это оно! Ваш шрифт теперь находится в вашем проекте и может быть использован CClabelTTF этикетки. Помните, что при создании метки указывайте шрифт по имени PostScript. Вам не нужно включать расширение файла.ttf. В приведенном ниже примере кода показано, как создать ярлык с пользовательским шрифтом.

CCLabelTTF* label = [CCLabelTTF labelWithString:@"Your label text here." 
                                       fontName:@"Nintendo-NES-Font"
                                       fontSize:16];

Добавьте метку в качестве дочернего элемента к своему слою, и она будет отображаться с использованием вашего собственного шрифта!

И вот наши результаты:

Другие вопросы по тегам