初始化C#的开关函数中的DrawString()
本文关键字:DrawString 函数 开关 初始化 | 更新日期: 2023-09-27 18:27:06
我使用的是XNA和C#,我使用的切换函数如下:
switch (state)
{
case GameState.MainMenu:
Score = 1;
equation.Draw(spriteBatch);//for the equation
break;
case GameState.TutorialSelect:
Score2 = 1;
equation.Draw(spriteBatch);//for the equation
break;
}
在我的方程函数中,我有:
public void Draw(SpriteBatch spriteBatch)
{
if (Score == 1)
{
spriteBatch.DrawString(
Font,
"AAAAAAAAA",
scorePos,
Color.White);
}
if (Score2 == 1)
{
spriteBatch.DrawString(
Font,
"BBBBBBBBBBBBB",
scorePos3,
Color.White);
}
}
在我的情况下,当我从"GameState.MainMenu"answers"GameState.TutorialSelect"切换时,我想清除DrawString(),请如何解决问题?谢谢
这应该不是问题,因为绘制时总是清除曲面。否则,当任何更改(由于动画等)时,都会留下瑕疵。
你的绘图功能应该是这样的:
public void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
//All your code
}
如果您同时引用和绘图,那是因为您没有在开关上取消设置"分数"变量。你需要做:
switch (state)
{
case GameState.MainMenu:
Score = 1;
Score2 = 0;
equation.Draw(spriteBatch);//for the equation
break;
case GameState.TutorialSelect:
Score2 = 1;
Score = 0;
equation.Draw(spriteBatch);//for the equation
break;
}
无论如何,这种逻辑真的很混乱;我会再次打开state
;但那只是我。