一开始接触捕鱼游戏,对鱼的路径处理,采用CAD画图软件绘制出路径。程序员
具体作法是,首先由程序员或者美工,使用CAD辅助绘图软件,将路径一一绘制出来,而后使用自制的插件,将路径图以指定的格式保存。在游戏内解析路径文件,构建一个路径管理对象,保存路径信息。在程序内,路径信息包含位置和角度信息,鱼的对象经过路径管理对象,就可使用路径,在画面上按指定路线运动。框架
因为长时间以这种方式,指定鱼在画面上的位置和方向。因而乎,在我每次遇到,须要跑特殊路径的鱼或者是须要程序来计算来指定路径时,我下意识的想法是:根据位置来求角度信息。补充一下,鱼在画面上的姿态,是由位置和角度两个信息决定。如何用程序指定特殊的路线呢?曲线方程!可是,曲线方程的斜率,即鱼的前进方向是很难肯定。在工做过程当中,个人boss之前就是从事CAD绘图软件插件的编制的,他从不止一次的想我传达过,曲线离散化后,是很难精准的还原到显示器上。我在疯狂捕鱼原创团队出版的一本书里,获得的信息,也是先制定曲线,计算位置,再计算方向。这也坚决了我最初的想法。学习
后来同事在处理一条很特殊的鱼的路径时,一直出情况。这时,咱们使用的框架是cocos2d-x,我同事使用CAction,点到点的移动,来肯定运动路径。因为他在指定时间长短时,没有联合点到点的长度计算,致使速度不是突然太快,就是突然太慢。我当时就在想--速度,速度!!对,鱼的运动属性是由它的当前位置加速度决定。速度是一个向量,有大小和方向,方向就是运动的方向。因而,我用速率和速度的方向来计算鱼的下一点的位置,并直接用速度的方向指定鱼的方向。插件
一开始我使用的是S-T模式,即位置-时间关系,后面一个是使用V-T模式,即速度-时间关系。两个均可以肯定鱼的下一点的位置。可是S-T模式,角度直接用程序计算是很复杂,主要也是我无法操做。对象
后来我一直在想,是什么使我陷入一种固定的思考方式。一条筋,差很少一直在位置和角度的计算上纠结。 游戏
思惟定势加惰性!人都是有惰性的,若是之前解决过的问题,再次出现,通常是坚决果断的再次使用之前的方案,解决相似问题。在重用方案以前,做为一枚程序猿,应该作些什么工做呢?不少时候,程序员在采纳以往方案时,并无思考,为何必定要这么作。就是别人问起,通常也是很理所固然的回答:之前就是这样作的。但是之前为何这样作?做为一枚优秀的程序猿,是应该积极的去思考。这个过程,是本身学习的过程,也是一个进一步去改进解决方案的机会。 io