cocos现在的帧率是60,我有个疑问,如果游戏中有大量的动作要处理,比如像《捕鱼达人》那样的游戏,界面上那么多的鱼,每条鱼都有自己的动作,而且每一帧还要检测是否被渔网网住(我猜是这样啊,不对的话请指正),每一帧能完成这么多精灵的操作么?是怎么做到的?
我自己做过一个实验,也是在每一帧(update方法中实现)执行位移操作(setPosition方法),但是我发现有一部分的精灵在上一帧执行的动作还没做完的时候,就已经开始了下一帧的操作(因为我是让精灵在几个预设的点上经行位移的,每次位移之前要通过getPosition()方法来获取精灵当前的坐标,如果每一帧的动作都执行完的话,getPosition方法得到的坐标应该都是我预设的那些点中的一个,但是现在发现有时候得到的点并不在我预设的那些坐标之内,所以可以得出结论:上一帧的动作还没做完,下一帧的动作又开始了)。
因为我是在update方法中遍历每一个精灵,去让它们执行自己的动作,所以实际上它们执行动作的时间应该是不一样的,也就是说,如果在60分之一秒的时间内,不能完全遍历这些精灵并让它们执行完自己的动作,那么下一帧开始的时候,就会出问题。我现在只有十来个精灵,就已经是这样了。
所以想问问各位大神,应该怎么做,才能在这么短的时间内遍历完界面上所有应该做动作的精灵,并保证它们的动作能执行完呢?
动作不流畅是因为你setposition的位置不连贯,1/60秒cpu做几个矩阵变换有什么问题?