小游戏^_^

来源:互联网 发布:高中毕业 程序员 编辑:程序博客网 时间:2024/05/16 12:59

    自己发现了一本学python十分好的书,python编程: 从入门到实践,这本书前边介绍python基本知识, 后面有三个项目,一步一步的深入。我把这本书的资源上传了地址,这个好像要登录我的账号,这里是百度云的链接

   链接: https://pan.baidu.com/s/1eR8yhXo 密码: 7wxq

   这篇文章就是记录自己完成的第一个项目,那款小游戏。

    首先对整个项目的大致框架有一个了解:

    1、Ship类,这个’王尼玛‘就是被你操作的,通过blitme函数将’王尼玛‘刻画在屏幕,update函数就是更改‘王尼玛’位置,左右移动,center_ship函数 是在你还剩下若干条生命的时候死掉,要把‘王尼玛‘重新定位在屏幕中央。

    2、settings类,包含了整个游戏的属性设置,类似’王尼玛‘的速度,提速....

    3、game_stats类  用来记录分数,包含最高分,射杀外星人记录得分, 还有当前游戏玩家的游戏的等级

    4、scoreboard类  这个类,是把 记录的分数显示到屏幕,通过prep_...函数来确定分数的位置,比如当前玩家的分数记录在右上角, 最高的记录在中央,游戏等级记录在当前分数的下面,下面的图就显示了.

     5、button类,是用来做那个start按钮的,在那个game_function文件做主要的处理。

     6、bullet子弹类  用draw_bullet来画子弹(子弹是用像素做的,不是导入的 图片,。如果是导入的图片,就用screen.blit来做.)  update函数来更新子弹的位置.

     7、game_function是主要的函数集合,包含按键处理,外星人下降的时候对边界的检查, 时刻更新屏幕.....

     举一个例子

      

def update_aliens(alien_settings, stats, screen, sb, ship, aliens, bullets):    check_fleet_edges(alien_settings, aliens)    aliens.update()    if pygame.sprite.spritecollideany(ship, aliens):        ship_hit(alien_settings, stats, screen, sb, ship, aliens, bullets)    check_alien_bottom(alien_settings, stats, screen, sb, ship, aliens, bullets)
   这个函数是首先对一群的alien进行边界检查,如果到了边界,则转换方向 ,同时向下移动,因为乡下移动如果碰到’王尼玛‘则游戏结束, 所以做了if的检查,如果与’王尼玛’碰撞, 就做ship_hit,把一切信息初始化,check_aliens_bottom当飞船到达屏幕底部,则一切初始化。

      在做最高分的时候,为了避免每次重新启动游戏最后分都是0,把最高分写入文件,每次启动,在文件读取。

      完整代码在github,

       在做的过程,pycharm很多地方对于编码规范的提示,给我很大的帮助,也清楚,好的编码规范对于团队的作用.继续努力。