【问题标题】:Draw String and Texture in XNA 4.0 3D?在 XNA 4.0 3D 中绘制字符串和纹理?
【发布时间】:2012-09-23 04:03:29
【问题描述】:

我在 XNA 4.0 3D 中绘制字符串时遇到问题。我知道问题是 spriteBatch.Begin()。但是不知道怎么解决。

protected override void Draw(GameTime gameTime)
{
  GraphicsDevice.Clear(Color.DeepSkyBlue);
  //Draw string 
  spriteBatch.Begin();
  spriteBatch.DrawString(fontArial, "Demotesting", new Vector2(100, 100), Color.Red);
  spriteBatch.End();
  //Draw Models Ship
  ship.Draw();

  base.Draw(gameTime);
}

在绘制字符串之前: http://nq1.upanh.com/b4.s32.d1/6c6ce19bded8d054341ce45e17426c51_49358001.before.png

绘制字符串后: http://nq2.upanh.com/b6.s30.d2/9ff7c3c009215348b06a53c5a067d282_49358002.after.png

【问题讨论】:

    标签: c# 3d xna


    【解决方案1】:

    把这个放在你绘制方法的顶部:

    GraphicsDevice.BlendState = BlendState.AlphaBlend;
    GraphicsDevice.DepthStencilState = DepthStencilState.Default;
    

    这应该可以解决它。

    【讨论】:

    • 谢谢你的回答,我成功了在 3D 中绘制 2D 文本
    • @user1690759 习惯上接受解决问题的答案。这就是stackoverflow的工作原理!
    【解决方案2】:

    sprite 批处理带有一些渲染设置,您需要四处搜索以找出要设置的内容,我会从启用深度缓冲区开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多