疯狂捕鱼之路径解决方案的思考

本文探讨了在捕鱼游戏中鱼的路径设计问题,从最初使用CAD软件绘制路径的方法出发,逐步过渡到使用Cocos2d-x框架内的CAction进行路径控制。文章分析了不同路径控制方法的优缺点,并反思了思维定势对解决问题的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  一开始接触捕鱼游戏,对鱼的路径处理,采用CAD画图软件绘制出路径。

  具体做法是,首先由程序员或者美工,使用CAD辅助绘图软件,将路径一一绘制出来,然后使用自制的插件,将路径图以指定的格式保存。在游戏内解析路径文件,构建一个路径管理对象,保存路径信息。在程序内,路径信息包含位置和角度信息,鱼的对象通过路径管理对象,就可以使用路径,在画面上按指定路线运动。

  由于长时间以这种方式,指定鱼在画面上的位置和方向。于是乎,在我每次遇到,需要跑特殊路径的鱼或者是需要程序来计算来指定路径时,我下意识的想法是:根据位置来求角度信息。补充一下,鱼在画面上的姿态,是由位置和角度两个信息决定。如何用程序指定特殊的路线呢?曲线方程!但是,曲线方程的斜率,即鱼的前进方向是很难确定。在工作过程中,我的boss以前就是从事CAD绘图软件插件的编制的,他从不止一次的想我传达过,曲线离散化后,是很难精准的还原到显示器上。我在疯狂捕鱼原创团队出版的一本书里,得到的信息,也是先制定曲线,计算位置,再计算方向。这也坚定了我最初的想法。

  后来同事在处理一条很特殊的鱼的路径时,一直出状况。这时,我们使用的框架是cocos2d-x,我同事使用CAction,点到点的移动,来确定运动路径。由于他在指定时间长短时,没有联合点到点的长度计算,导致速度不是忽然太快,就是忽然太慢。我当时就在想--速度,速度!!对,鱼的运动属性是由它的当前位置加速度决定。速度是一个向量,有大小和方向,方向就是运动的方向。于是,我用速率和速度的方向来计算鱼的下一点的位置,并直接用速度的方向指定鱼的方向。

  一开始我使用的是S-T模式,即位置-时间关系,后面一个是使用V-T模式,即速度-时间关系。两个都可以确定鱼的下一点的位置。但是S-T模式,角度直接用程序计算是很复杂,主要也是我没法操作。

  后来我一直在想,是什么使我陷入一种固定的思考方式。一条筋,差不多一直在位置和角度的计算上纠结。  

  思维定势加惰性!人都是有惰性的,如果以前解决过的问题,再次出现,一般是毫不犹豫的再次使用以前的方案,解决类似问题。在重用方案之前,作为一枚程序猿,应该做些什么工作呢?很多时候,程序员在采纳以往方案时,并没有思考,为什么一定要这么做。就是别人问起,一般也是很理所当然的回答:以前就是这样做的。可是以前为什么这样做?作为一枚优秀的程序猿,是应该积极的去思考。这个过程,是自己学习的过程,也是一个进一步去改进解决方案的机会。 

转载于:https://www.cnblogs.com/hai4925/p/3285924.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值