python,外星人入侵游戏,Pycharm,pygame,写完了,但是有bug,希望帮我找一下原因

具体错误是:运行之后,正常,但是一点击 Play按钮就会崩溃,文件内容键截图,错误提示 : screen_rect = screen.get_rect()AttributeError: 'GameStats' object has no attribute 'get_rect'

只能说明你复制粘贴的能力还欠缺

追问

我按照书本上面打的,但是不知道为什么会有这个问题,
再计分的最高分的时候还是正常的,提示错误的地方也没有问题,但是不知道为什么全部写完的时候就出错误了,你的代码这个是对的,但是能请教一下,我这里到底是什么原因导致的错误

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-29

跟下面热心网友回答的一样 ,出现这种错误的原因是参数的顺序出现了不一致,screen与stats两个参数传递时颠倒了,也即出现stats.get_rect(),故报错函数无该属性。

第2个回答  2023-04-02
根据错误提示,问题出现在GameStats对象上,它没有get_rect()属性,但是您在GameStats对象上调用了该方法。可能的原因是,您在代码中意外地将GameStats对象传递给了screen变量。
请检查您的代码,特别是涉及GameStats对象和screen变量的部分,并确保它们没有被错误地混淆。如果需要,可以在代码中添加一些调试语句,以帮助您跟踪问题的来源。
此外,您还可以尝试在程序崩溃时打印GameStats对象的属性和方法,以进一步了解该对象的状态和结构。例如,您可以在程序中添加以下代码:
scssCopy codegame_stats = GameStats()print(dir(game_stats))

这将打印出game_stats对象的属性和方法列表,以帮助您更好地了解它的结构和特征。
第3个回答  2018-01-10
game_functions.py中的函数update_aliens()的参数顺序前后出现不一致导致。
具体来说,就是在主程序中引用该函数时和该函数在定义时的参数顺序不一致。
AttributeError:'GameStats' object has no attribute 'get_rect",说明是参数
stats与screen顺序被无意中交换过了
第4个回答  2017-09-08
注意主调函数和子函数 实参与形参一一对应