2013年11月23日 星期六

CCSprite 基本應用整理


官方資料中文翻譯

以下是常用使用範例

1.
CCSprite* sprite =[CCSprite spriteWithFile:@"Icon.png"];//初始化
[self addChild:sprite]; //添加入层中
sprite.scale=2;//放大2倍
sprite.rotation=90;//旋转90度
sprite.opacity=255;//设置透明度为完全不透明(范围0~255)
sprite.position=ccp(100,100);//设置精灵中心点坐标是x=100,y=100
[sprite setFlipX:YES];//X轴镜像反转
[sprite setFlipY:YES];//Y轴镜像反转
[sprite setColor:ccc3(255, 0, 0)];//设置颜色为红色

2.
起始設定 z order
//--z值1的精灵
CCSprite* sprite =[CCSprite spriteWithFile:@"Icon.png"];
 [self addChild:sprite z:1]; //添加入层中
sprite.position=ccp(300,200);//设置精灵中心点坐标是x=100,y=100


3.
在 Layer中重設z order
[self reorderChild:sprite z:10];


4. 更換貼圖,使用新圖直接更換
CCSprite*sprite2 =[CCSprite spriteWithFile:@"Icon.png"];
sprite2.position=ccp(350,150);
[self addChild:sprite2]; //更换贴图
CCTexture2D * texture =[[CCTextureCache sharedTextureCache] addImage: @"Default.png"];//新建贴图
[sprite2 setTexture:texture]; 更換




5. 在緩衝模式下的圖片更換
//加载帧缓存,这个testpngs.plist保存了Icon和111两张图,-hd表示高清版本iphone4 [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"testpngs-hd.plist"];
CCSprite*sprite2 =[CCSprite spriteWithSpriteFrameName:@"Icon.png"]; sprite2.position=ccp(350,150);
[self addChild:sprite2];
//更换帧贴图 //从帧缓存中取出111.png
CCSpriteFrame* frame2 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"111.png"];
[sprite2 setDisplayFrame:frame2];  更換





6. 取得 CCSprite 寬跟高
CCSprite *sp = [CCSprite spriteWithFile:@"Icon.png"];
NSLog(@"sp width:%f,heigt,:%f",sp.contentSize.width , sp.contentSize.height);

7. 移除Sprite:
CCSprite *sprite = (CCSprite *)sender; 
[self removeChild:sprite cleanup:YES];





二,常用操作
精灵加载完了就改各种使用了。
1,锚点
锚点就是所有旋转,移动,缩放的参考点。cocos2-x中默认的锚点是中心点。锚点用比例来表示范围为0-1,(0,0)点代表左下点,(1,1)代表右上点。设置的函数为setAnchorPoint(ccp(0.5, 0.5));
2,旋转
setRotation(angle) 其中angle为角度不是弧度。正数为顺时针旋转,负数为逆时针旋转。
3,位置
setPosition(ccp(xPos, yPos)) xPos和yPos为相对于父节点锚点的位置。
4,缩放
setScale(s);   // 整体缩放
setScaleX(s); // 原图片坐标X轴缩放
setScaleY(s); // 原图片坐标Y轴缩放
s为比例,s = 1表示原尺寸。
5,倾斜
setSkewX(s); // 原图片坐标X轴倾斜
setSkewY(s); // 原图片坐标Y轴倾斜
X轴向右为正,Y轴向上为正。
6,透明度
setOpacity(s);
s范围0-255,0完全透明,255完全不透明。
7,可见
setIsVisible(bVisible)
bVisible为bool值true代表可见false代表不可见
8,翻转
setFlipX(bFlip);  // 水平翻转
setFlipY(bFlip);  // 竖直翻转
bFlip 为true,则图片翻转,false不翻转。注意,翻转是针对原图片的操作,水平翻转相当于在图片编辑软件里水平翻转一样。不根据锚点进行翻转。翻转以 后,设置的以前设置的锚点不会随着图片的翻转而改变。比如设置右下角为锚点,则翻转以后,锚点为翻转后的图片的右下角(是不是有点绕?)


最后,初始化完成后,不要忘了使用addChild加入到父节点,否则是不会显示的。

沒有留言: