CCSprite的使用方法大全
一、精灵创建及初始化
1、从图片文件创建:
CCSprite *sprite = [CCSprite spriteWithFile:@"ImageFileName.png"];
默认锚点 ccp(0.5,0.5), 默认位置 ccp(0,0), CCSprite尺寸(contentSize)为图片尺寸
2、从帧缓存创建:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"MineSweeping.plist"];
CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"ImageFileName.png"];
3、初始化及自定义大小
CCSprite *sprite = [CCSprite spriteWithFile:@"ImageFileName.png" rect:CGRectMake(x,y,w,h)];
只显示图片的一部分,大小为 w,h
iOS设备的贴图尺寸必须符合“2的n次方” 规定,所以贴图的宽和高必须是2,4,8,16,32,64,128,256,512,1024. 在第三代设备上可以达到2048像素
二、精灵常用属性及方法:
添加子节点,CCSprite继承自CCNode,可以进行addChild的操作
[self addChild:sprite];
设置CCSprite位置,本地GL坐标系
[s setPosition:ccp(x,y)];
sprite.position=ccp(100,100);//设置精灵左下角坐标是x=100,y=100,本地GL坐标系
缩放 (参数为比例,1保持不变,0.5代表50%,2代表200%)
sprite.scale=2;//放大2倍
旋转
sprite.rotation=90;//旋转90度
设置透明度 (范围0~255)
sprite.opacity=255;//设置透明度为完全不透明(范围0~255)
设置CCSprite锚点,左下角:
sprite.anchorPoint=ccp(0,0);//设置锚点为左下角,默认为ccp(0.5,0.5)中心点
开启CCSprite镜像
[sprite setFlipX:YES];//X轴镜像反转
[sprite setFlipY:YES];//Y轴镜像反转
是否可见
[sprite setVisible:NO];//设置隐藏,默认为可见
设置CCSprite(图片)的颜色
[sprite setColor:ccc3(255, 0, 0)];//设置颜色为红色,三原色
CCSprite的层叠次序 (次序小的在下面,大的在上面)
[sprite zOrder]; //精灵层叠次序即Z轴(小的在下面,大的在上面),注意这是只读属性,不能通过sprite.zOrder=2实现Z轴重设
设置纹理大小
[sprite setTextureRect:CGRectMake(10, 10, 30, 30)];//起始点坐标(做上角坐标系),宽高
三、添加其他精灵
CCSprite继承自CCNode,所以你可以对它进行addChild的操作:
CCSprite *s1 = [CCSprite spriteWithFile:@"Icon.png"];
CCSprite *s2 = [CCSprite spriteWithFile:@"Icon.png"];
[s1 addChild:s2];
四、精灵Z轴重设
[self reorderChild:sprite z:10];//self为CCLayer或者CCNode
五、精灵换图
1、直接利用新建贴图进行更换
//更换贴图
CCTexture2D * texture =[[CCTextureCache sharedTextureCache] addImage: @"Default.png"];//新建贴图
[sprite setTexture:texture];
2、利用帧替换
//加载帧缓存
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"MineSweeping.plist"];
//从帧缓存中取出Default.png
CCSpriteFrame* frame2 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"Default.png"];
[sprite setDisplayFrame:frame2];
六、移除Sprite:
-(void)spriteMoveFinished:(id)sender {
CCSprite *sprite = (CCSprite *)sender;
[self removeChild:sprite cleanup:YES];
}
七、精灵批处理(Sprite Batching):
创建多个CCSprite节点,将它们添加到同一个CCSpriteBatchNode中以提高渲染速度
CCSpriteBatchNode* batch = [CCSpriteBatchNode batchNodeWithFile:@"bullet.png"];
[self addChild:batch];
for (int i = 0; i < 100; i++)
{
CCSprite* sprite = [CCSprite spriteWithFile:@"bullet.png"];
[batch addChild:bullet];
}
CCSprite* sprite = [CCSprite spriteWithFile:@"bullet.png"];
[batch addChild:bullet];
什么时候应该使用CCSpriteBatchNode
当你需要显示两个或者更多个相同的CCSprite节点时,你可以使用CCSpriteBatchNode。组合在一起的CCSprite节点越多,使用 CCSpriteBatchNode得到的效果提升就越大
出处:http://www.cocos2dchina.com/archives/323#more-323
CCSprite的使用方法大全的更多相关文章
- [OC][转]UITableView属性及方法大全
Tip: UITableView属性及方法大全 (摘录地址) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 1 ...
- JS去掉首尾空格 简单方法大全(原生正则jquery)
JS去掉首尾空格 简单方法大全 var osfipin= ' http://www.cnblogs.com/osfipin/ '; //去除首尾空格 osfipin.replace(/(^\s*)|( ...
- js跳转页面方法大全
js跳转页面方法大全<span id="tiao">3</span><a href="javascript:countDown"& ...
- Java获取各种常用时间方法大全
Java获取各种常用时间方法大全 package cc.javaweb.test; Java中文网,Java获取各种时间大全 import java.text.DateFormat; import j ...
- php文件上传大小限制的修改方法大全
php文件上传大小限制的修改方法大全 基本就是修改maxsize选项,当然为了提高上传文件的成功率,还需要设置超时时间等. 文章如下: [php文件上传]php文件上传大小限制修改,phpmyadmi ...
- [Java]读取文件方法大全(转)
[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** ...
- 网站开发进阶(二十六)js刷新页面方法大全
js刷新页面方法大全 在项目开发过程中,需要实现刷新页面.经过学习,发现下面这条语句就可以轻松实现. location.reload(); // 刷新页面 有关刷新页面的其它方法,具体学习内容如下,有 ...
- JavaScript数组方法大全(推荐)
原网址:http://www.jb51.net/article/87930.htm 数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习, ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
随机推荐
- JS使用ActiveXObject读取数据库代码示例(只支持IE)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- LinQ总结
不管是在Mvc还是在别的架构中的项目LinQ和Lambda总是经常会遇到的. 而有些LinQ的语法并不是很长用(我大部分用的是Lambda),所以有必要记录一下万一用到的时候我能很方便的找到我想找到的 ...
- Cygwin + CMake 测试
https://www.cygwin.com/ apt-get for cygwin? wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg in ...
- 配置Tomcat6的管理用户
在Tomcat上发布war之前需要配置一个管理用户以进入上传页面,而配置就是通过修改/usr/local/tomcat6/conf/tomcat-users.xml这个文件进行的.下面是修改后的文字: ...
- LeetCode Dungeon Game
原题链接在这里:https://leetcode.com/problems/dungeon-game/ 这是一道DP题,保存当前格到右下格所需要的最小体力,m*n的dp数组保存. 更新是Math.mi ...
- C# 值类型和引用类型及参数传递
值类型和引用类型: C#数据类型分为两大类:值类型和引用类型. 值类型数据主要有:结构体struct,枚举体enum,布尔型bool,浮点型,整型. 引用类型数据主要有:数组,字符串,接口,委托,类. ...
- oracle ORA-00001:违反唯一约束条件
--获取约束信息 select * from information_schema.constraint_column_usage---可以获取指定数据库中的所有约束的信息以及约束与列的对应关系 go ...
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- Power-BI 关于2016年7月份深圳一手房房价分析报表 腾讯课堂开课啦
上周我们的公开课讲了全国房地产投资开发的情况,通过对时间.区域等多维度的分析,透析了全国房地产开发的投资情况.这周呢,我们就全国一线城市的房价,选取了深圳作为分析对象,对深圳一手房房价进行一 ...
- C# DEV--DateEdit长日期
参考博客: DevExpress的DateEdit设置显示日期和时间 this.datBeginTime.Properties.VistaEditTime = DevExpress.Utils.Def ...