- 代码模块
-
主模块 通过调用其他函数运行游戏
-
三个实体类定义模块 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()
3.函数功能模块
内含多个功能函数用于游戏功能的控制,如检测并响应玩家操作、生成子弹
ÿ