地球人已阻止不了程序猿学习cocos2d-x个人学习笔记二

来源:互联网 发布:苹果手机被盗抹掉数据 编辑:程序博客网 时间:2024/04/29 15:09

今天一下午没课,就接着开始研究cocos2d-x了,看到了动画部分,看了感觉还比较容易理解的。然后自己动手,发现不是这么回事,大牛门出教程的时候创建动画都是用的CCMutableArray<CCSpriteFrame*>对象,是以前的版本,而我使用的时候,发现这个会报错,google之后发现原来cocos官网已经把这个函数去除掉了。然后就只能自己找了,通过google和网上的一些文档,发现官网虽然剔除了这个类,但是还有一个新的类CCArray来代替他,而且用起来感觉更方便。下面贴出重要代码和demo截图

 

参考的教程为    http://www.cocoachina.com/gamedev/misc/2012/0528/4297.html

转载请注明出处 http://blog.csdn.net/by_mxy/article/details/11096013 

//批次读取图片,将所有要用到的都放到这里面,这个不懂的同学看我的前面的博客 地球已经阻止不了程序猿学习cocos2d-x 第一篇CCSpriteFrameCache *cache =CCSpriteFrameCache::sharedSpriteFrameCache();cache->addSpriteFramesWithFile("game.plist","game.png");//批次读取纹理CCTexture2D* texture = CCTextureCache::sharedTextureCache()->textureForKey("game.png");CCSpriteBatchNode *spriteBatch =CCSpriteBatchNode::batchNodeWithTexture(texture);addChild(spriteBatch);//读取背景CCSprite* backgroundSprite =CCSprite::spriteWithSpriteFrameName("3.png");backgroundSprite->setPosition(ccp(size.width/2,size.height/2));spriteBatch->addChild(backgroundSprite,0);//这个是大头CCSprite* pSprite = CCSprite::spriteWithSpriteFrameName("1.png");CC_BREAK_IF(!pSprite);//CCSize dim = pSprite->getContentSize(); 获取精灵的长宽pSprite->setPosition(ccp(size.width/2.0,size.height/2.0));spriteBatch->addChild(pSprite,0);//动画代码//读取行走图的纹理CCTexture2D *texture2 =CCTextureCache::sharedTextureCache()->addImage("11.png");//通过纹理来取得每个图CCSpriteFrame *frame0 =CCSpriteFrame::frameWithTexture(texture2,CCRectMake(34*0,48*0,34,48));CCSpriteFrame *frame1 =CCSpriteFrame::frameWithTexture(texture2,CCRectMake(34*1,48*0,34,48));CCSpriteFrame *frame2 =CCSpriteFrame::frameWithTexture(texture2,CCRectMake(34*2,48*0,34,48));CCSpriteFrame *frame3 =CCSpriteFrame::frameWithTexture(texture2,CCRectMake(34*3,48*0,34,48));//创建一个数组CCArray* animFrames = CCArray::createWithCapacity(4); //数组中存放几张图animFrames->addObject(frame0);    animFrames->addObject(frame1);animFrames->addObject(frame2);animFrames->addObject(frame3);//创建动画。 0.5秒把图片变换一次CCAnimation* animation = CCAnimation::createWithSpriteFrames(animFrames, 0.5f);//把一个动画放在一个CCSprite中播放,m_pSprite是第一个图像CCSprite *m_pSprite = CCSprite::createWithTexture(texture2,CCRectMake(0,0,34,48));//设置位置m_pSprite->setPosition(ccp(size.width/2.0-80,size.height/2.0-80));this->addChild(m_pSprite,0);m_pSprite->runAction( CCRepeatForever::create( CCAnimate::create(animation) ) );