读书人

cocos2d-x容易的绘制

发布时间: 2013-10-14 12:54:46 作者: rapoo

cocos2d-x简单的绘制

1. 如何绘制一个字符串

一般使用CCLabelTTF

四个步骤:

1)初始化

CCLabelTTF *pLabel = CCLabelTTF::create(“Hello Cocos2d-x”, “Arial” , 24);

参数1:字符串内容

参数2:字体

参数3:字符串的大小

2)检查CC_BREAK_IF();

CC_BREAK_IF(!pLabel); //判断指针pLabel 是否创建成功,否则break

3)设置坐标点

CCSize size = CCDirector::SharedDirector()->getWinSize();

pLabel->setPosition(ccp(size.width/2 , size.height-50));

注:ccp为一个点的类

补充:CCDirector 导演类,整体框架类,导演类为一个单例类

SharedDirector() 获得导演类的实例

导演类中一些函数可以获得设置窗体的一些信息

4)加入当前图层

this->addChild(pLabel, 1);

注:参数2为第几图层,从0开始,数字越小越底层图层

2. 如何绘制一张图片

一般使用CCSprite (精灵)

四个步骤:

1) 初始化

CCSprite *pSprite = CCSprite::create(“HelloWorld.png”);

2) 检查CC_BREAK_IF();

CC_BREAK_IF(!pSprite);

3) 设置坐标点

CCSize size =CCDirector::sharedDirector()->getWinSize();

pSprite->setPosition(ccp(size.width/2, size.height/2));

4) 加入当前图层

this->addChild(pSprite, 1);

3. 如何创建按钮

CCMenu添加CCMenuItem的子类(Menu可以统一管理,方便设置布局)

1)文本按钮

CCLabelTTF +CCMenuItemLabel

//使用CCLabelTTF和CCMenuItemLabel创建一个文本按钮

CCLabelTTF *pBtn= CCLabelTTF::create(“LabelButton” , “Arial” , 20);

//检查

CC_BREAK_IF(!pBtn);

//设置坐标点

//通过pBtn生成一个CCMenuItemLabel

CCMenuItemLabel* pItemLabel = CCMenuItemLabel::create(pBtn);

CC_BREAK_IF(!pItemLabel);

pItemLabel->setPosition(ccp(100,100));

//添加到Menu层

CCMenu *pMenu =CCMenu::create(pItemLabel,NULL);

CC_BREAK_IF(!pMenu);

pMenu->setPosition(CCPointZero);

this->addChild(pMenu, 1);

CCMenuItemFont

//使用CCMenuItemFont创建一个文本按钮

CCMenuItemFont*pItemFont = CCMenuItemFont::create(“FontButton” , “this” , NULL);

//参数2:当前的图层,参数3:NULL表示按下不做任何操作

//检查

CC_BREAK_IF(!pItemFont);

//设置坐标

pItemFont->setPosition(300,300);

//添加到Menu层

CCMenu *pMenu =CCMenu::create(pItemFont , NULL);

CC_BREAK_IF(!pMenu);

pMenu->setPosition(CCPointZero);

this->addChild(pMenu, 1);

2)图片按钮

CCMenuItemImage 图片按钮

//使用图片生成一个按钮

CCMenuItemImage *pItemImage =CCMenuItemImage::create(

“CloseNormal.png”,

“CloseSelected.png”,this,NULL);

//参数1:未选中的图片的地址,参数2:选中后的图片的地址

//检查

CC_BREAK_IF(!pItemImage);

//设置坐标

pItemImage->setPosition(300,200);

//添加到Menu层

CCMenu *pMenu =CCMenu::create(pItemImage , NULL);

CC_BREAK_IF(!pMenu);

pMenu->setPosition(CCPointZero);

this->addChild(pMenu, 1);

4. 如何生成一个动画

图片放入项目

1. 生成纹理CCTexture2D *t=

CCTextureCache::SharedTextureCache()->addImage(“图片路径”);

2. 截取每帧 CCSpriteFrame *f=

CCSpriteFrame::creat(t, CCRectMake(起点x , 起点y , 宽度 , 高度));

3. 所有帧放入CCArray * array = CCArray::creat(总帧数);

4. 生成动画 CCAnimation

5. 初始化CCSprite并添加到图层

6. 使用CCAnimation生成一个CCAnimate动作

7. CCSprite绑定CCAnimate

代码实例:

//读取2d纹理

CCTexture2D * pTexture =CCTextureCache::sharedTextureCache()->addImage(“girl.png”);

//创建第一帧

CCSpriteFrame *frame0 =CCSpriteFrame::create(pTexture , CCRectMake(32*0,48*0,32,48));

//创建第二帧

CCSpriteFrame *frame1 =CCSpriteFrame::create(pTexture , CCRectMake(32*1,48*0,32, 48));

//创建第三帧

CCSpriteFrame *frame2 =CCSpriteFrame::create(pTexture , CCRectMake(32*2,48*0,32, 48));

//创建第四帧

CCSpriteFrame *frame3 =CCSpriteFrame::create(pTexture , CCRectMake(32*3,48*0,32, 48));

CCArray *pArray = CCArray::create(4);

pArray->addObject(frame0);

pArray->addObject(frame1);

pArray->addObject(frame2);

pArray->addObject(frame3);

//创建动画

CCAnimation * animation =CCAnimation::create(pArray,0.5f); //0.5f为每附图跳转的时间间//隔

CC_BREAK_IF(!animation);

//初始化并设置一个Sprite

CCSprite *girlSprite = CCSprite::create(frame0); //设置精灵默认开始的动作

CC_BREAK_IF(!girlSprite);

//设置坐标位置

girlSprite->setPosition(ccp(size.width/2 ,size.height/2+100));

this->addChild(girlSprite,2);

//使用animation生成animate

CCAnimate * animate =CCAnimate::actionWithAnimation(animation); //循环播放设置

CC_BREAK_IF(!animate);

girlSprite->runAction(CCRepeatPorever::create(animate));

读书人网 >操作系统

热点推荐