【发布时间】:2012-12-05 22:40:32
【问题描述】:
当游戏重置但 spritebatch 未绘制时,我正在尝试在屏幕上绘制一个快速加载精灵。我在 game.spritebatch.begin(); 上放了一个断点,当我逐步完成时,什么也没有画出来。有什么想法吗?
这是我的重置功能
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()开始调用时,你的加载纹理只会显示在一帧中? -
Niko 是对的 - 您的加载时间是否足够长,以至于您的加载屏幕会显示足够长的时间让您真正看到它?在它被游戏循环中的绘图所取代之前?如果您在
Update方法中调用SupressDraw,您可以防止游戏循环自己绘制任何东西 - 这将允许您诊断是否发生这种情况。 -
添加 game.GraphicsDevice.Present() 后,它会绘制一个紫色屏幕,并且持续时间足以显示屏幕一秒钟。此外,如果我在添加 present 之前在 spritebatch.End() 之后放置了一个断点,它不会显示任何内容(意味着它没有绘制)。现在它显示为紫色。
标签: xna spritebatch