[windows+cocos2dx]CCSprite精灵类

简介: 序言回顾cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了,一直在搞Unity3d,现在还是就之前所学温故温故,但不再用Xcode来写,用常用的Windows+VS2012做为开发环境来回顾cocos2dx。

序言

回顾cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了,一直在搞Unity3d,现在还是就之前所学温故温故,但不再用Xcode来写,用常用的Windows+VS2012做为开发环境来回顾cocos2dx。从CCSprite精灵类开始回顾起。

CCSprite多种创建方式

创建CCSprite精灵类有好多中方式,好多构造函数,这里列举集中创建形式,包括要显示某个部分和缓存帧,2D贴图创建和普通创建等。
        if ( !CCLayer::init() )
   	{
      	      return false;
        }
    

	CCSize size = CCDirector::sharedDirector()->getWinSize();
	//加载精灵
	//方式一
	CCSprite *sprite = CCSprite::create("icon.png");  //123px*123px的图片
	sprite->setPosition(ccp(size.width*0.2,size.height*0.7));
	this->addChild(sprite);

	//方式二
	//设置显示区域
	CCSprite *sprite1 = CCSprite::create("icon.png",CCRect(0,0,60,60)); //只取60px*60px的图片
	sprite1->setPosition(ccp(size.width*0.5,size.height*0.7));
	this->addChild(sprite1);

	//方式三
	//创建2d文理来创建精灵
	CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("icon.png");
	CCSprite *sprite2 = CCSprite::createWithTexture(texture);
	sprite2->setPosition(ccp(size.width*0.8,size.height*0.7));
	this->addChild(sprite2);

	//方式四
	//还是设置显示区域
	CCSprite *sprite3 = CCSprite::createWithTexture(texture,CCRect(61.5,61.5,61.5,61.5));
	sprite3->setPosition(ccp(size.width*0.2,size.height*0.3));
	this->addChild(sprite3);

        //方式五
	//缓存帧
	CCSpriteFrame *frame = CCSpriteFrame::create("icon.png",CCRect(0,0,61.5,61.5));
	CCSprite *sprite4 = CCSprite::createWithSpriteFrame(frame);
	sprite4->setPosition(ccp(size.width*0.5,size.height*0.3));
	this->addChild(sprite4);

	//方式六
	/*CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("img.plist");
	CCSprite *sprite5 = CCSprite::createWithSpriteFrameName("icon.png");
	sprite5->setPosition(ccp(size.width*0.7,size.height*0.3));
	this->addChild(sprite5);*/






CCSprite缩小和放大

CCSprite->SetScale():参数介于0~无穷,就可实现精灵的放大和缩小功能。

        //精灵的缩小和放大
	CCSprite *spriteS= CCSprite::create("icon.png");  //123px*123px的图片
	spriteS->setPosition(ccp(size.width*0.2,size.height*0.5));
	spriteS->setScale(0.5f);
	this->addChild(spriteS);

	CCSprite *spriteM = CCSprite::create("icon.png");  //123px*123px的图片
	spriteM->setPosition(ccp(size.width*0.7,size.height*0.5));
	spriteM->setScale(1.5f);
	this->addChild(spriteM);



SetScaleX,SetScaleY是只针对X、Y方向的缩放
例如:sprite->setScaleX(1.5f);              sprite2->setScaleY(1.5f);



CCSprite旋转

CCSprite->setRotation();参数是度数,正数代表顺时针旋转多少度,负数代表逆时针旋转多少度。
        //精灵的旋转
	CCSprite *spriteL= CCSprite::create("icon.png");  //123px*123px的图片
	spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
	spriteL->setRotation(30.0f);
	this->addChild(spriteL);

	CCSprite *spriteR= CCSprite::create("icon.png");  //123px*123px的图片
	spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
	spriteR->setRotation(-30.0f);
	this->addChild(spriteR);





CCSprite倾斜

CCSprite->setSkewY();参数是度数,正数代表顺时针倾斜多少度,负数代表逆时针倾斜多少度。
//精灵的倾斜
CCSprite *spriteL= CCSprite::create("icon.png");  //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setSkewY(30.0f);
this->addChild(spriteL);

CCSprite *spriteR= CCSprite::create("icon.png");  //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
spriteR->setSkewY(-30.0f);
this->addChild(spriteR);




CCSprite设置不可见和变色

//精灵可见和变色
//设置不可见
CCSprite *spriteL= CCSprite::create("icon.png");  //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setVisible(false);
this->addChild(spriteL);
//变成红色
CCSprite *spriteR= CCSprite::create("icon.png");  //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
spriteR->setColor(ccc3(255,0,0));
this->addChild(spriteR);




CCSprite设置透明度

//设置透明度
CCSprite *spriteL= CCSprite::create("icon.png");  //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setOpacity(100);//0~255
this->addChild(spriteL);

CCSprite *spriteR= CCSprite::create("icon.png");  //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.7,size.height*0.5));
spriteR->setOpacity(230);//0~255
this->addChild(spriteR);



CCSprite替换图片

//替换图片
CCSprite *spriteR= CCSprite::create("icon.png");  //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.7,size.height*0.5));
spriteR->setOpacity(230);//0~255
this->addChild(spriteR);
spriteR->setTexture(CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png"));





欢迎关注我的围脖

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422      cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================












相关文章
|
存储 程序员 编译器
windows下的串口编程,串口操作类封装
windows下的串口编程,串口操作类封装
|
C++ Windows
C++ Windows窗口程序:子窗口控件之按钮类button
C++ Windows窗口程序:子窗口控件之按钮类button
860 0
|
JavaScript API Windows
一个操作windows窗口的类“clsWindow”,使用非常方便!含源码 V2.2
一个操作windows窗口的类“clsWindow”,使用非常方便!含源码 V2.2
296 0
一个操作windows窗口的类“clsWindow”,使用非常方便!含源码 V2.2
|
Java Linux iOS开发
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
143 0
|
存储 安全 程序员
Windows——CArchive类
Windows——CArchive类
145 0
|
网络协议 Windows
Windows套接字CAsyncSocket类的使用
Windows套接字CAsyncSocket类的使用
184 0
|
Java Linux iOS开发
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
268 0
|
SQL 缓存 数据库连接
艾伟:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写
本系列文章导航 基于.NET平台的Windows编程实战(一)——前言 基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计 基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写 基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现 基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 大家都知道本系统的正常运行少不了数据库操作这一块,且其在本系统中具有决定性作用,可以说没有它的操作系统将无法运行,故在本节课程中,专门把针对数据库的操作类拿出来讲讲,以便大家更加容易理解后面的课程。
986 0
|
SQL 缓存 数据库连接
艾伟_转载:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写
本系列文章导航 基于.NET平台的Windows编程实战(一)——前言 基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计 基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写 基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现 基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 大家都知道本系统的正常运行少不了数据库操作这一块,且其在本系统中具有决定性作用,可以说没有它的操作系统将无法运行,故在本节课程中,专门把针对数据库的操作类拿出来讲讲,以便大家更加容易理解后面的课程。
902 0
|
Windows Swift
在windows上操练swift语言:类和结构体
条件所限,只能在WINDOWS上学习SWIFT的基本语法。 还有,有swift for windows 1.9帮忙, 看书没那么燥。。。。
2654 0