zoukankan      html  css  js  c++  java
  • 练手项目:利用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进行版本控制(很重要)。

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

  • 相关阅读:
    练习二(米奇老鼠)
    Photoshop笔记一
    HTML笔记1
    用IDEA写出第一个java web
    TCP协议怎么关闭?
    Sql Server2008R2与IDEA的连接
    通过HttpServer向Prometheus暴露端点
    了解Prometheus到底是什么?
    SPI扩展机制在框架中的使用
    motan系列1——与spring的集成原理
  • 原文地址:https://www.cnblogs.com/ik-heu/p/8465160.html
Copyright © 2011-2022 走看看