接下來(lái)我們編寫一個(gè)在在屏幕中心顯示一些問(wèn)候的XNA程序。而文本往往在Silverlight應(yīng)用非常普遍,通常作為文字描或如何游戲或展示分?jǐn)?shù)。這是一個(gè)“Hello,world”不能作為完整的XNA程序的研究或范例。
事實(shí)上,XNA沒(méi)有任何內(nèi)置的字體。你可能會(huì)認(rèn)為一個(gè)XNA的手機(jī)程序可以使用和Silverlight相同的本地字體,但事實(shí)并非如此。 Silverlight使用基于矢量的TrueType字體,但XNA不知道有這些外來(lái)的概念東西。在XNA,一切都是一個(gè)位圖,包括字體。
如果你要將你的特定字體包含在你的XNA項(xiàng)目中,則該字體必須作為包含每個(gè)字符位圖的集合嵌入到可執(zhí)行文件中。XNA Game Studio (集成 Visual Studio) 可以常容易的嵌入的字體,但它會(huì)引發(fā)一些棘手的法律問(wèn)題。除非法律允許可以分發(fā)嵌入的字體,大部分字體與 Windows 本身或 Windows 應(yīng)用程序一起分發(fā)的,但這并不是商業(yè)上的。
為了幫助你解決這一法律困惑,微軟授權(quán)使用的某些字體公司專為讓您嵌入在您XNA方案中。在這里,他們是:
請(qǐng)注意,Pericles字體授權(quán)使用小寫字母,所以它可能只適合作標(biāo)題。
從Visual Studio文件菜單選擇New 和Project。在對(duì)話框的左側(cè),選擇Visual C#和XNA Game Studio 4.0。在中間,選擇Windows Phone Game(4.0),選擇位置,并輸入項(xiàng)目名稱XnaHelloPhone。
Visual Studio創(chuàng)建兩個(gè)項(xiàng)目,一個(gè)是程序和程序的其他內(nèi)容。XNA程序通常包含的內(nèi)容很多,主要是位圖和三維模型,但也適合字體。要添加字體到此程序,請(qǐng)右鍵單擊該項(xiàng)目項(xiàng)目?jī)?nèi)容(標(biāo)有“XnaHelloPhoneContent(cintent)”,并從彈出式菜單中選擇Add 和 New Item。選擇Sprite Font,完成文件名作為SpriteFont1.spritefont,然后點(diǎn)擊Add。
單詞“sprite”是在游戲編程中的常見(jiàn),通常是指一個(gè)小位圖,可以移動(dòng)很快,像魔法森林中可能遇到的精靈。在XNA,甚至字體也是sprite。
你會(huì)看到SpriteFont1.spritefont顯示在內(nèi)容目錄的文件列表了,你可以編輯XML文件的被描述的字體。
XNA Project: XnaHelloPhone File: SpriteFont1.spritefont (complete w/o comments)
<xnacontent xmlns:graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics"></xnacontent>
<asset type="Graphics:FontDescription"></asset>
<fontname>Segoe UI Mono</fontname>
<size>14</size>
<spacing>0</spacing>
<usekerning>true</usekerning>
<style>Regular</style>
<characterregions></characterregions>
<characterregion></characterregion>
<start></start>
<end>~</end>
標(biāo)簽的字體名內(nèi)你會(huì)看到Segoe UI Mono,但是你可以更改為其他字體是我前面列出。如果你想Pericles Light,放的全名在那里,但如果你想 Miramonte粗體或Pescadero粗體或Segoe UI Mono 粗體,只使用Miramonte或Pescadero或Segoe UI Mono,并輸入標(biāo)簽之間的Bold樣式。您可以使用其他字體為粗體,但對(duì)其他字體,粗體將被合成,而Miramonte或Pescadero或Segoe UI Mono,你會(huì)得到真正的設(shè)計(jì)的字體。
Size標(biāo)簽的指示字體的point大小。XNA在Silverlight中,你幾乎可以完全處理像素坐標(biāo)和尺寸,但point與point之間,在XNA像素間的轉(zhuǎn)換是以96 DPI的顯示器為基礎(chǔ)。 14點(diǎn)的大小成為了在您XNA程序中18-2/3像素大小。這是非常接近Silverlight WindowsPhone中 15point20px的“標(biāo)準(zhǔn)”字號(hào)。
該文件的CharacterRegions部分表示你需要的Unicode字符的十六進(jìn)制編碼范圍。默認(rèn)設(shè)置從0x32到0x126包括所有的ASCII字符集的非控制字符。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
