cocos2d-x的初步学习二十六之连连看二

这篇文章中,我们将完成剩下的部分,点击首界面进入游戏主界面,我们初始化一些界面元素,实现这样的功能,有暂停功能,背景音乐,进度条等,加上一些动画,下面直接上代码,前面都是一些界面的布局和动画等,比较简单。先新建一个GameLayer类

GameLayer.h

//游戏主界面
class GameLayer : public cocos2d::CCLayerColor
{

public:
    
    virtual bool init();

    static cocos2d::CCScene* scene();

    
    CREATE_FUNC(GameLayer);


    
private:
    
    void initData(void);
    void initUI(void);
    void initLoadingUI(void);
    void playSound1(void);
    void playSound2(void);
    void playSound3(void);
    void initDialog(void);
    
    void pausePressed(void);
    
    void dialogAnimaton(void);
    
    void dialogAnimaton2(void);
    
    void dialogAnimaton3(void);
    
    void removeDialogLayer(void);
    
    void loadingAnimation(void);
    
    void removeLoadSprite(void);
    
    void functionSpriteAnimation(cocos2d::CCPoint point1,cocos2d::CCPoint point2);
    
    void functionPauseSpriteAnimation(cocos2d::CCPoint point1,cocos2d::CCPoint point2);
    
    CCLayerColor *dialogLayer;
    
    
    cocos2d::CCString *dialogLevelString;
    cocos2d::CCString *dialogTishiString;
    
    cocos2d::CCSprite *leisureSprite;
    cocos2d::CCSprite *levelSprite;
    
    cocos2d::CCLabelAtlas *levelnumsAtlas;
    
    cocos2d::CCString *_level;
    
    cocos2d::CCSprite *pauseSprite;
    
    cocos2d::CCMenu *pausemenu;
    
    cocos2d::CCSprite *loadSprite;
    
};

GameLayer.cpp

CCScene* GameLayer::scene()
{

    CCScene *scene = CCScene::create();
    
    GameLayer *layer = GameLayer::create();
    
    scene->addChild(layer);
    
    return scene;
    

}


bool GameLayer::init()
{
    
    if ( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)))
    {
        return false;
    }
    
    
    
  
    
    this->initLoadingUI();
    
    //循环播放三首背景音乐
    this->playSound1();
    
    
    return true;

}


void GameLayer::initData()
{

    
    dialogLevelString=CCString::create("第一关");
    dialogTishiString=CCString::create("王子大人");
  //  dialogLevelString->retain();
   // dialogTishiString->retain();
    _level=CCString::create("001");

}

//load界面
void GameLayer::initLoadingUI()
{


    loadSprite=CCSprite::create("loading_logo-hd.png");
    
    loadSprite->setPosition(ccp(wSize.width/2, wSize.height/2));


    this->addChild(loadSprite, 0);
    

    this->loadingAnimation();

}


void GameLayer::initUI()
{

    CCSprite *bgSprite=NULL;
    
    
    if (wSize.width==1136 && wSize.height==640)
    {
        
        
        bgSprite=CCSprite::create("background_568-hd.png");
        
        
        
    }
    else
    {
        
        
        bgSprite=CCSprite::create("background-hd.png");
        
        
        
    }
    
    bgSprite->setPosition(ccp(wSize.width/2, wSize.height/2));
    this->addChild(bgSprite, 0);
    
    
    
    //白云1
    CCSprite *cloudSprite=CCSprite::create("background_cloud_1-hd.png");
    cloudSprite->setAnchorPoint(ccp(0, 0));
    cloudSprite->setPosition(ccp(0, wSize.height-cloudSprite->getContentSize().height));
    this->addChild(cloudSprite, 1);
    
    
    //白云倒影
    CCSprite *daoyingloudSprite=CCSprite::create("background_cloud_1-hd.png");
    daoyingloudSprite->setAnchorPoint(ccp(0, 0));
    //垂直翻转
    daoyingloudSprite->setFlipY(true);
    daoyingloudSprite->setOpacity(40);
    daoyingloudSprite->setPosition(ccp(wSize.width-cloudSprite->getContentSize().width-40, wSize.height-cloudSprite->getContentSize().height-78*2));
    this->addChild(daoyingloudSprite, 1);
    
    //白云2
    CCSprite *cloud2Sprite=CCSprite::create("background_cloud_2-hd.png");
    cloud2Sprite->setAnchorPoint(ccp(0, 0));
    cloud2Sprite->setPosition(ccp(cloudSprite->getPosition().x+cloudSprite->getContentSize().width, wSize.height-cloud2Sprite->getContentSize().height));
    this->addChild(cloud2Sprite, 1);
    
    //岛
    CCSprite *landSprite=CCSprite::create("island-hd.png");
    landSprite->setAnchorPoint(ccp(0, 0));
    landSprite->setPosition(ccp(wSize.width-landSprite->getContentSize().width-20*2, wSize.height-landSprite->getContentSize().height-47*2));
    this->addChild(landSprite, 1);
    
    //倒影
    CCSprite *daoyinglandSprite=CCSprite::create("island-hd.png");
    daoyinglandSprite->setAnchorPoint(ccp(0, 0));
    daoyinglandSprite->setFlipY(true);
    daoyinglandSprite->setOpacity(40);
    daoyinglandSprite->setPosition(ccp(wSize.width-landSprite->getContentSize().width-20*2, wSize.height-landSprite->getContentSize().height-78*2));
    this->addChild(daoyinglandSprite, 1);

    this->initDialog();
    
    //图标1
    leisureSprite=CCSprite::create("game_leisure_logo-hd.png");
    leisureSprite->setPosition(ccp(leisureSprite->getContentSize().width/2+10*2, wSize.height+leisureSprite->getContentSize().height/2));
    
    this->addChild(leisureSprite, 1);
    
    //等级图标
    levelSprite=CCSprite::create("orange_font_level-hd.png");
    levelSprite->setPosition(ccp(leisureSprite->getContentSize().width/2+8*2, 255*2));
    
    this->addChild(levelSprite, 1);
    levelSprite->setVisible(false);
    
    
    //等级sprite
    levelnumsAtlas=CCLabelAtlas::create(_level->getCString(), "small_blue_number_level-hd.png",16, 20, '0');
    
    levelnumsAtlas->setScale(1.2);
    levelnumsAtlas->setPosition(ccp(leisureSprite->getContentSize().width/2-6*2,levelSprite->getPosition().y-20*2));
    levelnumsAtlas->setVisible(false);
    
    this->addChild(levelnumsAtlas, 1);
    
    //暂停菜单
    pauseSprite=CCSprite::create("button_pause-hd.png");
    
    CCSprite *pauseSprite_s=CCSprite::create("button_pause-hd.png");
    
    CCMenuItemSprite *item=CCMenuItemSprite::create(pauseSprite, pauseSprite_s, this, menu_selector(GameLayer::pausePressed));
    
    pausemenu=CCMenu::create(item,NULL);
    
    item->setAnchorPoint(ccp(0.5, 0.5));
    pausemenu->setPosition(ccp(pauseSprite->getContentSize().width/2+10*2,-pauseSprite->getContentSize().height/2));

    
    this->addChild(pausemenu, 1);
    
    this->dialogAnimaton();
    
    
}


//初始化弹出框
void GameLayer::initDialog()
{

    //弹出框
    dialogLayer=CCLayerColor::create(ccc4(0, 0, 0, 0), 333*2, 235*2);
    
    dialogLayer->setPosition(ccp(wSize.width/2-dialogLayer->getContentSize().width/2, wSize.height/2-dialogLayer->getContentSize().height/2));
    
    dialogLayer->setScale(0.9);
    this->addChild(dialogLayer, 1);
    
    
    CCSprite *dialogSprite=CCSprite::create("game_dialog-hd.png");
    dialogSprite->setAnchorPoint(ccp(0, 0));
    dialogSprite->setPosition(ccp(0, 0));
    
    dialogLayer->addChild(dialogSprite, 1);
    
    //标题1
    CCLabelTTF *dialoglevel=CCLabelTTF::create(dialogLevelString->getCString(), "Marker Felt", 35);
    dialoglevel->setAnchorPoint(ccp(0, 0));
    dialoglevel->setPosition(ccp(dialogLayer->getContentSize().width/2-dialoglevel->getContentSize().width/2, dialogLayer->getContentSize().height/2-dialoglevel->getContentSize().height/2+30*2));
    dialoglevel->setColor(ccWHITE);
    dialogLayer->addChild(dialoglevel, 1, 310);

    //标题2
    CCLabelTTF *dialogtishi=CCLabelTTF::create(dialogTishiString->getCString(), "Marker Felt", 35);
    dialogtishi->setAnchorPoint(ccp(0, 0));
    dialogtishi->setPosition(ccp(dialogLayer->getContentSize().width/2-dialogtishi->getContentSize().width/2, dialogLayer->getContentSize().height/2-dialogtishi->getContentSize().height/2-15*2));
    dialogtishi->setColor(ccWHITE);
    dialogLayer->addChild(dialogtishi, 1, 311);

    
    

}


//load界面动画
void GameLayer::loadingAnimation()
{
    
    CCFadeOut *ac1=CCFadeOut::create(3.0f);
    
    CCSequence *seq=CCSequence::create(ac1,CCCallFunc::create(this, callfunc_selector(GameLayer::removeLoadSprite)),NULL);

    
    loadSprite->runAction(seq);



}

//移除load界面
void GameLayer::removeLoadSprite()
{

    loadSprite->removeFromParentAndCleanup(true);
    
    this->initData();
    this->initUI();


}


void GameLayer::playSound1()
{

    SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
    
    SimpleAudioEngine::sharedEngine()->playBackgroundMusic("Back2new.mp3", false);
    

    this->scheduleOnce(schedule_selector(GameLayer::playSound2), 60);


    
}


void GameLayer::playSound2()
{


    SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
    
    SimpleAudioEngine::sharedEngine()->playBackgroundMusic("Back3new.mp3", false);


    this->scheduleOnce(schedule_selector(GameLayer::playSound3), 62);
    

    

}

void GameLayer::playSound3()
{
    
    
    SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
    
    SimpleAudioEngine::sharedEngine()->playBackgroundMusic("MainMenu.mp3", false);
    
    
    this->scheduleOnce(schedule_selector(GameLayer::playSound1), 65);
    
    
    
}


//暂停
void GameLayer::pausePressed()
{

    
    
    
    
    


}


//弹出框动画
void GameLayer::dialogAnimaton()
{


    SimpleAudioEngine::sharedEngine()->playEffect("19.wav");
    
    CCShow *ac1=CCShow::create();
    CCScaleTo *ac2=CCScaleTo::create(0.1f, 1.0);
    CCSpawn *spwan=CCSpawn::create(ac1,ac2,NULL);
    CCSequence *seq=CCSequence::create(spwan,CCCallFunc::create(this, callfunc_selector(GameLayer::dialogAnimaton2)),NULL);

    
    dialogLayer->runAction(seq);
    

}

void GameLayer::dialogAnimaton2()
{

    
    CCScaleTo *ac1=CCScaleTo::create(0.1f, 0.9);

    
    CCSequence *seq=CCSequence::create(ac1,CCCallFunc::create(this, callfunc_selector(GameLayer::dialogAnimaton3)),NULL);


    dialogLayer->runAction(seq);


}

void GameLayer::dialogAnimaton3()
{
    

    CCScaleTo *ac1=CCScaleTo::create(0.1f, 1.0);
    CCScaleTo *ac2=CCScaleTo::create(0.2f, 1.2);
    CCFadeTo *ac3=CCFadeTo::create(0.2f, 0);
    CCSpawn *spwan=CCSpawn::create(ac2,ac3,NULL);
    
    
    CCSequence *seq=CCSequence::create(ac1,CCDelayTime::create(1.5f),spwan,CCCallFunc::create(this, callfunc_selector(GameLayer::removeDialogLayer)),NULL);
    
    
    dialogLayer->runAction(seq);
    
    
    
}


//移除弹出框
void GameLayer::removeDialogLayer()
{


    SimpleAudioEngine::sharedEngine()->playEffect("16.wav");


    dialogLayer->removeFromParentAndCleanup(true);
    
    levelSprite->setVisible(true);
    levelnumsAtlas->setVisible(true);
    
    
    
    this->functionSpriteAnimation(CCPoint(leisureSprite->getPosition().x, wSize.height-leisureSprite->getContentSize().height/2-15*2) ,CCPoint(leisureSprite->getPosition().x, wSize.height-leisureSprite->getContentSize().height/2-10*2));
    
    this->functionPauseSpriteAnimation(CCPoint(pausemenu->getPosition().x, 34*2), CCPoint(pausemenu->getPosition().x, 29*2));
    
    
    
    
}


//移动动画
void GameLayer::functionSpriteAnimation(cocos2d::CCPoint point1, cocos2d::CCPoint point2)
{


    CCMoveTo *ac1=CCMoveTo::create(0.15, point1);
    CCMoveTo *ac2=CCMoveTo::create(0.15, point2);
    

    CCSequence *seq=CCSequence::create(ac1,ac2,NULL);
    
    leisureSprite->runAction(seq);

}

////移动动画
void GameLayer::functionPauseSpriteAnimation(cocos2d::CCPoint point1, cocos2d::CCPoint point2)
{



    CCMoveTo *ac1=CCMoveTo::create(0.15, point1);
    CCMoveTo *ac2=CCMoveTo::create(0.15, point2);
    
    
    CCSequence *seq=CCSequence::create(ac1,ac2,NULL);
    
    
    pausemenu->runAction(seq);

}


场景切换动画

//开始游戏
void HelloWorld::playBack()
{

    SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
    
    CCScene *scene=GameLayer::scene();
    
    //旋转动画
    CCDirector::sharedDirector()->replaceScene(CCTransitionRotoZoom::create(1.2f, scene));
    


}



以前就是游戏主界面的一些元素布局,跳转进入游戏界面,先出现一个loading界面,加个渐隐的动画,消失后弹出一个关卡提示框,。。。。

效果如下:

cocos2d-x的初步学习二十六之连连看二_第1张图片


cocos2d-x的初步学习二十六之连连看二_第2张图片


cocos2d-x的初步学习二十六之连连看二_第3张图片


~~~~~~~~~接下来,我们加入一个时间进度条,O(∩_∩)O~~~~~~~

在函数initUI()中加入

//进度条背景
    progressbgSprite=CCSprite::create("time_slot-hd.png");
    
    progressbgSprite->setAnchorPoint(ccp(0, 0));
    progressbgSprite->setPosition(ccp(130, wSize.height-55));
    
    this->addChild(progressbgSprite, 1);
    
    progressbgSprite->setVisible(false);
    
    
    CCSprite *progressSprite=CCSprite::create("time_bars-hd.png");
    //进度条
    progress=CCProgressTimer::create(progressSprite);
    progress->setAnchorPoint(ccp(0, 0));
    progress->setType(kCCProgressTimerTypeBar);
    
    progress->setPosition(ccp(130, wSize.height-55));
    
    //进度动画运动方向,可以多试几个值,看看效果
    progress->setMidpoint(ccp(0, 0));
    
    //进度条宽高变化
    progress->setBarChangeRate(ccp(1, 0));
    
    progress->setPercentage(100);
    
    this->addChild(progress, 1);
    
    progress->setVisible(false);
    
    
    numsTTF=CCLabelTTF::create("100", "Thonburi", 24);
    
    numsTTF->setAnchorPoint(ccp(0, 0));
    numsTTF->setPosition(ccp(400, wSize.height-55));
    numsTTF->setColor(ccBLACK);
    
    this->addChild(numsTTF, 1);
    
    numsTTF->setVisible(false);

定义刷新函数

this->schedule(schedule_selector(GameLayer::update), 1);

//刷新
void GameLayer::update()
{

    int cu=progress->getPercentage();
    
    cu=cu-1.0f;
    
    progress->setPercentage(cu);
    
    CCString *str = CCString::createWithFormat("%d",cu);
    
    numsTTF->setString(str->getCString());

    
}

一秒钟刷新一次

效果如下

cocos2d-x的初步学习二十六之连连看二_第4张图片


注意,在我现在用的cocos2dx版本中,在ios下,CCLabelTTF没显示出来,如果你升级到2.1.4以上,就没问题了,如果你不想升级,那么网上的解决方法为修改底层源码:

修改CCImage.mm的

static bool _initWithString(constchar * pText, cocos2d::CCImage::ETextAlign eAlign,const char * pFontName,intnSize, tImageInfo* pInfo)


const int _width  = dim.width;  //Add  
const int _height = dim.height;  //Add  
  
unsigned char* data = new unsigned char[(int)(dim.width * dim.height * 4)];  
memset(data, 0, (int)(_width * _height * 4));   //Modify  
  
// draw text  
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();      
CGContextRef context = CGBitmapContextCreate(data, _width, _height, 8, _width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);  
CGColorSpaceRelease(colorSpace);                //Modify  
  
if (! context)  
{  
    delete[] data;  
    break;  
}  

~~~~~~~~~~~~~~~~接下来我们加入一个暂停的界面,并加入一些动画效果

我们新建一个暂停界面的类,PauseLayer,

PauseLayer.h

class PauseLayer :public cocos2d::CCLayerColor
{


    
public:
    
    virtual bool init();
    
    
    CREATE_FUNC(PauseLayer);
    
    cocos2d::CCSprite *pausebgSprite;

    cocos2d::CCMenuItemSprite *backitem;
    cocos2d::CCMenuItemSprite *startitem;
    
    
    
    void restartPressed(void);

    void helpPressed(void);

    void musicPressed(void);
    
    
    void soundPressed(void);

    
private:
    
    void initUI(void);
    

    



};

PauseLayer.cpp

bool PauseLayer::init()
{
    
    if ( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 0),343,343))
    {
        return false;
    }
    
    
    
    this->initUI();

    
    
    return true;
    
}


//UI界面初始化
void PauseLayer::initUI()
{

    pausebgSprite=CCSprite::create("game_menu_background-hd.png");
    
    pausebgSprite->setPosition(ccp(pausebgSprite->getContentSize().width/2, pausebgSprite->getContentSize().height/2));
    
    
    this->addChild(pausebgSprite, 1);
    
    
    //返回
    CCSprite *backSprite=CCSprite::create("button_back-hd.png");
    
    CCSprite *backSprite_s=CCSprite::create("button_back-hd.png");
    
    backitem=CCMenuItemSprite::create(backSprite, backSprite_s);
    
    CCMenu *backmenu=CCMenu::create(backitem,NULL);
    
    backitem->setAnchorPoint(ccp(0, 0));
    
    backmenu->setPosition(ccp(71*2,3*2));
    
    this->addChild(backmenu, 1);
    
    
    //继续
    CCSprite *startSprite=CCSprite::create("button_start.png");
    
    CCSprite *startSprite_s=CCSprite::create("button_start.png");
    
    startitem=CCMenuItemSprite::create(startSprite, startSprite_s);
    
    CCMenu *startmenu=CCMenu::create(startitem,NULL);
    
    startmenu->setPosition(ccp(pausebgSprite->getContentSize().width/2, pausebgSprite->getContentSize().height/2));
    
    this->addChild(startmenu, 1);

    
    
    //重新开始
    CCSprite *restartSprite=CCSprite::create("button_restart.png");
    
    CCSprite *restartSprite_s=CCSprite::create("button_restart.png");
    
    CCMenuItemSprite *restartitem=CCMenuItemSprite::create(restartSprite, restartSprite_s, this, menu_selector(PauseLayer::restartPressed));
    
    CCMenu *restartmenu=CCMenu::create(restartitem,NULL);
    
    restartitem->setAnchorPoint(ccp(0, 0));
    
    restartmenu->setPosition(ccp(71*2,129*2));
    
    this->addChild(restartmenu, 1);

    //帮助
    CCSprite *helpSprite=CCSprite::create("button_help-hd.png");
    
    CCSprite *helpSprite_s=CCSprite::create("button_help-hd.png");
    
    CCMenuItemSprite *helpitem=CCMenuItemSprite::create(helpSprite, helpSprite_s, this, menu_selector(PauseLayer::helpPressed));
    
    CCMenu *helpmenu=CCMenu::create(helpitem,NULL);
    
    helpitem->setAnchorPoint(ccp(0, 0));
    
    helpmenu->setPosition(ccp(114*2,21*2));
    
    this->addChild(helpmenu, 1);

    
    //音乐
    CCSprite *musicSprite=CCSprite::create("button_music-hd.png");
    
    CCSprite *musicSprite_s=CCSprite::create("button_music-hd.png");
    
    CCMenuItemSprite *musicitem=CCMenuItemSprite::create(musicSprite, musicSprite_s, this, menu_selector(PauseLayer::musicPressed));
    
    CCMenu *musicmenu=CCMenu::create(musicitem,NULL);
    
    musicitem->setAnchorPoint(ccp(0, 0));
    
    musicmenu->setPosition(ccp(127*2,66*2));
    
    this->addChild(musicmenu, 1);


    //音效
    CCSprite *soundSprite=CCSprite::create("button_sound-hd.png");
    
    CCSprite *soundSprite_s=CCSprite::create("button_sound-hd.png");
    
    CCMenuItemSprite *sounditem=CCMenuItemSprite::create(soundSprite, soundSprite_s, this, menu_selector(PauseLayer::soundPressed));
    CCMenu *soundmenu=CCMenu::create(sounditem,NULL);
    
    sounditem->setAnchorPoint(ccp(0, 0));
    
    soundmenu->setPosition(ccp(114*2,111*2));
    
    this->addChild(soundmenu, 1);


}





void PauseLayer::restartPressed()
{






}

void PauseLayer::helpPressed()
{






}

void PauseLayer::musicPressed()
{





}


void PauseLayer::soundPressed()
{






}

然后在GameLayer类中加入我们的暂停界面,

GameLayer.h

void backPressed(void);
    
    void startPressed(void);
    
    void gamePause(void);

    void gameRestart(void);
    
    PauseLayer *pauseLayer;

GameLayer.cpp

在函数initUI中加入

  //暂停界面
    pauseLayer=PauseLayer::create();
    
    pauseLayer->setPosition(ccp(-pauseLayer->getContentSize().width, wSize.height/2-pauseLayer->getContentSize().height/2));
    this->addChild(pauseLayer, 1);
    
    //设置监听事件
    pauseLayer->backitem->setTarget(this, menu_selector(GameLayer::backPressed));
    pauseLayer->startitem->setTarget(this, menu_selector(GameLayer::startPressed));
点击暂停按钮
//暂停
void GameLayer::pausePressed()
{

    
    
   // CCDirector::sharedDirector()->pause();
    
    SimpleAudioEngine::sharedEngine()->playEffect("3.wav");
    
    this->functionSpriteAnimation(CCPoint(leisureSprite->getContentSize().width/2+10*2, wSize.height+leisureSprite->getContentSize().height/2+5*2) ,CCPoint(leisureSprite->getContentSize().width/2+10*2, wSize.height+leisureSprite->getContentSize().height/2));
    
    this->functionPauseSpriteAnimation(CCPoint(pausemenu->getPosition().x, -pauseSprite->getContentSize().height/2-5*2), CCPoint(pausemenu->getPosition().x, -pauseSprite->getContentSize().height/2));
    
    levelSprite->setVisible(false);
    levelnumsAtlas->setVisible(false);
    progressbgSprite->setVisible(false);
    progress->setVisible(false);
    numsTTF->setVisible(false);

    CCMoveTo *ac1=CCMoveTo::create(0.15, CCPoint(-44*2, pauseLayer->getPosition().y));
    CCMoveTo *ac2=CCMoveTo::create(0.15, CCPoint(-100, pauseLayer->getPosition().y));
    
    
    CCSequence *seq=CCSequence::create(ac1,ac2,CCCallFunc::create(this, callfunc_selector(GameLayer::gamePause)),NULL);
    
    
    pauseLayer->runAction(seq);

    
    
    
}


//游戏暂停
void GameLayer::gamePause()
{


    CCDirector::sharedDirector()->pause();



}

//游戏恢复
void GameLayer::gameRestart()
{

    CCDirector::sharedDirector()->resume();
    


}

点击返回按钮,返回到首界面

//返回
void GameLayer::backPressed()
{

    this->gameRestart();

    SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
    SimpleAudioEngine::sharedEngine()->playEffect("2.wav");
    
    CCScene *scene=HelloWorld::scene();
    
    //旋转动画
    CCDirector::sharedDirector()->replaceScene(CCTransitionFlipX::create(1.2f, scene));


}


//继续
void GameLayer::startPressed()
{
    
    
    this->gameRestart();
    
    
    CCMoveTo *ac1=CCMoveTo::create(0.15, CCPoint(-100+4, wSize.height/2-pauseLayer->getContentSize().height/2));
    CCMoveTo *ac2=CCMoveTo::create(0.15, CCPoint(-pauseLayer->getContentSize().width, wSize.height/2-pauseLayer->getContentSize().height/2));
    
    
    CCSequence *seq=CCSequence::create(ac1,ac2,NULL);
    http://digi.tech.qq.com/zt2013/newipad/live.htm
    
    pauseLayer->runAction(seq);
    
    levelSprite->setVisible(true);
    levelnumsAtlas->setVisible(true);
    
    progressbgSprite->setVisible(true);
    progress->setVisible(true);
    numsTTF->setVisible(true);
    
    
    this->functionSpriteAnimation(CCPoint(leisureSprite->getPosition().x, wSize.height-leisureSprite->getContentSize().height/2-15*2) ,CCPoint(leisureSprite->getPosition().x, wSize.height-leisureSprite->getContentSize().height/2-10*2));
    
    this->functionPauseSpriteAnimation(CCPoint(pausemenu->getPosition().x, 34*2), CCPoint(pausemenu->getPosition().x, 29*2));
    
    
    
}


OK。。。。。。。代码不是很复杂,都是一些简单的逻辑,所以不具体细说,大家可以看代码

效果图如下:


cocos2d-x的初步学习二十六之连连看二_第5张图片

cocos2d-x的初步学习二十六之连连看二_第6张图片


@@@@@@@@@@@@

下篇文章会将重点讲游戏逻辑。。。。。。。







你可能感兴趣的:(游戏,cocos2dx,cocos2d-x,连连看,游戏界面)