当你发现这个东西的时候,我可能有一段时间不能接触这个项目了。
所以交给你来做,我给你创建了一个新分支,new_master_branch
如果做的好,直接合并到主分支,但是显然好不好,我也要看的。
要求如下:
- 熟悉之前的所有技术,并合并出一个完整的游戏框架(抱歉,之前的都是尝试,但是现在时机成熟我又没有时间重构代码了,所以只能放心的交给你来)
- master作为临时的技术存档,不会的东西在这里都可以找到,还是不会可以问我,或者pygame.org
- 你的重构代码最终在新分支中呈现,我会严格检查
技术细节:
- 要求实现功能,实现一个初始化函数,可以使用模块封装。
- 函数initGame要求:
- 实现初始化地图
- 并加载一个或几个精灵对象
- 具体游戏内的菜单栏可做可不做
- 函数initMainPage:(用于加载游戏的第一页,开始游戏)
可以咕- 设计几大选项卡的布局,以及背景布局
咕 - 背景音乐
别说了,咕就对了
- 这些初始化功能可以用class来封装,也可以丢到一个模块里
- 函数initGame要求:
- 精灵类的完善:
- 梳理几大精灵的关系
- 主角 继承 NPC 继承 sprite
- 对话框(人物居左)和对话框(人物居右) 继承 对话框和文字流 继承 sprite,文字流可以咕,或者我来
- 精灵的更新函数与精灵组之间的关系好像我并没有完善好(用法在源码内,但是为什么这样做以及格式,没有一个好的规范,这个规范交给你来做)
- 精灵的安放和移动距离(移动一格还是自由的移动模式,由你决定吧)
- 新的精灵我希望它是用新的模块来保存的
- 梳理几大精灵的关系
- 游戏线路的实现:
- 显然这个我也没有做(但其实很简单,比如开始游戏后,调用开始游戏的模块里的main函数就可以开始游戏了)
- 但是我没有做游戏中存档和退出(也简单的,交给你了)
- 整个线路的控制放在一个新的全局变量内,名字自定义
- 游戏框架搭建:
- 大概是最简单也是最难的,因为有太多要注意的地方需要你注意,除非你对之前的技术的实现都很熟悉(有些函数一定要放在特定的位置,不然会扯皮,这是经过多次修改后的结果,但是显然我也没有告诉你为什么要这样做,所以你可以多尝试一下)
- 我给你大概的梳理一下涉及的东西:
- main里面先初始化init
- 然后设置刷新率和键盘输入信号的频率(复制粘贴?)
- 进入while后,处理事件参照事件处理的模块最近写的精灵移动事件,其实这个已经是一个比较好的框架了,再把多余复杂的东西的打包一下,框架就有了
- 基本上遵循一个原则,去除多余单一的语句,一切转化为函数式的面向对象编程。