Advertisement

基于pygame的射击游戏(四)击杀外星人

阅读量:

在本篇文章中,主要学习射击子弹时外星人消失,达到击杀外星人的效果

一、编程思路

1.1击杀

为实现外星人在碰撞发生后立即消失的效果,我们需在子弹位置更新之后进行碰撞检测。为此,我们构建了一个字典结构,其中每个键代表一颗子弹,对应的键值则记录了被击中的外星人信息。通过调用sprite.groupcollide()函数,系统会将每颗子弹的rect与所有外星人的rect进行逐一比对。一旦发现子弹与外星人的rect区域出现重叠,即判定为击中事件,并由groupcollide()函数在返回的字典中新增相应的键-值组合。
game_functions.py

复制代码
    def update_bullets(aliens, bullets):
    """更新子弹的位置,并删除已消失的子弹"""
    --snip--
    # 检查是否有子弹击中了外星人
    # 如果是这样,就删除相应的子弹和外星人
    collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)
    
    
      
      
      
      
      
      
    

随后在alien_invasion.py文件中的while循

全部评论 (0)

还没有任何评论哟~