我们用Unity引擎进行开发,由于一笔画的特点,成品应是一个2d横版平台解谜类游戏,以下是该项目的需求和UML图。
需求:
1.游戏世界为2D横版卷轴式
2.主角骑摩托车在游戏世界里单方向行驶(没有后退,朝向不变)
3.物理效果与现实类似,摩托车只能在地面行驶(不能浮空)
4.游戏世界中的场景由起点、平台、机关、终点组成
5.在一个关卡内,玩家从起点出发,抵达终点视为此关胜利
6.在一个关卡内,角色(不包括摩托)被攻击型机关击中(发生碰撞)则判定死亡,视为此关失败
7.在一个关卡内,角色(不包括摩托)与平台发生碰撞则判定死亡,视为此关失败
8.玩家可借由键盘操纵摩托的横向移动(加速和刹车)
9.玩家可借由键盘操纵摩托在空中的旋转(顺时针和逆时针)
10.玩家可借由鼠标在游戏世界中画出轨道,被视作平台(可在其上行驶)
11.在一个关卡内,玩家画出轨道长度是有限的
12.在一个关卡内,玩家只能画出一条轨道
13.以上不是最终需求,可能随时发生变动
UML图:
类图:
由于我们使用Unity开发,所以使用了多个Unity内建类,在此只详细列出自定义类的详细成员和类型,而内建类则省略。
(内建类包括但不限于GameObject,Rigidbody2D,Collider2D,MonoBehaviour,Vector3,AudioClip)
用例图:
用例图由两个系统组成,菜单系统和游戏主系统。菜单系统负责设置和查看相应的游戏内设置,游戏主系统负责渲染画面,计算物理效果,管理运行逻辑。
状态图:
此处的状态图并非是某一个具体类的状态图,因为Unity引擎进行了相应的封装,我们无法看到具体运行游戏主循环的实际的类以及内部运行的顺序,所以此处的状态图是从用户(玩家)的角度出发,按照游戏的流程画出的。