【问题标题】:XNA C# Drawstring weird boxesXNA C# 拉绳奇怪的盒子
【发布时间】:2013-01-07 16:04:05
【问题描述】:

图片:http://i.imgur.com/dJseH.png
我已经和 XNA 合作了一段时间,这是第一次发生这种情况
黑色文本应该是“兽人”,紫色是“1 / 100”,就像经验一样
然而这似乎不起作用,似乎文字和背景颜色是一样的。

这是拉绳代码:

spritebatch.DrawString(basicFont, Player.Name, new Vector2(
                camera.Pos.X - 250, camera.Pos.Y + 85), Color.Black);
spritebatch.DrawString(basicFont, Player.curEXP.ToString() +
                " / " + Player.maxEXP, new Vector2(camera.Pos.X - 185,
                   camera.Pos.Y + 220), Color.Purple);

基本字体:

<FontName>Kootenay</FontName>
<Size>12</Size>
<Spacing>0</Spacing>
<UseKerning>true</UseKerning>
<Style>Regular</Style>

我认为可能是因为HUD图像有点透明,所以我在背景上画了一些具有相同效果的字符串。
我做了一个新字体,同样的事情发生了。

【问题讨论】:

  • 系统上是否安装了 Kootenay 字体?你能试试像 Arial 这样更常见的东西吗?
  • 您是否尝试使用在线模板中的 Sprite 字体。如果这不起作用,也许您正在修改渲染中的混合功能?
  • 您在 spritebatch.begin 中设置的内容有些错误,例如 alpha 混合
  • 您的SpriteBatch.Begin() 方法是否包含一些参数?看起来这是 alpha 混合的原因,如果非默认,它在使用 Color 着色时会很奇怪。尝试使用 Color.White 进行绘图。如果您无法避免问题,您可能必须创建预着色字体。
  • 我试过 Arial 同样的问题。 @LastCoder 没有 spritebatch.Begin(SpriteBlendMode.None, SpriteSortMode.Deferred, SaveStateMode.None, camera.viewMatrix);

标签: c# fonts xna drawstring spritebatch


【解决方案1】:

成功了。 谢谢喜凯丸。

我不得不将 SpriteBlendMode 更改为 AlphaBlend。

spritebatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Deferred,
                   SaveStateMode.None, camera.viewMatrix);

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多