Подтвердить что ты не робот

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

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

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

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


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

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

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

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

4b9b3361

Ответ 1

Ниже приведены необходимые шаги для добавления шрифта в ваш проект.

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

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

    enter image description here

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

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

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

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

    enter image description here

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

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

  • Затем откройте файл проекта info.plist. На экране дизайнера plist щелкните правой кнопкой мыши по первой строке plist и выберите Add Row. Это откроет окно выбора ключа. Выберите параметр "Шрифты, предоставленные приложением".

    enter image description here

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

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

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

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

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

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

enter image description here