Xna清除平局

Xna clear the draw

我有一个代码,我的 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);
}

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

例如,您可以声明一个字段 bool needToDrawText,然后像这样在绘制方法中使用它:

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

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

GraphicsDevice.Clear(Color.CornflowerBlue); 确实会清除您的背景并用所选颜色填充它。在它被删除之前的一切。 Clear 只应在绘制方法开始时调用。如果你不这样做,

  • 您会像完成游戏时一样获得旧的单人纸牌效果。
  • 有些东西没有画出来
  • 是个没用的电话。

你应该使用布尔值:

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