Xna清除平局

本文关键字:平局 清除 Xna | 更新日期: 2023-09-27 18:03:28

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

Xna清除平局

GraphicsDevice.Clear(Color.CornflowerBlue);确实清除了您的背景并填充了所选的颜色。所有被抹去的东西。Clear只应在draw方法开始时调用。如果你不这样做,

  • 你会得到旧的单人游戏效果,就像你完成了一个游戏。
  • 有些东西是画不出来的。
  • 为无用呼叫。

你应该使用布尔值:

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

你只需要在spriteBatch.Clear()之后停止绘制它。Draw()方法将在游戏确定绘制时间时被调用(每秒多次)。在这里阅读它的文档。

例如,您可以声明一个字段bool needToDrawText,并在您的draw方法中像这样使用它:

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

这是一个非常普遍的例子。显然,您应该相应地进行调整。