Xna清除了平局

时间:2015-07-19 05:40:12

标签: c# xna

我有一个代码,我的spriteBatch正在绘制文本,我的问题是如何删除文本。 GraphicsDevice.Clear()只需更改背景颜色即可。 我的代码是:

protected override void Draw(GameTime gameTime)
{
      GraphicsDevice.Clear(Color.Black);

      spriteBatch.Begin();

      Spiel.LoadGame();

      GraphicsDevice.Clear(Color.Black); 

      Spiel.Intro();

      spriteBatch.End();

      base.Draw(gameTime);
}

2 个答案:

答案 0 :(得分:0)

GraphicsDevice.Clear(Color.CornflowerBlue);确实会清除您的背景并使用所选颜色填充它。它的每一个都被抹去了。 Clear只应在draw方法的初始化时调用。如果你不这样做,

  • 你获得了旧的solitair效果,就像你完成游戏一样。
  • 有些东西不是画画。
  • 是一个无用的电话。

你应该使用布尔值:

if (needToDrawText)
{
    spriteBatch.DrawString(font, "Txt", new Vector2(100,100), Color.Black);
}

答案 1 :(得分:-1)

您只需要在spriteBatch.Clear()之后停止绘制它。只要游戏确定绘制时间(每秒多次),就会调用Draw()方法。阅读其文档here

例如,你可以声明一个字段bool needToDrawText,并在你的draw方法中使用它,如下所示:

if (needToDrawText)
{
     spriteBatch.DrawString(font, "This is a string", location, Color.Black);
}

这是一个非常普遍的例子。显然你应该相应地调整它。