cocos2d-x之区域裁剪
来源:互联网 发布:linux中断机制 编辑:程序博客网 时间:2024/05/18 01:24
cocos2d-x之区域裁剪
如果要在cocos2d-x中实现区域裁剪,一般要重写 visit函数:
void visit(void);
void MyControl::visit(void)
{
glEnable(GL_SCISSOR_TEST);
constfloat s =CCDirector::sharedDirector()->getContentScaleFactor();
CCPoint selfPos = this->getPosition();
CCSize selfContentSize = this->getContentSize();
CCLog("selfPos = %d,%d, selfContentSize =%d,%d ,s = %f", selfPos.x, selfPos.y ,selfContentSize.width, selfContentSize.height ,s);
// 如果是自己的锚点是(0.5,0.5)
// glScissor(selfPos.x *s - selfContentSize.width*s * 0.5f,
// selfPos.y * s - selfContentSize.height*s * 0.5f,
// selfContentSize.width*s,
// selfContentSize.height*s);
//自己的锚点是(0,0)
glScissor(selfPos.x *s ,
selfPos.y * s ,
selfContentSize.width*s,
selfContentSize.height*s);
CCNode::visit();//显示父类的内容
glDisable(GL_SCISSOR_TEST);
}
一般是这么写的,但是后面移植到安卓机器上面的时候,发现内容完全显示不出来了,查了些资料,改成如下的实现就好了:
void MyControl::visit(void)
{
glEnable(GL_SCISSOR_TEST);
CCPoint selfPos = this->getPosition();
CCSize selfContentSize = this->getContentSize();
CCLog("selfPos = %d,%d, selfContentSize =%d,%d ,s = %f", selfPos.x, selfPos.y ,selfContentSize.width, selfContentSize.height ,s);
float scaleX = CCEGLView::sharedOpenGLView()->getScaleX();
float scaleY = CCEGLView::sharedOpenGLView()->getScaleY();
CCRect viewPortRect = CCEGLView::sharedOpenGLView()->getViewPortRect();
glScissor(selfPos.x *scaleX + viewPortRect.origin.x ,
selfPos.y * scaleY + viewPortRect.origin.y ,
selfContentSize.width*scaleX,
selfContentSize.height*scaleY);
CCNode::visit();//显示父类的内容
glDisable(GL_SCISSOR_TEST);
}
如上,iOS跟 安卓系统都没有问题了,最好这样设置。
- cocos2d-x之区域裁剪
- cocos2d-x之区域裁剪
- cocos2d-x之区域裁剪
- cocos2d-x之区域裁剪
- cocos2d-x中实现区域裁剪
- cocos2d-x新手引导遮罩CCClippingNode裁剪区域
- [COCOS2D-X]裁剪实现
- COCOS2D-X]裁剪实现
- 【Cocos2d-x】节点裁剪 ClippingNode
- [7]Cocos2d-x之碰撞区域发生偏移
- Cocos2d-x 3.x ClippingNode裁剪节点
- 【Cocos2d-x】Cocos2d-x 3.0 区域裁切 的具体应用之游戏公告显示
- cocos2d-x CCLayer可视区域
- [Quick-x]制作新手引导高亮区域方法之二:裁剪模式
- cocos2d-x 3.x 不规则点击区域
- Cocos2d用裁剪区域CCClippingNode实现滚动字幕
- 图像处理之ROI区域裁剪
- Cocos2d-x 3.x节点裁剪以及实现跑马灯
- java String.format说明
- boost::thread总结
- HTML5自学手册--HTML5 服务器发送事件(14)
- 电源管理
- 名牌老校广州传智最牛的.Net培训课程
- cocos2d-x之区域裁剪
- svn 服务器迁移
- 没事儿找事儿————gtk学习(用盒状容器排列控件)
- 黑马程序员_this关键字
- cocos2d-x备忘录
- Android控件之ZoomControls缩放控件
- (standard c libraries translation )bcmp家族
- linux获取当前绝对路径
- Starling之动态纹理