你好,我现在正在制作一个游戏
我在游戏中写了一个怪物类,并用update()来控制他们的行为
怪物类中有一个变量,叫状态,怪物在游戏中有两种状态,分别是 ‘活着’ 和 ‘死去’ , update() 中写了当怪物'活着'或者'死去'时的行为
我为怪物们创建了一个精灵组,名字是sprite_list,怪物生成时,便会被拉进这个精灵组,我用了sprite_list.update()来让怪物们行动
我在游戏中设定了武器,若武器碰到怪物,则怪物会‘死去’ ,其中‘死去’并不是直接被kill()消失掉了,而是执行‘死去’状态下的代码
现在的问题是,我用了pygame.sprite.spritecollide()来实现武器和怪物组的碰撞,可我该怎么用武器和精灵组中某个怪物碰撞这个条件,来改变被武器击打到的怪物的一个变量呢?
我尝试了一些方法,要么报错,要么就是全部怪物都‘死去’了,影响的不是个体,而是一整个组,这是我不想看见的
我该怎么办?
注:pygame.sprite.spritecollide() 精灵和精灵组之间的矩形碰撞检测,一个组内的所有精灵会逐一地对另外一个单个精灵进行碰撞检测,返回值是一个列表,包含了发生碰撞的所有精灵。
pygame.sprite.spritecollideany() 精灵和精灵组之间的矩形碰撞检测,上述函数的变体,当发生碰撞时,返回组内的一个精灵,无碰撞发生时,返回 None。
我尝试过pygame.sprite.spritecollideany(),但结果依然失败,不知道是不是我不会用