Как добавить шрифт в проект Cocos2D iOS и использовать его с помощью CCLabelTTF?
Мне нужно использовать пользовательский шрифт с моим проектом Cocos2D. Я пробовал несколько методов, но Cocos2D продолжает сообщать:
не удалось загрузить шрифт XXX.ttf
Почему я не могу получить свой пользовательский шрифт для работы с Cocos2D?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Это вопрос+ответ. Это была проблема, из-за которой я все утро бился головой о стену. После прочтения многочисленных решений, на многочисленных веб-сайтах я обнаружил, что для устранения этой проблемы необходима смесь всех доступных решений.
Что еще больше запутало проблему для некоторых людей, так это то, что вы иногда можете заставить свое приложение работать, отлично, в симуляторе, но оно не будет работать на вашем устройстве iOS! Кроме того, я также читал о нескольких случаях, когда у пользователей была противоположная проблема, когда устройство будет работать правильно, но не симулятор. Я не испытывал последняя проблема, но я считаю, что следующие эти инструкции помогут решить эту проблему для всех.
Если у вас была эта проблема, решил ее самостоятельно, и я пропустил шаг, пожалуйста, оставьте комментарий. Я обновлю свой пост, чтобы включить любые дополнительные детали.
1 ответов
вот необходимые шаги, которые вы должны выполнить, чтобы добавить шрифт в свой проект.
установите новый пользовательский шрифт в Книгу шрифтов. Я предполагаю, что вы знаете, как это сделать, и я оставлю дальнейшее объяснение этого шага Google.
-
далее в книге шрифт, найти установленный шрифт. Выберите шрифт и нажмите на кнопку информация кнопка на книге шрифтов панель инструментов.
-
обратите внимание на
PostScript name
собственность. Это должно быть имя файла шрифта (за исключением расширения файла шрифта) в приложении.Примечание: я читал о некоторых пользователях, имеющих проблемы с использованием пользовательских шрифтов с именами, включая пробелы. Я не уверен, что это была просто ошибка со стороны пользователя, потому что я не уверен, что имена PostScript могут даже включать пробелы. Независимо от того, если ваш PostScript имя включает пробел, у вас все еще могут быть проблемы с доступом к вашему шрифту.
если это ваша проблема, вы можете посмотреть, можно ли приобрести инструмент, который позволит вам изменить свойство PostScript name вашего шрифта. Вам нужно будет сделать это, прежде чем добавлять файл в проект XCode. В противном случае, я предполагаю, что ваш шрифт будет работать в симуляторе, но не на вашем устройстве iOS.
-
откройте проект XCode и перетащите шрифт из Finder, в папку ресурсов проекта. Перед нажатием кнопки Готово на экране Добавить файл установите флажок копировать шрифт в папку целевой группы.
-
после добавления шрифта в папку Resources. Убедитесь, что имя шрифта совпадает с именем PostScript, упомянутым в шаге #3. Имя также должно содержать специальные символы, такие как дефисы или подчеркивания.
если ваш шрифт не назван так же, как имя PostScript (за исключением расширения файла), вы не сможете получить доступ к этому шрифту с вашего устройства iOS, поэтому переименуйте файл в своем проекте. В случае моего образца шрифта мне нужно было переименовать NES.ttf to Nintendo-NES-шрифт.ttf
-
затем откройте . На экране plist designer щелкните правой кнопкой мыши первую строку plist и выберите Добавить Строку. Этот появится окно выбора ключа. Выберите параметр массива" шрифты, предоставляемые приложением".
новый массив в plist автоматически добавит пустой "элемент 0". Задайте для свойства string имя файла шрифта. В случае моего примера значение свойства должно быть Nintendo-NES-шрифт.ttf.
Далее перейдите на экран фазы сборки для вашего проекта XCode. Отсюда, убедитесь, что ваш файл шрифта находится в списке Копия Пакета Ресурсов группы. Если это не так, добавьте файл в каталог проекта.
вот именно! Ваш шрифт теперь находится в вашем проекте и может быть использован CClabelTTF
метки. Помните, что при создании метки укажите шрифт по имени PostScript. Вы не должны включать ".ttf " расширение файла. В приведенном ниже примере кода показано, как создать метку с пользовательским шрифтом.
CCLabelTTF* label = [CCLabelTTF labelWithString:@"Your label text here."
fontName:@"Nintendo-NES-Font"
fontSize:16];
добавить метку как ребенок к вашему слою, и он будет отображаться с помощью пользовательского шрифта!
и вот наши результаты: