首页 > 解决方案 > 在 Pygame 中运行 mainloop 时未分配被释放的 Python 3.6 指针

问题描述

我已经在 pygame 项目上工作了一段时间,并开始制作介绍屏幕。

运行游戏并通过介绍屏幕工作正常,但是当我到达 main_loop() 时,游戏开始但很快就崩溃了。

在此之前我对 main_loop() 没有任何问题,并且当时我可以从 intro_loop() 转到 main_loop() 并且它起作用了,在我添加 story_screen_1() 之后,现在 main_loop() 因此错误而崩溃:

错误信息

/usr/local/bin/python3 "/Users/brucepouncey/Game_0/venv/Game_0_MASTERcopy.py"
Python(1323,0x101931380) malloc: *** error for object 0x1040b64f0:pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

所以我回溯并删除了我已经实施的所有内容,回到它正在工作的地方。

但是发生了同样的错误,现在我的 main_loop() 即使单独运行也没有运行,我得到了同样的错误。

我已经多次检查我的代码,删除和移动东西,但仍然没有运气。

我通常可以通过它的消息查明错误,但这是第一个。如果我能知道这个错误消息的含义,我希望能够找到错误的来源。

iv 搜索的很多答案都与 C 语言有关,我不熟悉它们。

标签: pythonpygame

解决方案


我按照你说的做了,隔离了问题的位置。我为类重建了程序类,为方法重建了方法,为导入而导入,直到出现错误。在我的精灵游戏中,我认为是一个音乐文件,位于 game_main_loop() 中。我删除了它们并创建了一个新的 game_over_loop() 并将它们放入其中,现在似乎一切正常。


推荐阅读