论文部分内容阅读
随着中国的移动互联技术进入飞速发展时期,移动平台已经成为目前最为热门的游戏开发平台。智能硬件设备性能的不断提升,促使移动平台正在以逐年递增的趋势成为继PC与主机后的第三大主要游戏平台。本课题设计并实现了一款基于Unity3D的3D坦克射击游戏。主要工作包括以下几方面:首先,对3D坦克射击游戏进行需求分析,并将本课题拆分为UI系统、战斗系统、成就系统和商城系统等四部分。其中,UI系统主要处理人机交互和场景切换。通过异步累加配合异步加载实现了场景的快速切换和2D场景与3D场景的叠加显示。战斗系统主要包括技能系统和NPC智能操控。在技能系统中普通炮弹和特殊效果的炮弹视为不同技能。由技能释放器完成技能的释放和后续对敌人的伤害结算。其次,通过包围球和方向包围盒技术结合OBB算法完成了三维虚拟环境中刚性物体之间的碰撞检测。在检测到碰撞之后,利用射线与凸体相交方法计算得到凸体间第一次发生碰撞的位置,并及时作出碰撞响应。同时采用基于导航网格的A*算法找到一条最优路径,把NPC从其出发点移动到目的地,从而实现了NPC智能寻路。然后,设计并实现了适合坦克战争游戏的感知系统和有限状态机。感知系统采用包围球和碰撞检测技术设计了感应器、感应系统和触发器。感应器感应外界信息,触发器散发自身信息,感应系统负责感应器和触发器之间的交叉过程。感应器感应到不同信息形成不同的输入条件。这些条件经过状态机处理后,可实现NPC在有限个不同的状态间切换。多个NPC则通过基于模糊逻辑设计实现的操控系统进行多种不同行为的操控。最后,通过Unity3D引擎实现了游戏场景,使用C#语言编写代码实现了游戏的逻辑处理。采用遮挡剔除技术剔除被其他物体遮挡住而相对当前相机不可见的物体,减少了渲染量。同时通过LOD算法逐层次简化物体的表面细节,减少场景的几何复杂性,提高了绘制算法的效率。此外还使用批处理、图集和对象池等技术,提高了游戏帧率,优化了游戏的性能。