切取图片的一部分(利用CCRenderTexture)

转自:http://blog.csdn.net/wcjwdq/article/details/37932769

  显示图片时,在项目中经常会用只读取图片的一部分,而不是全部。

错误方式:很多人这时候会采用setTextureRect(CCRectMake(x, y, width, height)),事实证明,这种方法是不可取的。

正确方式:

那么,我们应该用什么方法呢??下面来介绍一种方法,给出函数的实现。

CCSprite * HelloWorld::getPartTexture(CCSprite * pSprite)
{
    if (!pSprite) {
        return CCSprite::create();
    }
    //把renderTexture矩形当做一个画布,左下角为原点。
    CCRenderTexture * rt = CCRenderTexture::create(180, 200);
    rt->begin();
    pSprite->setFlipY(true);
    pSprite->setAnchorPoint(ccp(0, 0));
    pSprite->setPosition(ccp(-10, 0));
    pSprite->visit();
    rt->end();

    return CCSprite::createWithTexture(rt->getSprite()->getTexture());
}

首先,创建一个CCRenderTexture,大小就是你想显示的图片大小。

其次,调用 CCRenderTexture:begin. 这个方法会启动OpenGL,并且接下来,任何绘图的命令都会渲染到CCRenderTexture里面去,而不是画到屏幕上。

第三,对所要切的Sprite1调用visit方法。(如果你要对Sprite1进行锚点、位置或者翻转进行设置,必须要在调用visit之前,否则写了和没写的效果是一样的)

第四,调用 CCRenderTexture:end。这个方法会渲染纹理,并且会关闭渲染至CCRenderTexture的通道。

第五,从生成的纹理中创建生成一个Sprite2。

     注意:在绘制过程中,CCRenderTexture所创建的矩形相当于一个坐标系L,左下角的坐标为(0,0),向右和向上越来越大。Sprite1设置坐标是以这个L作为坐标系的。

时间: 2024-11-17 05:37:54

切取图片的一部分(利用CCRenderTexture)的相关文章

两种方法实现用CSS切割图片只取图片中一部分

切割图片这里不是真正的切割,只是用CSS取图片中的一部分而已,主要有两种方式,一是做为某一元素的背景图片,二是用img元素的属性.下面有个不错的示例,大家可以参考下 切割图片这里不是真正的切割,只是用CSS取图片中的一部分而已.这样做的好处就是减少了打开网页时请求图片的次数.主要有两种方式,一是做为某一元素的背景图片,二是用img元素的属性. 方法一: 用CSS中元素的background : background-color || background-image || background-

mac 如何安装photoshop cc 2017 ?作为前端切图仔如何利用它来提高我们的工作效率?

作为前端切图仔一名,或多或少要与ps打上交到,你如果是大厂的话,可能不需要,小厂也有不需要的.这里是需要自己抠图的小伙伴的干活. 如何利用ps 提高我们的工作效率: 首先我们需要安装下载 photoshop cc 2014版本以上: window 下可直接在百度软件中心下载(这里我为聪明的朋友贴上地址): http://rj.baidu.com/soft/detail/40767.html 本屌是mac,搞起来就比较费劲,通常来说也是很简单的,但是我安装时候会发生201 错误,这就比较尴尬, 找

2套mysql主从互切脚本

由于mysql主主会出现些问题,比如幻读等,于是主从同步出现主故障时,需主从互切,刚好正在学python就用python写了个主从互切脚本,开始也有用shell写. 主要步骤为: 从上:stop slave flush logs 再利用 show master status\G取二进制日志和位置为变量 主上:stop slave 然后用change master来切到从(利用上面的变量) start slave 然后show slave status\G判断 下面为shell写的主从互切脚本 

【CSS进阶】CSS 颜色体系详解

说到 CSS 颜色,相比大家都不会陌生,本文是我个人对 CSS 颜色体系的一个系统总结与学习,分享给大家. 先用一张图直观的感受一下与 CSS 颜色相关大概覆盖了哪些内容. 接下来的行文内容大概会按照这个顺序进行,内容十分基础,可选择性跳到相应内容处阅读. 色彩关键字 嗯,色彩关键字很好理解.它表示一个具体的颜色值,且它不区分大小写.譬如这样 color:red 的 red 即是一个色彩关键字. 在 CSS3 之前,也就是 CSS 标准 2,一共包含了 17 个基本颜色,分别是: 而到了 CSS

Controllers, Actions 和 Action Results

Controllers, Actions 和 Action Results 原文:Controllers, Actions, and Action Results作者:Steve Smith翻译:姚阿勇(Dr.Yao)校对:许登洋(Seay) Action 和 action result 是开发者使用 ASP.NET MVC 构建应用程序的基础部分. 什么是 Controller 在 ASP.NET MVC 中, 控制器( Controller )用于定义和聚合操作(Action)的一个集合.操

POJ 2663 Tri Tiling

Tri Tiling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10306   Accepted: 5237 Description In how many ways can you tile a 3xn rectangle with 2x1 dominoes? Here is a sample tiling of a 3x12 rectangle.  Input Input consists of several

关于WebGIS的开源解决方案的探讨

1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+WebLogic/Tomcat/APUSIC/WebShpere这样的架构.由于公司从事的是政府项目,甲方单位普遍均采购有以上产品,所以很多时候忽略购买以上产品所需要的费用.并且很多项目的推广,ARCGIS.IBM还有联通或者移动是公司的合作伙伴,涉及到商务问题,对开源的需求并不是很大.再则,政府项目一般侧重的是系统的稳定和易维护,所以他们在基础建设上投资比较大方. 不过随着政府经费的控制趋于严格,管理者水平的提高,对相关软件的

快速傅里叶变换(FFT)算法【详解】

快速傅里叶变换(Fast Fourier Transform)是信号处理与数据分析领域里最重要的算法之一.我打开一本老旧的算法书,欣赏了JW Cooley 和 John Tukey 在1965年的文章中,以看似简单的计算技巧来讲解这个东西. 本文的目标是,深入Cooley-Tukey  FFT 算法,解释作为其根源的“对称性”,并以一些直观的python代码将其理论转变为实际.我希望这次研究能对这个算法的背景原理有更全面的认识. FFT(快速傅里叶变换)本身就是离散傅里叶变换(Discrete

dojo/dom-construct.toDom方法学习笔记

toDom方法用来将html标签字符串转化成DOM节点.1.7之后toDom方法被分配到了dom-construct模块. require(["dojo/dom-construct"], function(domConstruct){ // Take a string and turn it into a DOM node var node = domConstruct.toDom("<div>I'm a Node</div>"); });