Pygame报错:'Group'对象无'rect'属性,请求通俗化调试指导
报错大白话解析(给3岁娃版)
你犯的小错
你用pygame里的碰撞检查工具时拿错东西啦!
- 这个叫
spritecollideany的工具,本来要的是单个小角色(比如一颗子弹)和一堆目标(比如敌人) - 你却把一整堆子弹塞给它,它找不到单个子弹的"身体框框"(就是报错里的
rect),直接懵圈报错了
怎么改好
把代码第163行的内容:
if pygame.sprite.spritecollideany(self.bullets, self.sideways_target):
改成挨个检查每一颗子弹:
for bullet in self.bullets: if pygame.sprite.spritecollideany(bullet, self.sideways_target): # 这里写碰撞后要做的事,比如让子弹消失、目标消失
为啥会这样?
就像你要查一颗糖和积木堆碰没碰到,得拿一颗糖去挨个碰积木,不能把一整罐糖倒过去问"碰没碰"——工具傻了,不知道该看哪颗糖呀!
内容的提问来源于stack exchange,提问作者KiddoPL
相关产品推荐
相关产品推荐

