试一下,
预览模式下:CocosCreator\resources\static\preview-templates\boot.js里cc.game.run前面的option对象里加一个属性renderMode: 2
发布后,web-mobile\main.js里cc.game.run前面的option对象里加一个属性renderMode: 2
改成webGL 之前的那个很多个节点,解决了,在苹果上面自带的浏览器不掉帧,这微信 只能30帧左右,而且这蛇还才一点点长,你有更好的优化思路没呀,我的背景图是4940*2888的,我把这个改小也没啥效果
这个没看过你的项目和代码也想不到什么思路啊。你试试排除法,禁用背景看看帧数,禁用蛇身看看帧数,禁用豆子看看帧数,等等。。。
行吧,就在苹果机上面,不同浏览器效果不一样,哎
不同浏览器是挺不一样的。。
我觉得你的几百个点的每帧碰撞检测是个问题。一个粗糙的思路是:
把地图分割成一个个小方块(像你的游戏背景那样),定义一个二维数组A对应每个方块。蛇身先不开启碰撞检测组件,蛇身每个点所占的格子(按你的背景那么大的话最多占四格)A[i][j]设置为占领它的蛇编号(如A[i][j]=[3,4]代表i,j这个格子被3号蛇与4号蛇的某些身体节点占领了)。由于蛇身跟随头部移动,那么蛇每次移动,只需要占领头部新移到的格子(如果有)并清理尾部移出的格子(如果有)。如果一个蛇头进入的方块已经是被占领的,那么开启蛇头节点与占领该点的所有蛇蛇身的碰撞检测计数+1。蛇头或其它蛇的蛇身移出格子时碰撞检测计数-1。对所有碰撞检测计数大于0的节点开启碰撞检测。本质思路是只有蛇头靠近其它蛇的时候才开启蛇头与其它蛇的碰撞检测。
你这个思路好实现起来好复杂,
先来说碰撞吧,我即使把所有的碰撞都关了,结果还是一样的它的帧数还是只有30左右,开不开效果都是一样,
现在的问题是视图外的空节点不渲染的节点好像也被渲染了一样,特别是空节点估计也是被渲染了
脏矩形问题好久了,我再帮你们催一下~~