在开发我的游戏使用Monogame,我想把暂停游戏与一个按钮在屏幕的右上角…但是,当其他元素只绘制时,pauseImage不会显示。我把Draw()函数的代码放在这里:
SBatch.Begin();
SBatch.Draw(PauseImage,new Vector2(1024,50), Color.White);
if (_isPaused)
{
SBatch.Draw(ResumeImage, new Vector2(500, 300), Color.White);
SBatch.Draw(QuitImage,new Vector2(600,300),Color.White);
}
SBatch.Draw(_castel.Image, _castel.PosCastle, Color.White);
SBatch.DrawString(LineFont, _life + "/1000", _castel.PosLife, Color.Black);
SBatch.DrawString(LineFont, "Score:" + _score, new Vector2(_castel.PosLife.X,_castel.PosLife.Y+50), Color.Black);
SBatch.End();
foreach (EnemyUnit t in _enemyUnits)
{
t.AnimatedSprite.Draw(SBatch, t.Pos);
if (_mouseState.LeftButton == ButtonState.Pressed && t.Area.Limit(_mouseState))
{
float temp;
temp = t.Pos.Y;
t.Pos.Y -= 470;
MouseAttack.Draw(SBatch, t.Pos);
t.Pos.Y = temp;
}
}
SBatch.End();
}
base.Draw(gameTime);该图像是Texture2D对象中的普通png加载。
发布于 2013-06-14 02:36:43
将绘制pauseImage的部分移动到代码的末尾,这样它就会在最后绘制,并且位于其他所有内容之上。然后从代码中删除第一个SBatch.End()。
foreach (EnemyUnit t in _enemyUnits)
{
t.AnimatedSprite.Draw(SBatch, t.Pos);
if (_mouseState.LeftButton == ButtonState.Pressed && t.Area.Limit(_mouseState))
{
float temp;
temp = t.Pos.Y;
t.Pos.Y -= 470;
MouseAttack.Draw(SBatch, t.Pos);
t.Pos.Y = temp;
}
}
if (_isPaused)
{
SBatch.Draw(ResumeImage, new Vector2(500, 300), Color.White);
SBatch.Draw(QuitImage,new Vector2(600,300),Color.White);
}
SBatch.End();https://stackoverflow.com/questions/17086545
复制相似问题