Pygame调用blit绘制表面时BLEND_RGB_ADD报未定义错误如何解决
问题原因
BLEND_RGB_ADD是Pygame库内置的常量,归属于pygame模块的命名空间,你代码里直接写BLEND_RGB_ADD没有指定所属模块,Python无法识别到这个常量,因此抛出未定义的NameError。
解决方案
有两种可行的修改方式:
方案1:直接使用全限定名调用常量
把代码中blit行的BLEND_RGB_ADD替换为pygame.BLEND_RGB_ADD即可,修改后的对应代码片段如下:
else: surf.blit(new_surf, (center[0]-radius, center[1]-radius), special_flags=pygame.BLEND_RGB_ADD)
如果你导入pygame时设置了别名(比如import pygame as pg),对应把前缀换成你设置的别名即可。
方案2:提前导入对应常量
如果不想每次都写模块前缀,可以在代码文件的开头导入该常量:
from pygame import BLEND_RGB_ADD
导入后原有代码不需要修改,直接使用BLEND_RGB_ADD即可正常识别。
修改完成后重新运行代码,加法混合效果就会正常生效,不会再抛出未定义错误。
内容的提问来源于stack exchange,提问作者Miroslav Holeček
相关产品推荐
相关产品推荐

