| 任务 | 占比 | 完成人员 | 时间 |
|---|---|---|---|
| 本文档的编写 | 1% | 邱晓裕 | |
| 建立整个项目基本的类文件和框架 | 16% | 邱晓裕 | 6/16-6/18 |
| 第一个精灵 | 14% | 邵梓硕 | 6/19-6/23 |
| 美化界面 + 音乐 | 16% | 邱奕浩 | 6/19-6/28、项目整个过程 |
| 其他精灵的制作 | 15%(每人占5%) | 邱奕浩,邱晓裕,王健豪 | 6/24-6/28 |
| 合并代码 | 6% | 邵梓硕 | 6/29-7/1 |
| 双人对战 | 7% | 王健豪 | 7/1-7/4 |
| 设置排行榜 | 7% | 王健豪 | 7/4-7/8 |
- 关于时间的安排,其实可以互相协调然后提早开始的:比如说设置排行榜的人,可以先找双人对战的人提供得到分数的接口,然后就可以先写啦;再比如说做第一个精灵的人,可以现在就可以找素材了啊,啦啦啦。
- 顺带一提,也可以合作完成,自己协调你们合作的部分的占比就行
- 下面的是附加功能,炫技项啊啊啊,这个就自告奋勇吧,要写的自己写进去
| 功能 | 占比 | 完成人员 |
|---|---|---|
| 伪智能实现人机互打(至少要看起来智能点) | 6% | |
| 联网对战(666) | 7% | |
| 场景的移动 | 5% |
- 场景移动:就是一个大场景嘛,角色移动的时候角色一直都是处在屏幕的中心,双人对打可能用不了,可是人机互打和联网对战还是可以用的嘛
- 如果到最后附加功能没时间写的话,就按比例分配给基本要求
- 已完成
万事开头难,所以我们需要有一个人添加第一个精灵,然后其他的人在这个人的代码上再建立自己的精灵类即可;这个类需要继承PlayerSprite类,下面是精灵的事件,包括但不限于:
- 近攻,远攻
- 左右移动,向上跳
- 被攻击
- 死亡
需要注意的是因为后面的精灵都是在这个的基础上完成的,所以这个类的实现请用心点,可以添加更多炫技的东西,๑乛◡乛๑:冲刺,闪避,蓄力,大招。。。。。。
为了确保你这部分的功能是健全的,用自己建好的两个对象互打吧。
如果第一个阶段的人代码完成的比较好的话,这一阶段的人主要的任务就是替换素材和添加场景图片之类的操作了,相对而言是不是相当简单啊,反正我不做。 顺带一提,美化界面包括整个项目阶段的界面美化和音乐。
除了制作第一个精灵的人,其他的每个人至少还需要在第一个精灵的基础在进行修改,做一个自己精灵,相信已经有了第一份代码,这里应该不是很难吧。
好了,有了上面的代码内容,我们就需要合并代码了,合并代码后需要实现:
- 启动程序,进入WelcomeScene界面,点击开始游戏,进入MenuScene;点击结束游戏,结束程序;
- 上面进入MenuScene之后,可以选择玩家和场景(这次真的可以选哦),点击确定进入GameScene,点击返回回到WelcomeScene
- 上面进入GameScene之后,点击WASD,↑,←,→,J(近攻),K(远攻),会对应触发PlayerSprite的对应函数,动画帧会对应的显示,但是碰撞还是没有响应的。
- 两个单例类能正常使用
现在就要实现整个游戏的最重要的功能了;你需要在前面的合并好的代码上,完成两个角色对打的功能;上面应该已经基本完成了这部分需要使用的函数,这里要做的也就是碰撞的时候调用对应的函数,应该不是很难吧。。。。
暂时的要求:
- 死亡的死后结束游戏;
- 还有计算两个玩家的得分;
- 倒计时;
- 其他一些基本的逻辑,比如说如果两个人站的很近互相攻击,手慢的只能被打,不能两个同时都在攻击对方吧。
终于啊,我们的之前建立的数据库类可以用了,之前还一直是一个空的单例类呢,现在可以保存了,至于排行榜怎么实现,自己定吧。
定期刷一些怪出来,可以打升mp啊,这个怪傻逼一点也没关系的,红蓝buf
这次请在指定时间完成代码的时候同时添加注释,代码注释要求请参考基本框架的代码,一些基本的要求:
- 使用/**/注释
- 一样功能的代码用region圈起来
- 等等
- server和qiuxy分支
- 弗利萨 + 悟空
- 联网对战
- 首先是Gamescene.cpp,这个是用于双人对战的
- 然后是OnlineGameScene.cpp,这个是程序启动时直接启动的界面,在启动之前需要下载server分支下的代码然后先跑server的代码作为服务端(直接跑就好)
- 目前OnlineGameScene.cpp 里的访问的ip地址需要改动,具体请直接看init函数中联网部分的代码。
- 最新版请下载master分支的代码
- 首先,找一张透明的png图片(也可以自己p,一般用于游戏素材的纯色图片用魔棒p一下就可以了),如
- 然后,ps,可以用切片(自己百度怎么用),p完的结果(需要注意左右不能留空白,上偶尔可以(这个试一下就知道为什么了,因为是按中心定位的),怎么去透明百度一下就知道了):
- 然后,下一个软件,TexturePackerGUI,导入整个文件夹,然后点击publish sprite sheet(在上面的菜单栏),然后就有了plist文件。
主要说一下关于动画帧的事,动画主要分为两类:动作类和特效类。
所有动画帧都在PlayerSprite类初始化,动作类动画在PlayerSprite类里生成,特效类动画在ExampleGameScene(游戏主界面)类里生成。
- 注意
- 被打飞的动画(attackAway):被打飞的动画由两个动画构成,第一个是在空中飞的动画,只有1帧,第二个是落地后起身的动画,有多帧,尽量按照这个模式。
- 用来初始化动作类动画的文件:"角色名.png"和"角色名.plist"
- 用来初始化特效类动画的文件:"角色名_boom.png"和"角色名_boom.plist"
- Charactor类:这个类是用来存储不同角色在动画帧的选择上的数据的不同,请在Charactor的构造函数里加入你的角色的数据
- 注意初始化动画帧集合时用的字符串,比如"Kid_Buu_idle_0%d",z这里表示的是魔人布欧的idle动作,但是这只适用于个位数的帧,当变成十位数时,就要用"Kid_Buu_idle_%d",因此如果你的动作帧超过10,就要确保Charactor类有这个字符串的返回函数,具体请参考ultimate这个动作
- 类可以随意改动,只要保证效果
- plist和帧的截取和导出请@晓裕。
- 基本框架已经建好,代码文件和功能:
| 类名 | 功能 |
|---|---|
| AppDelegate | —— |
| configuration.h | 配置文件,存放了精灵的数值 |
| WelcomeScene | 游戏欢迎界面 |
| SelectRoleScene | 选择游戏角色界面 |
| SelectBackgroundScene | 选择游戏背景界面 |
| ExampleGameScene | 示例游戏界面 |
| ExamplePlayerSprite | 游戏角色示例类 |
-
已完成的内容:去运行一遍吧,代码注释写得挺清楚的,去看一下代码吧
-
代码和注释规范
- 这次请在指定时间完成代码的时候同时添加注释,代码注释要求请参考基本框架的代码,一些基本的要求:
- 使用/**/注释
- 一样功能的代码用region圈起来
- .h文件头参照我的代码文件头添加注释
- 如果修改了之前别人写的代码内容,请在旁边添加注释说明
- 这次请在指定时间完成代码的时候同时添加注释,代码注释要求请参考基本框架的代码,一些基本的要求:
-
可以使用Visual Studio的任务列表视图查看Todo的内容,我在一些你们需要做的内容部分留了Todo注释,尤其在你们提交完成的代码的时候要检查一下属于自己的todo内容有没有完成
有问题@我,卒
