c# - Sprite 批处理: "Begin cannot be called again until End has been successfully called."

标签 c# exception xna spritebatch

所以我启动了我当前的项目,我做的第一件事就是运行它,它给了我上面的异常。昨晚运行良好。这是我的 Draw 事件中的所有代码。 spriteBatch.Begin 没有出现在项目的其他任何地方。在此处删除 Begin 会导致 spriteBatch.Draw 抛出异常,在 begin 之前放置 spriteBatch.End 也会抛出异常。我不知道出了什么问题以及如何解决这个问题。

GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin();
spriteBatch.Draw(background, Vector2.Zero, Color.White);

player.Draw(spriteBatch);
level1.Draw(spriteBatch);

spriteBatch.End();

base.Draw(gameTime);

最佳答案

好吧,我需要查看您的 levek1.Draw 和 player.Draw 以获取我的信息,但这是我所期待的。在其中一种方法中,您正在调用 spriteBatch.Begin(),您必须在调用此方法之前调用 End()

所以如果你的播放器类 draw 方法看起来像这样

Draw(Spritebatch spriteBatch)
{
spriteBatch.Begin();
spriteBatch.Draw(PlayerSprite,PlayerPosition, etc);
spriteBatch.End();
}

您需要删除 BeginEnd 调用,因为它们已被父方法调用。

编辑:没看清楚,我看你相信这不是问题所在,但我们需要看看其他方法来找出问题所在。

关于c# - Sprite 批处理: "Begin cannot be called again until End has been successfully called.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13502708/

相关文章:

java - Hystrix:验证失败时出现 HystrixBadRequestException

c# - 如何关闭闪屏?

c# - 从 Xbap 打开新页面

c# - 日历日期名称或描述是否有覆盖?

exception - 从 azure blob 下载时,我得到 "Unable to read data from the transport connection: The connection was closed."

delphi - 如何只接受编辑控件中的数字?

c# - 不能从其他类调用 XNA GraphicsDevice

c# - 单个对象的 Monogame XNA 变换矩阵?

c# - "Cannot use fixed local inside lambda expression"

javascript - MVC Controller 方法不被 View 中的 jquery 触发