首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用'update‘后出现XNA游戏堆栈溢出错误

调用'update‘后出现XNA游戏堆栈溢出错误
EN

Stack Overflow用户
提问于 2012-08-08 09:28:30
回答 1查看 174关注 0票数 0

大家好,

我一直在构建一个跨平台的框架/抽象层,目标是在适当的平台上使用Mono和XNA框架的安卓、iOS和Windows phone7。我没有使用ExEn、MonoGame或类似的框架,尽管我从研究他们的方法中学到了很多。

框架的XNA部分扩展了XNA Game类,我非常确定这就是问题所在。然而,我在寻找它时遇到了一些困难,一些对XNA Game类有更好了解的人可能会有很大帮助。我不会发布该类的整个继承继承结构的代码,因为它会占用一些空间,但我会在XNA Game类中请求有关问题的可能来源的信息,这可能会导致我找到错误。

运行测试游戏时,我收到堆栈溢出异常。完全的例外是:

代码语言:javascript
复制
An unhandled exception of type 'System.StackOverflowException' occurred in Microsoft.Xna.Framework.Game.dll

为了追查罪魁祸首,我一直在向控制台输出一些简单的调试语句。我得到的输出是:

代码语言:javascript
复制
Started init.
Started linear load.
Loading a texture...
Finished loading a texture...
Finished linear load.
Finished init.
Begin run called.
Begin run ended successfully.
Started update.
Ended update.

Process is terminated due to StackOverflowException.

正如您所看到的,它正在成功完成更新,但没有继续更新到BeginDraw或EndRun。我一直无法确定在这一点上可能正在发生什么进程,以便导致堆栈溢出异常。

如果有人可以帮助确定在这一点上可能发生的过程,这无疑将有助于找到问题的根源。如果您更愿意检查代码,我当然可以提供它,我不太愿意这样做,因为我相信我可以用更多的信息来确定问题,并且理解问题所需的代码库可能会被证明是相当大的。

感谢您的时间和帮助,如果我能提供更多有用的信息,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 09:38:09

解决方案

事实证明,重复调用OnActivated是因为我采取了相当愚蠢的步骤,将事件处理方法与事件本身捆绑在一起,从而创建了一个无限的自切换循环。

感谢

感谢Illian Pinzon的这个有用的建议,如果是显而易见的,它让我的大脑从Android开发导致的昏迷状态中解脱出来。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11856463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档