• 练手项目:利用pygame库编写射击游戏


    本项目使用pygame模块编写了射击游戏,目的在于训练自己的Python基本功、了解中小型程序框架以及学习代码重构等。游戏具有一定的可玩性,感兴趣的可以试一下。

    项目说明:出自《Python编程 从入门到实践》中12-14章节的例子。

    • 游戏包含飞船、外星人两个角色。
    • 外星人编队向左右和下方移动,直至接触到屏幕底端或碰撞到外星人;飞船顶端可发射子弹击落外星人。
    • 随着游戏的进行,子弹速度、飞船移动速度、外星人移动速度以可设置的速度提升,增加游戏难度和可玩性。
    • 游戏界面显示剩余飞船数目(左上角)、最高分(中上)、当前分和游戏等级(右上角)等信息。

    github地址:https://github.com/ikheu/alien_invasion

    效果图如下:

    程序框架:

    alien_invasion.py 包含运行游戏的run_game函数
    alien.py 外星人类
    bullet.py 子弹类
    button.py 按钮类
    game_functions.py 包含实现游戏功能的函数
    game_stats.py 跟踪游戏信息的类
    scoreboard.py 显示得分的类
    settings.py 存储设置的类
    ship.py 飞船类

    项目心得:

    • 项目中使用pygame模块中的功能比较少,主要包括两部分:和图形相关的reac对象,以及判断对象间的碰撞的函数。而且这两部分很容易理解,因此项目封闭性不强,很适合作为锻炼python基本功的练手项目。
    • 代码重构方面:程序的各部分应功能相对独立,层次清晰明了。如在setting.py中设置游戏参数,而避免直接把具体参数写到功能相关的程序里,导致后续修改的困难。同时还要避免把函数写得太长,如最复杂的game_function文件里包含许多个功能单一的函数。在添加新功能前,要审核现有代码,对混乱、低效的代码进行清理。有句话叫动态类型一时爽,代码重构火葬场,可能是程序结构还比较简单吧,这个还没能深刻体会到。
    • 在写代码时,要尽量保持好的风格。可以参考Effective Python一书。
    • 熟练使用git、github进行版本控制(很重要)。

    另外写的博客貌似也没人看啊,有点沮丧。不过还是要沉住气,就权当自己的私人技术笔记了,傻笑:)

  • 相关阅读:
    Spring的IOC容器学习笔记
    全球疫情可视化展示
    GitHub-暂存区与版本回退
    GitHub-创建仓库与本地同步
    Shell脚本常用模板
    Shell按行读取文件的3种方法
    shell脚本:通过域名获取证书的过期时间
    如何禁止chrome浏览器http自动转成https 【转】
    kafka_2.11-2.0.0_常用操作
    kafka_2.11-2.0.0_安装部署
  • 原文地址:https://www.cnblogs.com/ik-heu/p/8465160.html
Copyright © 2020-2023  润新知