You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python位运算符&检测Pygame Surface标志未得到预期结果的问题求助

Python位运算符&检测Pygame Surface标志未得到预期结果的问题求助

我在用Pygame写游戏时,尝试用异或(^)位运算符来切换传入函数的标志,但总是遇到溢出错误(还有Warning: re-creating window in toggle_fullscreen action()错误)。

为了调试,我尝试用&运算符检查标志是否被正确检测,并和Pygame提供的常量值对比:

print(pygame.display.get_surface().get_flags() & exampleflag, exampleflag)

测试pygame.NOFRAME时是正常的:非无边框模式下输出0 32,无边框模式下输出32 32。

但检测始终启用的pygame.SCALED时,却总是输出0 512——明明这个标志是生效的,我预期应该是512 512。

另外检测pygame.FULLSCREEN时(我用pygame.display.toggle_fullscreen()来切换全屏,不知道这点有没有帮助),结果是0 -2147483648——当时窗口并未全屏,我预期应该是0 0,这显然不对,可能也是导致溢出错误的原因。

我对Pygame标志的工作原理理解不深,只知道基本位运算符的作用,而且这部分文档也不够详细(甚至用&检测标志还是我在其他问题里发现的)。有没有人能解释下为什么会出现这种情况?

备注:内容来源于stack exchange,提问作者r5ne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:53:11