虽然是一个人的工程,同样是可以遵循过程控制的。我使用的是瀑布模式。因为只是移植,没有太多的设计需要做,另外技术的可行性上感觉也没有问题,我只是粗略地写了一个文档。
游戏类型:动作类游戏。
功能说明:控制直升飞机飞过障碍物,只使用一个按键,按下去以后飞机上升,不按的时候飞机下降,撞到上下边框或者障碍物均导致任务失败。
1。飞行空间大小始终一致,但地形有高低起伏,障碍物高度确定,位置不定,所有相邻障碍物间等距。地形与障碍物都使用同样的砖块拼成。
2。直升飞机有三种状态:
自由状态:匀速下降,场景匀速左移,螺旋桨转动,有尾烟
受控状态:匀速上升,场景匀速左移,螺旋桨转动,有尾烟
坠毁状态:停止,场景停止,螺旋桨停止,无尾烟
3。场景生成。
场景由均匀大小砖块拼成,设砖块厚度为H,长度为w.地形变化随机生成。假定当前屏幕最右边上边框厚度为TopBorder,下边框厚度为BotBorder,取一个随机数R,范围
-X~+X,如果R>0,说明地形在接下来的R个高度单位里是下降的,同时如果|R|>BotBorder,取|R|=BotBorder,对上升也采用同样的方案。
下图所示:最右边的蓝色砖块为随机生成。
4。碰撞检测:
可以把直升飞机看作一个矩形来进行检测
5。HighScores
使用RMS记录HightScore,两个字段,String 用户名,Int分值(飞行距离) 。
6。可选方案:
a.可制定管卡,不同关卡速度不同
b.可加入宝物系统,比如防护罩,加了以后在n秒内可以穿过障碍物而不受损伤。
另外为保证游戏的可玩性以及用户操作感受的一致性,原游戏画面上的所有元素都应按比例缩小,但飞机是例外,经过测试发现飞机如果按比例缩小,在176X220 的手机屏幕上已经太小而影响视觉效果,不得不适量放大。
ps: 本来应该把文档写全的……可是在文档出来之前编码已经基本完成了,大约是6月6日下午完成。不过编码比文档先完成对于真正的项目来说简直是……不可能