博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x JS 纯代码实现人物头像裁剪
阅读量:6184 次
发布时间:2019-06-21

本文共 2048 字,大约阅读时间需要 6 分钟。

有时候为了方便会直接用颜色层和过渡层来显示一些信息,但层只有方角没有圆角不太美观,于是我用剪切节点实现了一个圆角层.方便以后使用.
 
当然,如果使用Cosos Studio 操作会更好一些,省去了坐标裁剪计算等问题,可以一步到位
1         //图层定位,以屏幕中心偏移 2         var offsetX = 0; 3         var offsetY = 0; 4         //图层大小 5         var clipWidth = 600; 6         var clipHeight =400; 7         //圆角半径 8         var radius =25; 9         //圆角层实现代码10         var size = cc.winSize;11         var stencil = new cc.DrawNode();12         stencil.drawRect(cc.p((size.width-clipWidth)/2+offsetX,(size.height-clipHeight)/2+offsetY+radius),cc.p(size.width/2+clipWidth/2+offsetX,size.height/2+clipHeight/2+offsetY-radius),cc.color(0,0,0),1,cc.color(0,0,0));13         stencil.drawRect(cc.p((size.width-clipWidth)/2+offsetX+radius,(size.height-clipHeight)/2+offsetY),cc.p(size.width/2+clipWidth/2+offsetX-radius,size.height/2+clipHeight/2+offsetY),cc.color(0,0,0),1,cc.color(0,0,0));14         stencil.drawCircle(cc.p(size.width/2-clipWidth/2+offsetX+radius,size.height/2-clipHeight/2+offsetY+radius),radius/3,0,100,false,radius,cc.color(0,0,0));15         stencil.drawCircle(cc.p(size.width/2+clipWidth/2+offsetX-radius,size.height/2-clipHeight/2+offsetY+radius),radius/3,0,100,false,radius,cc.color(0,0,0));16         stencil.drawCircle(cc.p(size.width/2+clipWidth/2+offsetX-radius,size.height/2+clipHeight/2+offsetY-radius),radius/3,0,100,false,radius,cc.color(0,0,0));17         stencil.drawCircle(cc.p(size.width/2-clipWidth/2+offsetX+radius,size.height/2+clipHeight/2+offsetY-radius),radius/3,0,100,false,radius,cc.color(0,0,0));18         var clippingPanel = new cc.ClippingNode();19         clippingPanel.stencil = stencil;20         //层颜色21         var layer = new cc.LayerColor(cc.color(255,0,0),clipWidth,clipHeight);22         layer.x = (size.width-clipWidth)/2+offsetX;23         layer.y = (size.height-clipHeight)/2+offsetY;24         //层透明度25         layer.opacity = 200;26         clippingPanel.addChild(layer);27         this.addChild(clippingPanel);

 

这段代码可以直接拷贝,放入刚创建的游戏app.js中以演示.
描述:界面示例
图片:layer.png 

转载于:https://www.cnblogs.com/luorende/p/6794953.html

你可能感兴趣的文章
你为什么选择程序员这个职业?
查看>>
[译] 用于 iOS 的 ML Kit 教程:识别图像中的文字
查看>>
有关https的SSL加密方式
查看>>
ES6的开发环境搭建
查看>>
iOS JSON、XML解析技巧
查看>>
Android下InputStream发生网络中断时的解决办法的代码
查看>>
8 jQuery学习笔记第八节 Jq的效果之自定义动画
查看>>
8月不支持 64 位,App 将无法上架 Google Play!需要怎么做?
查看>>
Vs - 基于 d3.js 和 vue.js 的数据可视化
查看>>
优雅地使用loading
查看>>
Node8.0 之 Napi 探秘
查看>>
TypeScript入坑
查看>>
(三)spring cloud微服务分布式云架构-服务网关zuul初级篇
查看>>
Spring Cloud--Honghu Cloud分布式微服务云系统—System系统管理
查看>>
Linux服务器配置——SAMBA
查看>>
我的WP7应用
查看>>
js打开连接 _无需整理
查看>>
我的友情链接
查看>>
C语言结合windowsApi遍历文件
查看>>
linux 系统无法启动的基本解决方法
查看>>