首页 > 代码库 > ActiveStar临时封档

ActiveStar临时封档

原因:1、要上班,调整一下方向再决定 2、git工具不熟,没能形成分支管理,需要周期可能要一周。先磨刀 3、协同开发没有形成,要想办法组织大家感兴趣的小项目

原因第二版:未来半年计划:openGL两本书、游戏引擎架构、C+对象模型重读、C++ standard library英文版(第二本英文工具书)、Unix编程思想、lua深化。怕时间不够


封档记录:

1、累积hero位置偏移

镜子蓝玉4.0(455786463) 23:37:43 
bug不是一次的,是多次执行完寻路之后会发现鼠标的位置转换到地图上的位置出现偏差,而且hero穿墙。不是寻路结果不正确,是演示的程序位置hero自己移位了。比如,它以为自己在a点,实际它是地图上换算成b点。
[C++]水影(358836820) 23:39:42 
没有个纠正措施么,比如每次寻路结束纠正一次
镜子蓝玉4.0(455786463) 23:39:50 
另外还有一个问题是地图移动缓冲,因为失败了,所以暂时共享的是即时移动操作。我今天有个想法就是不把hero挂在map中,可以减少累计性误差,还未去尝试。
镜子蓝玉4.0(455786463) 23:41:55 
嗯,我用错数据了,应该是每次需要时重新去计算,而不是使用上次的结果
镜子蓝玉4.0(455786463) 23:46:12 
每次寻路开始和结束做一下修正。好主意双击查看原图
[C++]水影(358836820) 23:49:17 
嗯 很多时候不不能做到完全正确,矩阵运算也是有偏差的,所以经常要normalize一下什么的

2、路径圆滑:

 
镜子蓝玉4.0(455786463) 0:48:16 
昨天说的圆滑叫 弗洛伊德路径平滑
镜子蓝玉4.0(455786463) 0:48:45 
百度一下,很多实现,我目前找不到我下回来的源码,主要在于原理理解。。当时没看懂
[C++]野生搓衣板(453350856) 0:53:07 
游戏人工智能片成案例精粹 里面对寻路的讲解很详细 对圆滑的处理是通过提高图的密度来处理的 
镜子蓝玉4.0(455786463) 0:56:03 
提高密度是一个方式,另外有公式处理的:比如拐角,计算中间路径是否可达,做路径替换也可以,这个时候是不考虑耗散值等相关的

技术分享

技术分享


3、地图更新是格子的插值设置。

来自华南某具有研发实力的工作室成员提到的,超出范围的插值应该设置为0.1或者1.0、或者相邻两个像素的混合值。具体操作搁置。


4、寻路碰撞探测以及路径替代。通过墙角或AOI区域的耗散值可以避免路径探测,但是有个问题在于移动性的玩家或友好NPC问题,必须计算路径与当前环境的碰撞探测,临时寻找替换路径。主要是线与面的交点或线与线的交点,重新计算两点的路径。AOI区域,跟之前FishJoy想的碰撞检测有联系,在地图格子上记录当前接受碰撞检测的物体。碰撞主循环执行检测计算时只考虑刚兴趣区域的碰撞实体。再加上分组、分族的两种策略,能极大得减少计算量。有个更大的头目前没思维:连续型检测和离散型检测。用轨迹线?可是已经发生碰撞了怎么办?是否要求碰撞线程有独立的碰撞前消息等等。


5、hero位置至地图的映射更换为向量映射


6、地图移动缓冲。超出hero移动四角区域则进行map移动,hero播放移动动画;hero移动速度的处理


7、

ActiveStar临时封档