cocosjs 小游戏排行榜
创始人
2025-03-23 18:19:43
0

一、cocos creator 2.1 文本渲染分析。为什么创建Label性能差

拿 creator制作了个排行榜页面,不到20个Item,一个Item里只有两个 Label:名称和关卡。

发现在微信小游戏中打开,会卡顿。对页面的创建过程计时,发现主要耗时在创建 Label上。遂来分析下 cocos creator 2.1的文本渲染流程。

感叹下,能看到源码真是太好了~~

求教,厦门有什么好的游戏开发的交流渠道呀,群也大都死水一潭,现实中也找不到交流的同好和空间。感觉太封闭了

回归正题...

cocos creator的文本渲染有两种:

其中采用系统字体的,应该也是归属于 ttf中。

涉及到的文件有:

还有其他相关的文件也是跟文本渲染相关,但是本文聚焦在 2d、 webgl和 ttf渲染上,其他的就略过。

Label组件作为属性的容器,并在属性变更时,调用 _updateRenderData

Label的 _assembler的定义在 core/renderer/webgl/label/index.js找到

根据类型,找到 _assembler的实现在 core/renderer/webgl/label/2d/ttf.js中

core/renderer/webgl/label/2d/ttf.js继承了 core/renderer/utils/label/ttf.js

通过 _getAssemblerData可知,所有的 Label组件共享同一个 canvs元素

updateRenderData做实际的文本计算(字体、宽高、基线等),并绘制纹理。

_updateTexture首先清空 canvas(注意,此canvas全局唯一,所有TTF Label共享的)

然后绘制描边,绘制文本,有需要的话,绘制下划线,最后调用 _texture.handleLoadedTexture将 canvas提交到 gpu纹理上。

以上可知,每个 Label的创建,都要经历清空重绘 canvas,然后提交纹理的步骤。每个 Label的纹理都是单独的,并没有重用。

当时在微信小游戏上测试,平均创建一个 Label耗时约30ms,创建十几二十个 Label,感知到明显的卡顿。最终弃用ttf label,改用 bmfont label避开这个问题。感觉这里有优化的空间?

一直以来,好奇 cocos creator的描边实现,自己一直往 shader那边,什么纹理扩边,卷积啥的去想。

实际上:

在文件 core/renderer/utils/label/ttf.js第255行:

二、Cocos Creator如何快速接入微信小游戏好友排行榜

在Cocos Creator中快速接入微信小游戏好友排行榜,主要涉及两种方式:纯JS代码接入和代码+IDE的方式接入。纯JS代码接入涉及初始化一个节点以绘制子域的sharedCanvas,并实现子域的绘制逻辑。通过以下步骤可实现快速开发好友排行榜:

首先,初始化一个Node节点,添加WXSubContextView组件,该组件能以一定的帧率自动绘制sharedCanvas,开发者无需操心。将此节点添加到场景中,即可展示效果,隐藏节点则可关闭。接下来,实现子域的绘制逻辑,参照官方示例,使用XML、CSS和JS绘制排行榜。

配置插件引用步骤如下:

在game.json中添加插件引用。

在开放数据域内引用插件。

通过以上两步操作,即可轻松绘制出好友排行榜。

另一种方式则是利用Cocos IDE工具,通过拖拽创建画布节点,简化操作流程。体验成品,只需扫描小游戏码即可。

若需好友排行榜源码,可私信获取。

相关内容

热门资讯

ios黄油游戏排行榜 各位老铁们,大家好,今天由我来为大家分享ios黄油游戏排行榜,以及手机黄油有哪些推荐的相关问题知识,...
黑魔法游戏提高知识和修养 一、哥特风游戏《黑魔法》怎么玩洗完之后选择去晚餐室吃些东西。吃完饭之后去浴室可以解锁剧情,去卧室睡觉...
游泳安全知识游戏 一、游泳的安全知识有哪些1,必须在家长(监护人)的带领下去游泳。单身一人去游泳最容易出问题,如果你的...
没点知识怎么玩游戏呢图片 一、不上班,吃外卖,整天玩游戏的人是靠什么生活的身边恰好就有这样一个女生朋友,从一起毕业出来上班到目...
丰富知识英文游戏推荐一下 一、我知道游戏很好玩的英文下载地址:类型:安卓游戏-益智休闲版本:v1.1.2大小:27.00M语言...
竞答游戏知识 一、关于答题的游戏有哪些答题的游戏有一站到底pk版,微信成语猜猜看,问答RPG魔法使与黑猫维兹,挑战...
电脑游戏相关知识点归纳 一、二年级数学下册知识点归纳学习的成功与失败原因是多方面的,要首先从自己身上找原因,才能受到鼓舞,找...
知识比赛类游戏 一、求一个响亮而有文采的百科知识竞赛活动的名称求一个响亮而有文采的百科知识竞赛活动的名称 1、知识百...
二年级下册趣味知识游戏 一、二年级下册数学广角推理(二)趣味乐园挖地雷原问题:答案:扩展资料主要考察的是平均数的知识点:表示...
传奇游戏制作基础知识是什么 一、传奇是什么游戏呵呵哥们算你问对人了我就是传奇的忠实粉丝他的全名叫热血传奇是2001年推出的一款基...