189 8069 5689

cocos2d-x的简单绘制-创新互联

绘制一个字符串cocos2d-x的简单绘制
一般使用CCLabelTTF
四步骤:
//1.初始化  参数1:字体内容 参数2:字体格式 参数3:字体大小
CCLabelTTF* pLabel=CCLabelTTF:create("Hello Cocos2d-x","Arial",24);
//2.检测CC_BREAK_IF();
CC_BREAK_IF(!pLabel);
//3.设置坐标点
CCSize size=CCDirector::sharedDirector()->getWinSize();
pLabel->setPosition(ccp(size.width/2,size.height-50));
//4.加入当前图层
this->addChild(pLabel,1);

绘制一张图片

成都创新互联服务项目包括蓬安网站建设、蓬安网站制作、蓬安网页制作以及蓬安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,蓬安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到蓬安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
一般使用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);

创建按钮

CCMenu添加CCMenultem的子类(Menu可以统一管理,方便设置布局);
文本按钮 2种方式 1.CClabelTTF+CCMenultmeLabel 2.CCMenultemFont
图片按钮
CCMenultemlmage

CCLabelTTF+CCMenultmeLabel

//使用CCLabeTTF和CCMenultemLabel创建一个文本按钮
CCLabelTTF* pBtn=CCLabelTTF::create("LabelButton","Arial",20);
//检测
CC_BREAK_IF(!pLabel);
//设置坐标点
//通过pBtn生成一个CCMenultemLabel
CCMenultemLabel* pltemLabel=CCMenultemLabel::create(pBtn);
CC_BREAK_IF(!pltemLabel);
pltemLabel->setPosition(ccp(100,100));
//添加到Menu层
CCMenu* pMenu=CCMenu::create(plitemLable,null);
CC_BREAK_IF(!pMenu);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu,1);

CCMenuItemFont文字按钮

//使用CCMenuItemFont创建一个文本按钮
//第一个参数是字符串 第二个参数 图层,this代表当前图层,第三个参数是一个menu也是一个监听事件 CCMenuItemFont* pltemFont=CCMenuItemFont::create("FontButton",this,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);

CCMenuItemImage图片按钮

//使用图片生成一个按钮  第一个参数按钮未被点击时的图片 第二个参数按钮被点击的图片 第三个参数添加的图层 第四个参数被点击后的响应事件
CCMenuItemImage* pItemImage=CCMenuItemImage::create("CloseNormal.png","CloseSelected.png",this,NULL);
//检测
CC_BREAK_IF(!pItemImage);
//设置坐标
pItemImage->setPosition(300,200);
//添加到Menu层
CCMenu* pMenu=CCMenu::create(pItemFont,null);
CC_BREAK_IF(!pMenu);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu,1);

如何生成一个动画

图片放入项目
1.生成纹理
CCTexture2D* texture2d=CCTextureCache::sharedTextureCache()->addImage("图片路径");
2.截取每帧
CCSpriteFrame* frame=CCSpriteFrame::creat(t,CCRectMake(起点x,起点y,结束x,结束y));
3.所有帧放入
CCArray* array=CCArray::creat(总帧数);
4.生成动画CCAnimation
5.初始化CCSprite并添加到图层
6.使用CCAnimation生成一个CCAnimate(CCAnimation是动画 CCAnimate是动作);
7.CCSprite绑定CCAnimate

上代码-这里说明一下2.0跟2.1的create有差别所以请注意

2.0的代码如下

//读取2D纹理
CCTexture2D* pTexture=CCTextureCache::sharedTextureCache()->addImage("gril.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);
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(CCRepeatForever::create(animate));

2.1.1版本

    //读取2D纹理
      CCTexture2D* pTexture=CCTextureCache::sharedTextureCache()->addImage("smailgirl.png");
      //创建第一帧
      CCSpriteFrame* frame0=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(32*0,48*0,32,48));
      //创建第二帧
      CCSpriteFrame* frame1=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(32*1,48*0,32,48));
      //创建第三帧
      CCSpriteFrame* frame2=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(32*2,48*0,32,48));
      //创建第四帧
      CCSpriteFrame* frame3=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(32*3,48*0,32,48));

      CCArray* pArray=CCArray::createWithCapacity(4);
      pArray->addObject(frame0);
      pArray->addObject(frame1);
      pArray->addObject(frame2);
      pArray->addObject(frame3);

      //创建动画
      CCAnimation* animation=CCAnimation::createWithSpriteFrames(pArray,0.5f);
      CC_BREAK_IF(!animation);

      //初始化并设置一个Sprite

      CCSprite* girlSprite=CCSprite::createWithSpriteFrame(frame0);
      CC_BREAK_IF(!girlSprite);

      //设置坐标点
      girlSprite->setPosition(ccp(size.width/2,size.height/2+100));
      this->addChild(girlSprite,2);

      //使用animation生成animate
      CCAnimate* animate=CCAnimate::create(animation);
      CC_BREAK_IF(!animate);

      girlSprite->runAction(CCRepeatForever::create(animate));
当前标题:cocos2d-x的简单绘制-创新互联
文章路径:http://cdxtjz.cn/article/dcsjdd.html

其他资讯