我想绘制一个快速加载精灵到游戏重置但spritebatch没有绘制时的屏幕。我在上放了一个断点game.spritebatch.begin();当我一步一步通过任何绘制。有任何想法吗?SpriteBatch没有绘制到屏幕
这里是我的复位功能
public void Reset()
{
loadingScreen = game.Content.Load<Texture2D>("Textures\\loadingScreen");
game.spriteBatch.Begin();
game.spriteBatch.Draw(loadingScreen, Vector2.Zero, null, Color.Black, 0.0f, Vector2.Zero, 0.5f, SpriteEffects.None, 0f);
game.spriteBatch.End();
cameraPosition = original_cameraPosition;
players.Clear();
furthest = 0;
enemies.Clear();
LoadEnemies();
ActivatePlayers();
}
你有没有注意到你的加载纹理只会在Reset()调用时显示在一帧中? – neeKo
Niko是正确的 - 您的加载时间足够长,您的加载屏幕将保持足够长的时间显示,以便您真正看到它?在通过从游戏循环中绘制替换之前?如果您在'Update'方法中调用'SupressDraw',则可以防止游戏循环自己绘制任何东西 - 这将允许您诊断这是否发生。 –
添加game.GraphicsDevice.Present()后,它会绘制一个紫色屏幕,并持续足够长的时间以显示屏幕一秒钟。另外,如果我在添加之前在spritebatch.End()之后放置了一个断点,它不会显示任何内容(表示它不是绘图)。现在它显示紫色。 – jmack20093