فونٹ اسٹائل کے بارے میں مزید
خلاصہ
یہ اسپرائٹ فونٹ فائل اور دکھائے جانے والے حروف کی تفصیلات بیان کرتا ہے۔
آپریٹنگ ماحول
ضروری شرائط
XNA ورژن کی حمایت کی |
|
حمایت یافتہ پلیٹ فارم |
|
Windows Required Vertex Shader Version | 2.0 |
Windows Required پکسل شادer Version | 2.0 |
آپریٹنگ ماحول
پلیٹ فارم |
|
مادہ
اسپرائٹ فونٹ فائل میں ، درج ذیل سات آئٹمز کی وضاحت کی جاسکتی ہے۔
- فونٹ کا نام
- فونٹ کا سائز
- حروف کے درمیان چوڑائی
- کرننگ کے ساتھ یا اس کے بغیر
- فونٹ اسٹائل
- طے شدہ حروف
- کردار انکوڈنگ تخلیق کی جائے گی
یہاں ، مندرجہ ذیل فونٹ ڈیفالٹ فونٹ کے طور پر استعمال ہوتا ہے۔ (حروف کا سائز بھی ہے ، لہذا میں اسپرائٹ فونٹ بننے کے بعد سے اس کے ساتھ تھوڑا سا چھیڑ چھاڑ کر رہا ہوں۔
فونٹ کا نام | Segoe UI Mono |
ناپ | 24 |
جگہ | 0 |
kerning | سچ |
طرز | باقاعدہ |
فونٹ کا نام
<FontName>MS 明朝</FontName>
آپ فونٹ نام کی وضاحت کرسکتے ہیں۔ جن فونٹس کی وضاحت کی جاسکتی ہے وہ فونٹ ہیں جو ترقیاتی ماحول میں انسٹال ہیں۔ چونکہ فونٹ کی تصویر بلڈ ٹائم پر پیدا ہوتی ہے ، لہذا اسے بغیر کسی پریشانی کے اس ماحول میں بھی استعمال کیا جاسکتا ہے جہاں تخلیق کردہ فونٹ انسٹال نہیں ہے۔ نیچے دیئے گئے متن کو "ایم ایس منچو" کے طور پر دکھایا گیا ہے۔
فونٹ کا نام | MS Mincho |
ناپ | 24 |
جگہ | 0 |
kerning | سچ |
طرز | باقاعدہ |
ناپ
<Size>36</Size>
متن کا سائز. یہ اسکرین پر سائز ہوگا ، اور آپ اعشاریہ جگہ کی بھی وضاحت کرسکتے ہیں۔ (واضح طور پر، یہ بیک بفر پر سائز ہوگا)
فونٹ کا نام | Segoe UI Mono |
ناپ | 36 |
جگہ | 0 |
kerning | سچ |
طرز | باقاعدہ |
Intercharacter s فاصلے
<Spacing>12</Spacing>
آپ ہر حروف کے درمیان چوڑائی کی وضاحت کرسکتے ہیں۔ یہ نمبر اسکرین پر سائز کا ہوگا۔ (واضح طور پر، یہ بیک بفر پر سائز ہوگا)
فونٹ کا نام | Segoe UI Mono |
ناپ | 24 |
جگہ | 12 |
kerning | سچ |
طرز | باقاعدہ |
kerning
<UseKerning>false</UseKerning>
حروف کے وقفے کو متوازن کریں۔ مزید معلومات کے لئے، براہ مہربانی نیچے دیئے گئے لنک کا حوالہ دیں.
پہلے سے طے شدہ طور پر ، یہ سچ ہے ، جس کا مطلب ہے کہ حروف کے درمیان جگہ کو خود بخود ایڈجسٹ کیا جاتا ہے تاکہ حروف کے درمیان جگہ کو دیکھنا آسان ہوجائے۔ اگر غلط پر سیٹ کیا جاتا ہے تو ، کرداروں کے مابین جگہ ایڈجسٹ نہیں ہوگی اور جام نظر آئے گی۔
فونٹ کا نام | Segoe UI Mono |
ناپ | 24 |
جگہ | 0 |
kerning | جھوٹ |
طرز | باقاعدہ |
طرز
<Style>Bold</Style>
آپ حروف کو بولڈ یا اٹالک بنا سکتے ہیں۔ جن پیرامیٹرز کی وضاحت کی جاسکتی ہے وہ ہیں "ریگولر"، "بولڈ"، اور "اٹالک"۔ اگر آپ ایک سے زیادہ کی وضاحت کرنا چاہتے ہیں تو ، انہیں کوما (،) کے ساتھ الگ کریں۔
فونٹ کا نام | Segoe UI Mono |
ناپ | 24 |
جگہ | 0 |
kerning | سچ |
طرز | جرات مند اور اطالوی |
طے شدہ حروف
<DefaultCharacter>◆</DefaultCharacter>
اسپرائٹ فونٹ میں ، آپ کردار انکوڈنگ کی وضاحت کرسکتے ہیں جسے "کریکٹر ریجنز" میں استعمال کیا جاسکتا ہے ، لیکن اگر آپ دوسرے حروف کو ظاہر کرنے کی کوشش کرتے ہیں تو ، ایکس این اے فریم ورک (3.1 تک) میں رن ٹائم پر ایک استثنا ہوتا ہے۔
تاہم ، اگر آپ اس "ڈیفالٹ کردار" کی وضاحت کرتے ہیں تو ، آپ اسے ایک متبادل کردار کے طور پر ظاہر کرسکتے ہیں چاہے کوئی غیر متوقع کردار داخل ہوجائے۔ مجھے لگتا ہے کہ یہ خاص طور پر صارف ان پٹ ٹیکسٹ کے لئے مؤثر ہوگا.
نیچے دی گئی ڈسپلے مثال میں ، پروگرام "ڈیفالٹ کریکٹر" کو ظاہر کرنے کی کوشش کر رہا ہے ، لیکن چونکہ یہ اسپرائٹ فونٹ صرف الفانیومک علامتوں کی اجازت دیتا ہے ، لہذا اسے ڈیفالٹ کردار میں بیان کردہ "◆" سے تبدیل کردیا گیا ہے۔
ویسے ، یہاں صرف ایک یونیکوڈ حروف کی وضاحت کی جاسکتی ہے ، اور وہ حروف بھی مخصوص کیے جاسکتے ہیں جو کریکٹر ریجنز میں مخصوص نہیں ہیں۔
کردار انکوڈنگ
<CharacterRegions>
<CharacterRegion>
<Start> </Start>
<End>~</End>
</CharacterRegion>
</CharacterRegions>
ان حروف کی وضاحت کرتا ہے جو یونیکوڈ میں بیان کردہ کوڈ میں دکھائے جاسکتے ہیں۔ "شروع" اور "اختتام" کے ذریعہ بیان کردہ کوڈز کے درمیان حروف استعمال کیے جاسکتے ہیں۔
اگر آپ ایک بڑی تعداد کی وضاحت کرتے ہیں تو ، آپ جاپانی جیسے حروف استعمال کرسکتے ہیں ، لیکن محتاط رہیں کیونکہ اسے بنانے میں کافی وقت لگتا ہے اور تیار فونٹ امیج کا فائل سائز کافی بڑا ہوجاتا ہے۔
چونکہ "کریکٹر ریجن" کے متعدد نوڈز کی وضاحت کی جاسکتی ہے ، لہذا اسے اس وقت استعمال کیا جاسکتا ہے جب آپ اسکیپ کرکے کریکٹر کوڈ کی وضاحت کرنا چاہتے ہیں۔
یونیکوڈ ٹیبلز (32 ~ 127)
(قطاروں میں نمبر × کالموں میں 16 + نمبر) کوڈ ہوگا۔
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ایک | B | C | D | E | F | ||
2 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | ||
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | |
4 | @ | ایک | B | C | D | E | F | G | H | میں | J | K | L | M | N | O | |
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | |
6 | ` | ایک | b | c | d | e | f | g | h | میں | j | k | l | m | n | o | |
7 | p | q | r | s | t | u | v | w | x | y | z | { | } | ~ | |
تمام کوڈز
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
#if WINDOWS_PHONE
using Microsoft.Xna.Framework.Input.Touch;
#endif
namespace FontStyle
{
<summary>
ゲームメインクラス
</summary>
public class GameMain : Microsoft.Xna.Framework.Game
{
<summary>
グラフィックデバイス管理クラス
</summary>
private GraphicsDeviceManager graphics = null;
<summary>
スプライトのバッチ化クラス
</summary>
private SpriteBatch spriteBatch = null;
<summary>
デフォルトフォント
</summary>
private SpriteFont defaultFont = null;
<summary>
フォント名変更フォント
</summary>
private SpriteFont fontNameFont = null;
<summary>
サイズ変更フォント
</summary>
private SpriteFont sizeFont = null;
<summary>
文字間変更フォント
</summary>
private SpriteFont spacingFont = null;
<summary>
太字フォント
</summary>
private SpriteFont boldFont = null;
<summary>
イタリックフォント
</summary>
private SpriteFont italicFont = null;
<summary>
カーニングOFFフォント
</summary>
private SpriteFont kerningOffFont = null;
<summary>
デフォルト文字フォント
</summary>
private SpriteFont defaultCharacterFont = null;
<summary>
GameMain コンストラクタ
</summary>
public GameMain()
{
// グラフィックデバイス管理クラスの作成
this.graphics = new GraphicsDeviceManager(this);
// ゲームコンテンツのルートディレクトリを設定
this.Content.RootDirectory = "Content";
#if WINDOWS_PHONE
// Windows Phone のデフォルトのフレームレートは 30 FPS
this.TargetElapsedTime = TimeSpan.FromTicks(333333);
// バックバッファサイズの設定
this.graphics.PreferredBackBufferWidth = 480;
this.graphics.PreferredBackBufferHeight = 800;
// フルスクリーン表示
this.graphics.IsFullScreen = true;
#endif
}
<summary>
ゲームが始まる前の初期化処理を行うメソッド
グラフィック以外のデータの読み込み、コンポーネントの初期化を行う
</summary>
protected override void Initialize()
{
// TODO: ここに初期化ロジックを書いてください
// コンポーネントの初期化などを行います
base.Initialize();
}
<summary>
ゲームが始まるときに一回だけ呼ばれ
すべてのゲームコンテンツを読み込みます
</summary>
protected override void LoadContent()
{
// テクスチャーを描画するためのスプライトバッチクラスを作成します
this.spriteBatch = new SpriteBatch(this.GraphicsDevice);
// フォントをコンテンツパイプラインから読み込む
this.defaultFont = this.Content.Load<SpriteFont>("Default");
this.fontNameFont = this.Content.Load<SpriteFont>("FontName");
this.sizeFont = this.Content.Load<SpriteFont>("Size");
this.spacingFont = this.Content.Load<SpriteFont>("Spacing");
this.boldFont = this.Content.Load<SpriteFont>("Bold");
this.italicFont = this.Content.Load<SpriteFont>("Italic");
this.kerningOffFont = this.Content.Load<SpriteFont>("KerningOff");
this.defaultCharacterFont = this.Content.Load<SpriteFont>("DefaultCharacter");
}
<summary>
ゲームが終了するときに一回だけ呼ばれ
すべてのゲームコンテンツをアンロードします
</summary>
protected override void UnloadContent()
{
// TODO: ContentManager で管理されていないコンテンツを
// ここでアンロードしてください
}
<summary>
描画以外のデータ更新等の処理を行うメソッド
主に入力処理、衝突判定などの物理計算、オーディオの再生など
</summary>
<param name="gameTime">このメソッドが呼ばれたときのゲーム時間</param>
protected override void Update(GameTime gameTime)
{
// Xbox 360 コントローラ、Windows Phone の BACK ボタンを押したときに
// ゲームを終了させます
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
{
this.Exit();
}
// TODO: ここに更新処理を記述してください
// 登録された GameComponent を更新する
base.Update(gameTime);
}
<summary>
描画処理を行うメソッド
</summary>
<param name="gameTime">このメソッドが呼ばれたときのゲーム時間</param>
protected override void Draw(GameTime gameTime)
{
// 画面を指定した色でクリアします
this.GraphicsDevice.Clear(Color.CornflowerBlue);
// スプライトの描画準備
this.spriteBatch.Begin();
// デフォルト
this.spriteBatch.DrawString(this.defaultFont, "Sample Text -Default-",
new Vector2(20.0f, 20.0f), Color.White);
// カーニング OFF
this.spriteBatch.DrawString(this.kerningOffFont, "Sample Text -Kerning OFF-",
new Vector2(20.0f, 70.0f), Color.White);
// フォント名
this.spriteBatch.DrawString(this.fontNameFont, "Sample Text -FontName-",
new Vector2(20.0f, 120.0f), Color.White);
// フォントサイズ
this.spriteBatch.DrawString(this.sizeFont, "Sample Text -Size-",
new Vector2(20.0f, 170.0f), Color.White);
// 文字間
this.spriteBatch.DrawString(this.spacingFont, "Sample Text -Spacing-",
new Vector2(20.0f, 220.0f), Color.White);
// 太字
this.spriteBatch.DrawString(this.boldFont, "Sample Text -Bold-",
new Vector2(20.0f, 270.0f), Color.White);
// イタリック
this.spriteBatch.DrawString(this.italicFont, "Sample Text -Italic-",
new Vector2(20.0f, 320.0f), Color.White);
// デフォルト文字
this.spriteBatch.DrawString(this.defaultCharacterFont, "Sample Text -デフォルト文字-",
new Vector2(20.0f, 370.0f), Color.White);
// スプライトの一括描画
this.spriteBatch.End();
// 登録された DrawableGameComponent を描画する
base.Draw(gameTime);
}
}
}