最近遇到一个问题,有一个组件是这样的:由动态文字(玩家名字)和图片(血条,属性之类)组成,并且相互之间可能层叠,所以没有办法文字一批,图片一批,这样会破坏遮挡关系,想问一下大家有没有比较好的实现方案(要支持微信小游戏)
这个组件最多可能会有100~200多个之间
最近遇到一个问题,有一个组件是这样的:由动态文字(玩家名字)和图片(血条,属性之类)组成,并且相互之间可能层叠,所以没有办法文字一批,图片一批,这样会破坏遮挡关系,想问一下大家有没有比较好的实现方案(要支持微信小游戏)
这个组件最多可能会有100~200多个之间
把文本的cachemode改为bitmap后,文本会缓存成一个位图加入到动态合图的图集里。不过还有后续的问题,文本不停修改会不停地塞入位图,导致动态合图的图集塞满。
可以参考大佬们的帖子 【乐府】突破Label的缓存模式之(1) BITMAP
需要修改引擎源码。个人有个比较粗暴一点的解决方案,动态图集塞满后,将它整体销毁重建一遍。注意这时候要重置一下所有使用到相关图片的精灵(active 设置一下即可);这个方案也是要改源码的,但是改动量少。
这个其实有一个问题,就是一旦使用这个方案,图片原始资源释放不及时,所以微信上推荐不使用,默认CLEANUP_IMAGE_CACHE也是关闭的。
文字相关的渲染的源码,我看了一遍,感觉是设计不够开放,可定制的细节太少;如果CLEANUP_IMAGE_CACHE=false也无法合批,这个设计上不合理。
这个方案可以自己合理管理这个DynamicAlatsManger,只是折中方案。