簡體   English   中英

SharpDX工具包:繪制文本

[英]SharpDX Toolkit: Draw Text

我想使用以下代碼在我的工具包游戲中繪制一些文本:

SpriteFont spriteFont;
Vector2 pointStringPosition = new Vector2(5, 5);
int intPoints = 0;
//...
Content.RootDirectory = "Content";
//...
spriteFont = Content.Load<SpriteFont>("Schrift.xml");
//...
spriteBatch.DrawString(spriteFont, intPoints.ToString(), pointStringPosition, Color.DarkOrange);

Schrift.xml在Content文件夾中,它構成以下內容:

<?xml version="1.0" encoding="utf-8" ?>
<TkFont>
  <FontName>Arial</FontName>
  <Size>13</Size>
  <Spacing>0</Spacing>
  <LineSpacing>0</LineSpacing>
  <UseKerning>false</UseKerning>
  <Format>Auto</Format>
  <CharacterRegions>
    <CharacterRegion>
      <Start>32</Start>
      <End>127</End>
    </CharacterRegion>
  </CharacterRegions>
  <DefaultCharacter>32</DefaultCharacter>
  <Style>Regular</Style>
  <NoPremultiply>false</NoPremultiply>
</TkFont>

如果.csproj構成以下內容:

<ToolkitFont Include="Content\Schrift.xml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</ToolkitFont>

它拋出AssetNotFoundException。

如果.csproj構成以下內容:

<Content Include="Content\Schrift.xml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

它說:

類型為[SharpDX.Toolkit.Graphics.SpriteFontContentReader]的已注冊ContentReader無法從文件[Schrift.xml]中加載類型為[SharpDX.Toolkit.Graphics.SpriteFont]的內容。

如果.csproj構成以下內容:

<ToolkitFont Include="Content\Schrift.xml">
      <Link>Content\Schrift.xml</Link>
</ToolkitFont>

我收到一個錯誤,因為Link元素不起作用。

怎么了? 還是有更好/更容易的機會使用SharpDX繪制文本?

SharpDX Toolkit不使用XNA文件格式,而是使用自定義的YAML格式 檢查樣本 ,特別是SpriteFontApp

我遇到了同樣的問題,但這是由於我沒有將“構建操作”放到“ TookitFont”上

所以在沒有.xml擴展名的代碼中

並在文件屬性中:

  • 生成動作:ToolkitFont
  • 復制到輸出目錄:如果較新則復制

或在.csproj文件中:

<ToolkitFont Include="Content\Arial16.xml">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</ToolkitFont>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM