- Label描边
Windows 原生打包字体没描边的问题疑似八百年前就存在了,虽然本人的shader知识还很初级,但是这个问题论坛里面有人提没人回答,于是贴个傻瓜式的解决方法,希望对大家有帮助
assets.zip (7.2 KB)
基于3.8.5制作,大佬肯定不屑于看这么简单的原理,不了解shader的新手光看本贴也没法入门,直接下载压缩包,解压并替换工程的assets文件夹就可以用了,但是我什么都不说又不好,所以还是简单讲下
在shader里判断字体的周围位置是否透明,如果这个位置在描边范围内就置成描边颜色
为了让描边大小正好等于2个像素,在ts里把label的尺寸传进去(但是这样做了描边横纵的粗细好像还是不一样,这个还请大佬解答),除此之外还可以把描边大小和描边颜色也传进去,本人偷懒没传
直接把这个ts拖到需要描边的label下,打包原生效果如下
嗯,可以看得出有狗牙,这个问题就交给万能的cocoser们了
这样做描边优缺点:
- 打包Windows,如果勾选VULKAN,会导致Label一整个渲不出来
- 溢出处理选择NONE,会导致描边的左右两侧被切掉
- 设置全屏
这个一行代码就可以解决了
在windows工程下,game.cpp 的 init 函数里加上一行
_windowInfo.flags = cc::ISystemWindow::CC_WINDOW_FULLSCREEN_DESKTOP;
- 最后来说说为什么要打Windows原生包而不使用Electron
- 本人最开始学的是 cocos2dx,接SDK还是C++更顺手
- Windows原生包比Electron打包运行效率快(楼下有图有真相)
- 反正包一层壳就是浑身难受






