我有一个代码,我的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);
}
答案 0 :(得分:0)
GraphicsDevice.Clear(Color.CornflowerBlue);
确实会清除您的背景并使用所选颜色填充它。它的每一个都被抹去了。 Clear
只应在draw方法的初始化时调用。如果你不这样做,
你应该使用布尔值:
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);
}
这是一个非常普遍的例子。显然你应该相应地调整它。