عنوان : رسم یک متن برروی صفحه
در این قسمت می خواهیم یک متن را بر روی صفحه بازی رسم کنیم .
جهت رسم یک متن بر روی صفحه بازی ما نیاز به آن داریم ک هاز فوت ها استفاده کنیم مسلما تمامی رسم نوشته های سیستم عامل ما به وسیله انواع و اقسام فونت ها انجام می گیرد . در اینجا هم این قاعده وجود دارد . متاسفانه به خاطر عدم و جود ابزار مناسب تا این ورژن از MonoGame به جهت ساخت اسپرایت فونت ها ما ناچارا باید از ساختار و ابزار xna استفاده کنیم . البته سازندگان قول مساعد برای اضافه کردن این بخش ها در نسخه های اینده MonoGame را داده اند. برای این ما ابتدا باید xna 4 را بر روی ویژوال استدیو خودمان نصب کرده باشیم .توجه کنید در این مورد برعکس اضافه کردن ساختار های مشابه ما نمی توانیم ازفونت فایل xml و یا تکسچر فونت به صورت مستقیم استفاده کنیم و با این فونت را ابتدا تشکیل داده و به فرمت spritefont ذخیره کرده و از آن در ساختار کامپایل شده xnb استفاده کنیم .
برای این کار ابتدا باید یک پروژه xna از نوع windows game ایجاد کنید :
سپس بر روی بخش کنتنت پروژه خود در پنجره sulotion explorer راست کلیک کرده و سپس بر روی new item کلیک کنید :
اکنون در این قسمت یک فایل جدید از نوع spritefont با زدن add به انتخاب نام مناسب به پروژه اضافه کنید
همانطور که مشاهده می کنید این فایل به پروژه شما اضافه شده
در میان محتویات این فایل کد های زیر قرار دارند :
<FontName>Segoe UI Mono</FontName>
این کد برای قرار دادن نام فونت مورد نظر
<Size>14</Size>
اندازه کلمات
<Spacing>0</Spacing>
فاصله کلمات
<Style>Regular</Style>
برای تعیین خاصیت های متن نظیر زیر خط دار بودن و یا بزرگ بودن
پروژه را کامپایل کرده و اجرا کنید تا فایل مورد نظر ما ایجاد شود .
پس از این کار به مکانی که پروژه در سیستم عامل ما به وجود امده رجوع می کنیم در مثال ما پروزه windows game 4 در مسیر زیر تشکیل شده :
C:\Users\john\Documents\Visual Studio 2010\Projects\WindowsGame4
وارد این مسیر شده :
\WindowsGame4\bin\x86\Debug\Content
می توانید مشاهده کنید که دو فایل که یکی از آن ها به فرمت sprite font و دیگری به فرمت xnb تشکیل شده اند :
اکنون این فایل اماده استفاده است . حال پروژه جدیدی از نوع MonoGame بسازید .
فایل xnb را به content های پروژه خود وارد کنید
یک بار build گرفته تا فایل xnb در مسیر فایل پروژه شما ذخیره شود .
اکنون متغییر مربوط به آن را به صورت سراسری ایجاد می کنیم :
کد PHP:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اکنون در متد LoadContent فایل فونت خود را وارد می کنیم .
کد PHP:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اخرین کاری که مانده است رسم این فونت بر روی سکانس بازی می باشد . برای اینکار ما باید با استفاده از کلاس spritebatch و متد Drawstring این کار را انجام دهیم .
به متد Draw رجوع کرده و کد زیر را وارد کنید :
کد PHP:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در این کد مقادیر DrawString :
- - فونت مربوطه که وارد کرده بودیم
- - متنی که می خواهیم بر روی سکانس نمایش دهیم
- - رنگ متن
اکنون خروجی را با تغییر مختصات نمایشی می خواهیم بر روی سکانس نمایش دهیم :
* به این نکته توجه داشته باشید که متد DrawString نیز همانند متد Draw دارای خاصیت های source - scale - rotation و غیره ... می باشد . بنابراین شما می توانید همان کارهایی را که با رسم تصاویر در قسمت های قبلی انجام داده اید در اینجا نیز انجام دهید