基于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)
还没有任何评论哟~
