自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 开发日记——spine脚本修改自定义材质属性失效问题解决

需要在脚本中动态将spine设置为纯白色,使用自定义材质修改片元着色器,发现在编辑器中修改可以生效,但是在脚本中修改属性不生效。cocos中spine材质存在缓存,所以在脚本中直接改材质无效,需要获取到缓存后修改。

2025-05-30 14:25:45 88

原创 开发日记——MipMap抗锯齿

启用 Mipmap 后,系统会基于原贴图(Level 0)生成一组分辨率逐级减半的多级贴图(Level 1、Level 2…,这样在不同的渲染区域所占的屏幕像素点下可以选择合适的分辨率的纹理去渲染。修改spine图集的过滤模式为 双线性过滤 Mipmap(Bilinear with Mipmaps)后解决。抗锯齿、无闪烁,当贴图只占少量屏幕像素时,GPU 直接读取小尺寸 Mipmap,优化性能。占据原图4/3的大小。如果对图片进行缩放会出现跳级,不够平滑。播放spine动画时边缘闪烁。

2025-05-28 16:37:49 94

原创 Cocos——shader实现2D平面点击水波纹效果

修改shader片元着色器,通过正弦函数实现周期性的uv坐标偏移,具体看代码注释。

2025-05-21 11:46:42 144

原创 Cocos2d——修改片元着色器实现不规则消融

准备一张噪点图,在外部脚本update方法中给材质传入阈值参数定义为K(0,1),K随时间均匀增大,在片元着色器中去判断像素点uv坐标对应的噪点图的像素点的(r,g,b,a)中的r是否小于k,若小于则将透明度设为0。

2025-05-16 16:35:04 110

原创 开发日记——Cocos3.8.3 label字符串自定义倾斜

顶点的 UV 坐标用来在二维纹理中“圈定”一个区域,然后将这个区域映射到顶点构成的矩形(或任意多边形)上进行拉伸渲染。3、判断顶点的位置,修改顶点uv坐标,在上面的顶点处理方法中添加以下逻辑(赋值参数自定义)一个label字符串存在四个顶点,可以通过自定义材质来修改顶点的uv坐标实现任意偏移。),会改变这个四边形在屏幕或世界空间中的形状和大小。2、修改拷贝的.effect文件中的顶点处理方法。uv坐标超出纹理边界也会压缩或拉伸后映射到顶点。1、新建材质,拷贝一份.effect文件。修改顶点的 位置坐标(

2025-05-13 17:35:45 170

原创 开发日记——地图不同区域点击触发对应事件

由于地图是由很多小区块无缝拼接而成,所以会有部分区块的矩形透明部分覆盖在其他区块上,需要同级节点触摸事件穿透。一个大的地图背景背分隔成了多个小的区块,需要对每一个区块可以选中并且改变区块颜色(不规则区块)。为每一个区块注册点击事件实现选中方法,编写shader实现不规则图形色彩变化。然后将触摸屏幕坐标转化为世界坐标,继续转化为相对点击区块的本地坐标。在事件回调中去设置不能吞噬事件,但是发现对于触摸结束事件无效。将本地坐标转化为纹理坐标,需要注意纹理坐标以左上角为原点。获取到点击部分的像素并判断。

2025-03-12 11:51:12 358

原创 开发日记——鼠标滚轴缩放滚动视图内容(以鼠标为中心点缩放)

获取到鼠标在屏幕上的坐标(左下角为原点),获取到指定的相机组件,将屏幕坐标转化为指定相机下的世界坐标,将世界坐标转化为content节点下的相对坐标,获取到鼠标所在坐标与content节点中心坐标的x,y差值,计算差值所占的content整体宽高的比例为blX,blY,通过比例以及具体要缩放的宽高可以计算出鼠标所在点的偏移量,缩放过后移动相应的距离即可。:放大需要先缩放再移动,缩小需要先移动再缩放。因为在移动和缩放的过程中content不会超过边界。1、首先注册监听滚动事件。

2025-03-11 10:38:48 205

原创 开发日记——修改shader实现控制不规则图形的颜色信息

这样可以使图片原本透明的像素依旧透明,不透明的像素完全使用color对应的颜色,实现不规则图形精确控制颜色。复制一份sprite组件使用的默认shader(builtin-sprite),修改以下内容。

2025-03-10 14:27:51 191

原创 cocos远程加载图片资源

【代码】cocos远程加载图片资源。

2025-02-06 17:10:57 142

原创 http请求的流程

通过url访问指定的网页,url由域名+数据组成,通过dns服务器将域名转化为对应的ip地址,找到指定的服务器,然后通过URL中指定的端口号or默认端口(http:80、https:443)尝试与服务器建立tcp连接,连接建立后将url中携带的参数发送给服务器,服务器解析处理后返回响应报文。请求行中包含了<HTTP方法> <请求路径> <HTTP版本>,例如:POST /submit-form HTTP/1.1。请求头中包含了关于客户端和请求的元信息。设置请求行,请求头,请求体。

2025-02-06 15:25:44 309

原创 部分八股文问题理解

虚拟内存可以将零散的内存碎片映射到完整的虚拟内存上,充分利用。答:看情况,若是在基类构造函数中调用虚函数,那么在执行到基类构造函数时子类还未初始化,默认会从基类的虚函数表中去查找,不具有多态性。若是在子类构造函数中调用虚函数,在执行到子类构造函数时子类已经初始化,会从子类的虚表中查找。答:可以定义但是没有意义,由于虚函数是动态绑定的(运行时去虚表中查找方法,对于多个子类存在多个重写的虚函数只有在运行时才能确定调用的是哪一个),而内联函数是在编译时将调用的函数体插入到调用处,所以编译器会忽略内联标识。

2025-02-06 11:30:48 330

原创 cocos动态合批

5、label组件不会与sprite组件进行动态合批,但是label组件在设置为bitmap时,连续的bitmap模式的label组件会进行动态合批(将字符串纹理合并为一个大的图集),这样每次修改文本会导致图集需要重新生成,所以只适合静态文本。3、动态合批的过程可以理解为深度优先遍历,按节点树从显示层级高到低遍历合并贴图,如果遇到无法合批的节点会打断合批,重新开始新合批。4、每一个mask节点及其子节点都可以理解为一个独立的动态合批,不会与其他节点合批,并且mask组件会打断动态合批。

2025-01-24 15:12:39 670

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除