صفحه نمایش پیشرفته ژاپنی با استفاده از پردازنده های محتوای سفارشی
درباره نمایش ژاپنی
نقاشی متن در MonoGame از SpriteFont و همچنین XNA استفاده می کند. برای SpriteFont، 英数字を表示させる به نمایش کاراکترهای フォントスタイルの詳細 آلفاعددی و جزئیات سبک فونت، به عنوان همان XNA نگاه کنید.
اگر از SpriteFont استفاده می کنید، باید کاراکترهایی را که می خواهید از آن استفاده کنید، پیشاپیش مشخص کنید. اگر تنها نمادهای آلفاعددی باشد، می توان آن را با تقریباً بدون هزینه به عنوان یک مشخصه کاراکتر انجام داد و زمان ساخت را به دلیل اینکه حدود ۱۰۰ کاراکتر است، اما وقتی به ژاپنی می آید، هزاران کاراکتر می شود، بنابراین زمان ساخت به شدت طولانی می شود. اگر فقط کاراکترهایی را که باید استفاده شوند مشخص کنید، زمان ساخت می تواند تا حدی کوتاه شود، اما مشخص کردن کاراکتر ی که به صورت معکوس استفاده شود، دردسرسازتر است و اگر تغییری در کاراکتر وجود داشته باشد که مورد استفاده قرار گیرد، این کار حتی دردسرسازتر می شود.
در پاسخ به این مشکل، سایت "نینیری جی دی"سفارشی شده است تا ژاپنی های رسم شده در XNA را هموارتر بکنند (به هر حال، سایت اجرا شده Yuichi Ito - MSFT یکی از توسعه دهندگان XNA Framework است). این کار باعث می شود مشخص کردن کاراکترها برای استفاده، کوتاه کردن زمان ساخت، تزئین کاراکترها و بیشتر آسان تر شود. برای کسب اطلاعات بیشتر به لینک مراجعه نمایید.
با این حال ، "WPF پردازنده فونت" ارائه شده در صفحه برای XNA است و نمی تواند به عنوان در MonoGame استفاده می شود. بنابراین من می خواهم به پورت این به MonoGame.
دانلود WPF پردازنده فونت
-باز کردن سایت های زیر:
به دو لینک پایین بروید، و لینک بالا را کلیک کنید تا پروژه ای که حاوی کد مرتب سازی است را دانلود کنید. پایین تر فقط DLL است، بنابراین شما لازم نیست آن را دانلود کنید.
لطفاً فایل دانلود شده را استخراج کنید تا بتوانید محتویات را بازیابی کنید.
ایجاد یک پروژه پردازشگر فونت WPF
من می خواهم برای ایجاد یک DLL پردازنده فونت WPF که با "هر پردازنده" کار می کند، اما به دلایلی وقتی من یک پروژه با "محتوا خط لوله فرمت کتابخانه" از چارچوب XNA ایجاد کنید، من فقط می توانم آن را در x86 ایجاد کنید، بنابراین من آن را از یک کتابخانه کلاس به طور منظم در اینجا ایجاد کنید.
هنگامی که شما یک پروژه ایجاد می کنید، شما نیاز به "Class1.cs"، بنابراین آن را حذف کنید.
در مرحله بعد، یک مرجع اضافه کنید.
چون شما متن را در WPF ترسیم می کنید، به یک مرجع مرتبط با WPF نیاز دارید. ابتدا "PresentationCore" را از "Framework" بررسی کنید.
-بعد، "WindowsBase" را بررسی کنید. اکنون دکمه OK را فشار دهید تا دوباره مدیر مرجع را تأیید و باز کنید.
فهرست اسامی در سمت چپ را انتخاب کنید و روی دکمه مرور زیر کلیک کنید.
مسیر پوشه زیر را باز کنید:
- C:\Program Files(x86)\MSBuild\MonoGame\v3.0\Tools\
از آن جا دو دال زیر را اضافه کنید:
- MonoGame.Framework.dll
- monoGame.Framework.Content.Pipeline.dll
مطمئن شوید که بررسی شده و روی دکمه OK کلیک کنید.
ارجاعات اضافه شده را مرور کنید.
کد منبع را از پوشه "WpfFontPipeline" از پروژه ای که دانلود کرده اید به پروژه ای که در حال حاضر ویرایش می کنید اضافه کنید.
دولت شما اضافه شده است.
بررسی کنید که پیکربندی ساخت "انتشار" و "هر CPU" است.
انجام ساخت تا ببینید که اگر آن را با موفقیت ساخته شده است.
dLL ایجاد می شود.
ایجاد یک پروژه بازی
ایجاد یک پروژه برای MonoGame. مهم نیست که چه سکوایی است.
-DLL ای که شما فقط ایجاد کرده اید را در پوشه محتوا قرار دهید. مهم نیست که DLL کجاست، اما در این صورت شما به یک مسیر نسبی یا مطلق نیاز خواهید داشت، بنابراین من آن را در اینجا برای حال حاضر ترک می کنم.
-باز کردن Content.mgcb و باز کردن مراجع با محتوا انتخاب شده است.
اگر برای باز نکردن آن روی "Content.mmcb" دوبار کلیک می کنید، از منوی شروع شروع به "MonoGame Pipeline" شروع کنید.
در کادر متن، نام فایل DLL که تازه ایجاد کرده اید، یا مسیر نسبت به یا مسیر مطلق از Content.mgcb را تایپ کنید.
پس از تنظیم آن، DLL هنوز بازتاب نمی کند، بنابراین هنگامی که پروژه را ذخیره می کنید، از خط لوله تک بازی خارج شده و دوباره باز می شود.
قلم ی پرت ایجاد می کند. •انتخاب "ویرایش" >Add→New Item از منوی.
برای افزودن آن، گزینه "SpriteFont Description" را از میان موارد انتخاب کنید. (اتفاقا ً بعد از اضافه کردن 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 را به صورت یک فایل متنی باز کنید.
اگر شما پایین حرکت، اطلاعات رنگ در پارامتر هدف وجود دارد، بنابراین لطفا آن را ویرایش به طور مستقیم وجود دارد.
پس از ذخیره متن، خط لوله مونوبازی را دوباره باز کرده و آن را بسازید. می بینید که رنگ وقتی اجرا می کنید تغییر کرده است.