我目前正在制作一款涉及激光步枪的射击游戏,激光步枪背后的想法是它射穿了多个怪物。这就是为什么我不能将它从列表中删除但我希望能够标记一个被击中的怪物,这样就不会出现这样的问题,即单击是通过怪物精灵它不会多次击中
到目前为止我要做的是区分它何时击中一个怪物而不是根据该伤害或不受到伤害但是我有一个问题因为怪物正在移动它的行为就好像它们正在触摸 - 不接触和再次触摸造成伤害重演。
这就是我的代码:
for bullet in bullet_list:
monster_hit_list = pygame.sprite.spritecollide(bullet,monster_list,False)
if len(monster_hit_list) == 0:
being_hit = False
else:
for monster in monster_hit_list:
if flag == False:
flag = True
if bullet.rel_path != "Sprite Images/Beam.png": # If not lazer
animation_bullet.add(bullet)
if being_hit == False:
monster.current_hp -= My_Man.current_weapon.damage
print monster.current_hp
being_hit = True
if monster.current_hp <= 0:
monster_list.remove(monster)
character_list.remove(monster)
if bullet.rel_path != "Sprite Images/Beam.png": #If not lazer
bullet_list.remove(bullet)
flag = False