Python全系列 教程
3567个小节阅读:5930.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改子弹类,创建live属性,与根据移动位置修改live状态
xxxxxxxxxx
class Bullet:
'''
子弹类
'''
def __init__(self,tank) -> None:
# 设置子弹的状态
self.live = True
def move(self) -> None:
'''
子弹的移动
'''
# 根据子弹生成的方向来的移动
if self.direction == "L":
# 判断子弹是否超出屏幕
if self.rect.left > 0:
self.rect.left -= self.speed
else:
self.live = False
elif self.direction == "R":
# 判断子弹是否超出屏幕
if self.rect.left + self.rect.width < SCREEN_WIDTH:
self.rect.left += self.speed
else:
self.live = False
elif self.direction == "U":
# 判断子弹是否超出屏幕
if self.rect.top > 0:
self.rect.top -= self.speed
else:
self.live = False
elif self.direction == "D":
# 判断子弹是否超出屏幕
if self.rect.top + self.rect.height < SCREEN_HEIGHT:
self.rect.top += self.speed
else:
self.live = False
修改MainGame类,修改显示子弹类,与事件监听
xxxxxxxxxx
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()
else:
# 从列表中移除
MainGame.my_bullet_list.remove(my_bullet)
def get_event(self) -> None:
'''
获取事件
'''
# 获取所有事件
event_list = pygame.event.get()
# 遍历事件
for event in event_list:
# 判断是什么事件,然后做出相应的处理
if event.type == pygame.QUIT:
# 点击关闭按钮
self.end_game()
if event.type == pygame.KEYDOWN:
# 按下键盘
if event.key == pygame.K_LEFT:
print('坦克向左移动')
# 修改方向
MainGame.my_tank.direction = 'L'
# 修改坦克移动的状态
MainGame.my_tank.remove = True
elif event.key == pygame.K_RIGHT:
print('坦克向右移动')
# 修改方向
MainGame.my_tank.direction = 'R'
# 修改坦克移动的状态
MainGame.my_tank.remove = True
elif event.key == pygame.K_UP:
print('坦克向上移动')
# 修改方向
MainGame.my_tank.direction = 'U'
# 修改坦克移动的状态
MainGame.my_tank.remove = True
elif event.key == pygame.K_DOWN:
# 修改方向
MainGame.my_tank.direction = 'D'
print('坦克向下移动')
# 修改坦克移动的状态
MainGame.my_tank.remove = True
elif event.key == pygame.K_SPACE:
# 判断子弹是否上限
if len(MainGame.my_bullet_list) < 5:
# 发射子弹
print('发射子弹')
# 创建子弹
m_bullet = Bullet(MainGame.my_tank)
# 将子弹添加到列表中
MainGame.my_bullet_list.append(m_bullet)
if event.type == pygame.KEYUP and event.key in (pygame.K_LEFT,pygame.K_RIGHT,pygame.K_UP,pygame.K_DOWN):
# 修改坦克移动的状态
MainGame.my_tank.remove = False