项目主要有两个人合作开发,我在项目中使用的技术点,碰撞检测逻辑,在帧同步下确定游戏的
数据和表现分离框架,摇杆控制角色,管理玩家角色、武器、背包的数据,游戏地形数据的生成,以及
整体游戏的管理和工作安排。
1. 碰撞检测逻辑:使用开源的SAT库做碰撞检测,因为它使用了javascript脚本和creator游戏
引擎的开发脚一致,它是基于基本的圆,矩形,多边形碰撞,满足游戏的需求。我主要接入碰撞逻辑,
区分碰撞类型,提供出接口,方便游戏中调用碰撞接口。例如在游戏开发引用:
require(‘ColliderWorld’); 在角色和障碍物身上使用hyG.ColliderWorld.addEntity(box,
this, entity_options)添加刚体就可以进行碰撞
2. 游戏的数据和表现分离框架:研究了数据和表现分离的MVC框架,发现不太适合游戏的开发,
所以游戏的使用了简化版本的Mode-View-Manager的框架去实现,mode中主要是游戏的Data,比如
HeroData有对应有HeroView,在HeroData中用view的引用,Data中有数据变化就调用view去改变
3. 管理玩家角色、武器、背包的数据:难点在于角色的转向控制,要在2d平面上实现360的转
向,在研究了竞品的类型后,确定让动画绑定骨骼在一个控制点上,达到控制一个点而使游戏中角色手
臂转向动起来,达到360转向的效果。
在市面上大多数游戏都是基于8方向的转向射击下,我做到了角色360转向的功能
4. 游戏地形数据的生成:负责开发工具使策划在编辑器做好的地形能导出成游戏使用的数据,可
以在游戏中动态去加载出地形和障碍物,避免了在开始就一次性加载的卡顿
直播和体验地址:https://www.huya.com/24257861 或者
https://www.huya.com/24850807