Усовершенствованный японский дисплей с использованием пользовательских процессоров контента
О японском дисплее
Текстовый рисунок в MonoGame использует SpriteFont, а также XNA. Для SpriteFont, см отображение alphanumeric символов и шрифта Стиль Детали, как это то же самое, как XNA.
Если вы используете SpriteFont, вы должны указать символы, которые вы хотите использовать заранее. Если это только алфавитные символы, это может быть сделано почти без затрат, как спецификация персонажа и время сборки, потому что это около 100 символов, но когда дело доходит до японского, он становится тысячи символов, так что время сборки становится чрезвычайно длинным. Если вы укажете только символы, которые будут использоваться, время сборки может быть сокращено до некоторой степени, но это хлопотно указать символ, который будет использоваться в обратном направлении, и это становится еще более хлопотно, если есть изменения в символе, который будет использоваться.
В ответ на эту проблему, "Ninari GD"сайт был настроен, чтобы сделать рисунок японский в XNA более гладко (кстати, сайт перспективе Yuichi Ito - MSFT является одним из разработчиков XNA Framework). Это упрощает определение символов для использования, сокращение времени сборки, украшение символов и многое другое. Для получения дополнительной информации, пожалуйста, обратитесь к ссылке.
Тем не менее, "процессор шрифта WPF", представленный на странице, предназначен для XNA и не может быть использован как в MonoGame. Так что я хотел бы портировать это на MonoGame.
Скачать процессор шрифта WPF
Открыть следующие сайты:
Прокрутите вниз до двух ссылок и нажмите на ссылку выше, чтобы загрузить проект, содержащий код сортировки. Нижняя из них только DLL, так что вам не придется загружать его.
Пожалуйста, извлеките загруженный файл, чтобы вы могли получить содержимое.
Создание проекта процессора шрифтов WPF
Я хотел бы создать процессор шрифта WPF DLL, который работает с "Любой процессор", но по некоторым причинам, когда я создаю проект с "Content Pipeline Extension Library" XNA Framework, я могу создать его только в x86, так что я создаю его из обычной библиотеки класса здесь.
При создании проекта вам не нужно "Class1.cs", поэтому удалите его.
Далее добавьте ссылку.
Поскольку вы рисуете текст в WPF, вам нужна ссылка, связанная с WPF. Во-первых, проверьте "PresentationCore" из "Рамочная".
Далее, проверить "WindowsBase". Теперь нажмите кнопку OK, чтобы подтвердить и открыть справочный менеджер снова.
Выберите Просмотр слева и нажмите кнопку Просмотра ниже.
Откройте следующий путь папки:
- C:«Программные файлы (x86)»MSBuild-MonoGame-v3.0»Инструменты»
Оттуда добавьте следующие два DLLs:
- MonoGame.Framework.dll
- MonoGame.Framework.Content.Pipeline.dll
Убедитесь, что он проверен и нажмите кнопку OK.
Просмотрите добавленные ссылки.
Добавьте исходный код из папки "WpfFontPipe" из проекта, который вы скачали, в проект, который вы сейчас редактируете.
Состояние, в которое вы добавили.
Убедитесь, что конфигурация сборки "Release" и "Любой процессор".
Выполните сборку, чтобы увидеть, если он был построен успешно.
Создается DLL.
Создание игрового проекта
Создайте проект для MonoGame. Не имеет значения, какая это платформа.
Поместите только что созданный DLL в папку Содержимого. Это не имеет значения, где DLL, но в этом случае вам понадобится относительный или абсолютный путь, так что я оставлю его здесь на данный момент.
Открыть Content.mgcb и открыть Ссылки с контентом выбран.
Если вы дважды нажмете кнопку "Content.mmcb", чтобы не открыть его, начните "MonoGame Pipeline" из меню "Пуск".
В текстовом поле введите имя файла DLL, который вы только что создали, или путь относительно или абсолютный путь от Content.mgcb.
После настройки DLL по-прежнему не отражается, поэтому, как только вы сохраните проект, выйдите из моноиграмного трубопровода и вновь откроете его.
Создает шрифт спрайта. Выберите из меню «Редактировать» (Добавить новый пункт).
Выберите "SpriteFont Описание" из числа элементов, чтобы добавить его. (Кстати, после добавления SpriteFont я открыл файл SpriteFont, чтобы облегчить его возможность увидеть во время выполнения и изменил имя шрифта и размер.)
Если вы выберете добавленный SpriteFont, вы увидите, что процессор шрифта WPF доступен в процессоре.
Поскольку каждый параметр может быть установлен, на этот раз я попытался установить его, как показано на рисунке на данный момент. К сожалению, вы не можете изменить цвет в текущей версии MonoGame pipeline.
Попробуйте построить. 6860 символов были построены, потому что он включал до уровня JIS 2. Тем не менее, время составляет около девяти секунд, так что вы можете видеть, что это довольно быстро.
Теперь мы рисуем с помощью этого SpriteFont, и код точно такой же, как XNA. Вы можете нарисовать текст, используя код, введенный в "Отображение алфавитных символов", как это. Конечно, японский также возможно.
Я хотел бы поместить только код, который я добавил один раз.
Часть определения поля. Добавлен "SpriteFont".
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font;
Загрузка и создание данных шрифта в методе LoadContent.
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
// TODO: use this.Content to load your game content here
// フォントデータの読み込み
font = Content.Load<SpriteFont>("Font");
}
Рисунок с японцем в методе рисования.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
spriteBatch.DrawString(font, "真・簡単(かもしれない)日本語表示",
new Vector2(50, 50), Color.White);
spriteBatch.DrawString(font, @"・OpenTypeフォント対応
・処理速度の高速化
・JIS漢字追加機能
・文字装飾",
new Vector2(50, 150), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
При выполнении текст нарисован. Это немного трудно понять, но буквы имеют границы и синие градации внутри.
Так рисовать японцев стало легко, и стало возможным нарисовать персонажа украшением.
Наконец, вы не можете изменить цвет текстового оформления на monoGame Pipeline, но вы можете открыть файл напрямую и изменить его.
После того как вы сохранили и закрыли проект, откройте файл .mccb в виде текстового файла.
Если вы прокрутите вниз, есть цветная информация в целевом параметре, поэтому, пожалуйста, отредактируйте ее непосредственно там.
Сохранив текст, откройте monoGame Pipeline снова и постройте его. Вы можете видеть, что цвет изменился при запуске его.