最近试着做一个RTS类型游戏,首先想到的就是点击移动角色得让其会自动寻路,于是搜了下论坛找到了luckytianyiyan前辈做的A星寻路演示(http://forum.cocos.com/t/a/36924),然后就在这上面做测试。
试了下添加怪物让其每过几秒就往地图随机点移动,当然每次移动都调一下寻路脚本,设置了最多添加50只怪物,在Web和模拟器上运行都很流畅,但发布到安卓手机上就发现有卡顿现象,大概怪物有5只以上时就会。不过这个A星寻路有2个模式,一个是4方向的,一个是8方向的。4方向的手持端也很流畅,就是切换成8方向就会卡顿,8方向必然加大了运算量。
luckytianyiyan前辈在帖子里也说了这个A星寻路算法存在性能问题,这可能是一个因素。但是既然Web端很流畅,而一到手持端就卡顿,这或多或少和引擎对原生平台的性能优化程度有关吧。
附上这个测试的工程文件和打包好的APK文件,大家可以试下。默认是4方向模式,点击右上角的4 direction按钮可切换到8方向,点击
AddEnemy按钮添加怪物,点击AddUnit添加我方炮塔单位,最多在场的各能添加50只。(PS:请无视里面神奇的代码写法-.-里面那只小怪物素材盗取manklw前辈一个DEMO里)
微信上说1.6版本将会进一步提高原生平台的性能,很期待啊~希望到时可以解决上述这个在手持端的卡顿问题。也很希望引擎可以自带一个寻路组件,比如只用cc.moveTo动作就能让它自动找到一条绕过障碍物且最短的路径,像Unity3D里的Navmesh。
APK:http://pan.baidu.com/s/1c1Z3Kli
A-star-master_20170525.rar (2.5 MB)
文字缩进4格