自己发现了一本学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很多地方对于编码规范的提示,给我很大的帮助,也清楚,好的编码规范对于团队的作用.继续努力。