python飞机大战笔记

  1. 代码模块
  •  主模块 通过调用其他函数运行游戏

  • 三个实体类定义模块 ship alien bullet

  • 函数功能模块 

  • 控制游戏运行和暂停模块

  • 游戏参数模块

 

2.ship alien bullet模块

(1)实体类模块定义了实体的属性初始化和行为, 都含有init()初始化函数和update()位置更新函数,其中pygame含image和screen的对象通过get_rect()可获得相关的rect对象进而获取图像和屏幕的center、centerx、centery、bottom、top、right、left的值例如

self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()

self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom

(2)alien 和ship 中含有blitme函数可将图片绘制在屏幕上

    def blitme(self):
        self.screen.blit(self.image,self.rect)

bullet中则含有

    def draw_bullet(self):
        pygame.draw.rect(self.screen,self.color,self.rect)

可将子弹生成于屏幕中,两者的不同在于外星人和飞船是使用现有的图片,子弹则是自动生成的矩形,所以绘制方法有差别

(3)alien和bullet类继承Sprite(精灵),通过使用精灵可在游戏中对相关的元素编组并可以同时进行操作所有相关元素,子弹和外星人有多个,所以需要使用精灵统一管理,元素编组如下:

 bullets = Group()
 aliens = Group()

知识点补充:

精灵组

当程序中有大量的实体的时候,操作这些实体将会是一件相当麻烦的事,那么有没有什么容器可以将这些精灵放在一起统一管理呢?答案就是精灵组。

pygame使用精灵组来管理精灵的绘制和更新,精灵组是一个简单的容器。

使用pygame.sprite.Group()函数可以创建一个精灵组:

group = pygame.sprite.Group()
group.add(sprite_one)

精灵组也有update和draw函数:

group.update()
group.draw()

转载于https://www.cnblogs.com/msxh/p/5013555.html

 

3.函数功能模块

内含多个功能函数用于游戏功能的控制,如检测并响应玩家操作、生成子弹

ÿ

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值