Python全系列 教程
3567个小节阅读:5931.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
子弹不能穿墙指子弹碰到墙壁后消失。因此,子弹类中新增方法,子弹与墙壁的碰撞,如果子弹与墙壁碰撞,修改子弹的状态。另外还需要将墙壁的生命值减少,如果墙壁的生命值小于等于零时候修改墙壁的状态。
xxxxxxxxxx
#新增子弹与墙壁的碰撞
def hit_wall(self):
'''
碰撞墙壁
'''
for wall in MainGame.wall_list:
# 判断是否碰撞
if collide_rect(self,wall):
# 修改子弹的状态
self.live = False
设置我方与敌方坦克子弹移动时,增加碰撞检测
xxxxxxxxxx
def display_enemy_bullet(self) -> None:
'''
显示敌方子弹
'''
for e_bullet in MainGame.enemy_bullet_list:
# 显示子弹
if e_bullet.live:
# 如果子弹存活,显示子弹
e_bullet.display_bullet()
e_bullet.move()
# 判断是否击中我方坦克
e_bullet.hit_my_tank()
# 判断是否击中墙壁
e_bullet.hit_wall()
else:
# 如果子弹不存活,从列表中移除
MainGame.enemy_bullet_list.remove(e_bullet)
def display_my_bullet(self) -> None:
'''
显示我方子弹
'''
for my_bullet in MainGame.my_bullet_list:
# 判断子弹是否存活
if my_bullet.live:
# 显示我方子弹
my_bullet.display_bullet()
# 移动我方子弹
my_bullet.move()
# 判断我方子弹是否击中敌方坦克
my_bullet.hit_enemy_tank()
# 判断我方子弹是否击中墙壁
my_bullet.hit_wall()
else:
# 从列表中移除
MainGame.my_bullet_list.remove(my_bullet)