python大牛学习之路(每天10分钟python进阶14)
首先明确学习目标,今天的目标是继续python中实例开发项目--飞机大战,接下来我们就来聊聊关于python大牛学习之路?以下内容大家不妨参考一二希望能帮到您!
python大牛学习之路
首先明确学习目标,今天的目标是继续python中实例开发项目--飞机大战
今天任务进行面向对象版的飞机大战开发--代码优化(创建精灵组)
目标:优化战斗机代码
1,优化init方法
def __init__(self, screen):
# 这个精灵的初始化方法 必须调用
pygame.sprite.Sprite.__init__(self)
# 4.创建敌机图片,当做真正的飞机
self.image = pygame.image.load("/home/yeren/桌面/项目开发/images/enemy-2.gif")
# 根据图片image获取矩形对象
self.rect = self.image.get_rect() # rect:矩形
self.rect.topleft = [0, 0]
# 飞机速度
self.speed = 10
# 记录当前的窗口对象
self.screen = screen
# 装子弹的列表
self.bullets = pygame.sprite.Group()
# 敌机移动方向
self.direction = 'right'
2,优化display方法
def display(self):
# 5将飞机图片贴到窗口中
self.screen.blit(self.image, self.rect)
# 更新子弹坐标
self.bullets.update()
# 把所有子弹全部添加到屏幕
self.bullets.draw(self.screen)
3,优化auto_move方法
def auto_move(self):
if self.direction == 'right':
self.rect.right = self.speed
elif self.direction == 'left':
self.rect.right -= self.speed
if self.rect.right > 480 - 51:
self.direction = 'left'
elif self.rect.right < 0:
self.direction = 'right'
4,优化auto_fire方法
def auto_fire(self):
"""自动开火 创建子弹对象 添加进列表"""
"""自动开火 创建子弹对象 添加进列表"""
random_num = random.randint(1, 10)
if random_num == 8:
bullet = EnemyBullet(self.screen, self.rect.left, self.rect.top)
self.bullets.add(bullet)
5,添加update方法
def update(self):
self.auto_move()
self.auto_fire()
self.display()
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com