社区
iOS
帖子详情
关于cocos2d-x纹理裁剪的1个问题
huruihappy
2012-02-20 10:12:42
我用cocos2d-x 中的CCTexture2D加载纹理之后,如何实现类似J2ME里面setClip那样的效果。参考了很多资料除了把他弄成Sprite进行裁剪外好像没其他好的办法,但是那样用绘制效率太低了。我只想显示纹理的一部分到屏幕上。
顺便问下,cocos2d里面绘制基础的几何图元如何弄,比如说填充1个半透明的圆角矩形,绘制1个矩形
...全文
791
6
打赏
收藏
关于cocos2d-x纹理裁剪的1个问题
我用cocos2d-x 中的CCTexture2D加载纹理之后,如何实现类似J2ME里面setClip那样的效果。参考了很多资料除了把他弄成Sprite进行裁剪外好像没其他好的办法,但是那样用绘制效率太低了。我只想显示纹理的一部分到屏幕上。 顺便问下,cocos2d里面绘制基础的几何图元如何弄,比如说填充1个半透明的圆角矩形,绘制1个矩形
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Night-Wish
2013-09-09
打赏
举报
回复
void PlayLayer::initClisper(CCSprite *s_hole,CCClippingNode **cliper,int tag){ CCDrawNode*stencil = CCDrawNode::create(); CCPoint rectangle[4]; rectangle[0]= ccp(0, 0); rectangle[1]= ccp(s_hole->getContentSize().width,0); rectangle[2]= ccp(s_hole->getContentSize().width,400); rectangle[3]= ccp(0, 400); //绘制一个矩形 ccColor4F color = {1, 1, 1, 1}; stencil->drawPolygon(rectangle,4, color, 1, color); *cliper = CCClippingNode::create(stencil); (*cliper)->setPosition(s_hole->getPositionX()-s_hole->getContentSize().width/2,s_hole->getPositionY()); (*cliper)->setContentSize(CCSizeMake(stencil->getContentSize().width, 200)); (*cliper)->setTag(tag); this->addChild(*cliper); } 代码如上,主要类CCClippingNode能够实现你所需要的功能,详细如何坐,自己google一下,很多答案,这里重点给你说一下,想要实现效果,你必须改ios目录下appcontroller.mm文件里一个地方 EAGLView *__glView = [EAGLView viewWithFrame: [window bounds] pixelFormat: kEAGLColorFormatRGB565 depthFormat: GL_DEPTH24_STENCIL8_OES preserveBackbuffer: NO sharegroup: nil multiSampling: NO numberOfSamples:0 ]; cocos2d::CCDirector::sharedDirector()->setDepthTest(true); 自己对应下,kEAGLColorFormatRGB565,GL_DEPTH24_STENCIL8_OES,cocos2d::CCDirector::sharedDirector()->setDepthTest(true);
merlinfang
2013-09-04
打赏
举报
回复
cocos2d 2.1提供了sprite新的API,指定区域的,不过还是用opengles来画吧
oO水儿Oo
2012-10-12
打赏
举报
回复
cocos2d里面有opengl ES,用opengl的方法可以绘制图元,详细使用可以自己看看有关opengl的书
oO水儿Oo
2012-10-12
打赏
举报
回复
用CCImage的这个方法初始化一个CCImage,bool initWithImageFile (const char *strPath, EImageFormat imageType=kFmtPng);然后用unsigned char * getData ()方法获得图片的像素指针,用int getDataLen ()获得像素个数,用virtual unsigned short getWidth (void),virtual unsigned short getHeight (void)获得宽和高,然后算一下自己要截取的图片的位置和大小,拷入一个新的char数组里,然后用bool initWithImageData (void *pData, int nDataLen, EImageFormat eFmt=kFmtUnKnown, int nWidth=0, int nHeight=0, int nBitsPerComponent=8)构造一个CCImage实例,用CCImage去构造一个CCTexture就OK了,看API自己想的,没实际操作过
huruihappy
2012-02-21
打赏
举报
回复
没人知道么
Cocos2d-X
的
纹理
(1)
原文地址: http://www.geekfaner.com/
cocos2d-x
/ReadCocos2dxSourceCode15.html 课程概述 “
Cocos2d-X
的
纹理
(1)”课程概述 游戏中的UI元素各种各样,栩栩如生,而这些UI元素的形状依靠的是顶点坐标,色彩大多都是依靠
纹理
,
纹理
也是OpenGL ES中的重要概念。本节课将讲述
Cocos2d-X
的
纹理
。
[
COCOS2D-X
]
裁剪
实现
有2种实现方式 I 使用CCSprite的setTextureRect 点击打开链接 II CCEGLView::sharedOpenGLView()->setScissorInPoints 点击打开链接 对比: I 是改变
纹理
的定点数组 对于较复杂 速度快 II openGL是
裁剪
功能 相对较简单,可以封装成一个简单的ClipLayer 速度慢
Cocos2d-x
镜子特效
Cocos2d-x
镜子特效 声明:本文使用的是
cocos2d-x
-3.17的代码 实现镜子特效需要用到以下知识 Cocos2d摄像机详解
Cocos2d-x
着色器
Cocos2d-x
3D模型渲染 镜子特效的原理很简单,就是镜子为轴对称,将镜子正面的物体在背面重新绘制一次。绘制物体时需要解决两个
问题
,首先需要确定物体的位置,其次是要保证物体绘制时不能超出镜子的范围。 确定反射位置 ...
深入分析
Cocos2d-x
2.0中的“
纹理
”
[
Cocos2d-x
相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿
Cocos2d-X
学习园地QQ群:249941957 加群写:
Cocos2d-x
本章为我的
Cocos2d-x
教程一书初稿。望各位看官多提建议! 深入分析
Cocos2d-x
2.0中的“
纹理
” 另:本章所用
Cocos2d-x
Cocos2d-x
之显示精灵 Sprite
SpriteSprite是
cocos2d-x
中用来显示图片的主要对象,它的创建有四种方式
iOS
29,038
社区成员
12,459
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章