使用CoCos2dx-3.4开发一套可以商用的跑酷游戏 之三 初始界面的编写(2)

本来想一篇写完,但是看来不行,重新开一个2

上次讲了有一个跳转管理类的东西,在这里我将其代码贴出来,其中一个,大家可以看看是如何做的。


void GameProjectMange::createScene()
{
 //创建CCScene(场景)对象
 
 loadScene = CCScene::create();
 //创建一个布景对象(PlaneLayer类的对象)
 LoadLayer *loadlayer = LoadLayer::create();
 loadlayer->gpm = this;
 //向场景中添加布景
 loadScene->addChild(loadlayer);
 
}

void GameProjectMange::goMenu()
{
 CCScene *pScene = CCScene::create();
 pScene->addChild(MenuLayer::create());
 CCTransitionScene* ccts=CCTransitionFadeTR::create(1.0f,pScene);
 CCDirector::sharedDirector()->replaceScene(ccts);

}

这里我们主要是把它进行了一个规类,这样的话看起来会更简洁一点。

下面我们写一个主界面;代码有点多,简单介绍一下是这样子的

 setKeypadEnabled(true);
 //获取可见区域尺寸
 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
 //获取可见区域原点坐标
 CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
 //创建背景精灵
 CCSprite* menuBackground = CCSprite::create("gameBackground.png");
 //设置背景精灵的位置
 menuBackground->setPosition(ccp(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2));
 //将背景精灵添加到布景
 this->addChild(menuBackground);
 //创建背景精灵
 CCSprite* title = CCSprite::create("title.png");
 //设置背景精灵的位置
 title->setPosition(ccp(origin.x+visibleSize.width/2,origin.y+visibleSize.height/6*4.6));
 //将背景精灵添加到布景
 this->addChild(title);

 auto item1 = MenuItemImage::create("start_game.png", "start_game_select.png", CC_CALLBACK_1(MenuLayer::goToGameLayer, this));
 //auto item2 = MenuItemImage::create("help.png", "help_select.png", CC_CALLBACK_1(MenuLayer::goToHelpLayer, this));
 auto item3 = MenuItemImage::create("soundset.png", "soundset_select.png", CC_CALLBACK_1(MenuLayer::SetSound, this));
 auto item4 = MenuItemImage::create("exit_game.png", "exit_game_select.png", CC_CALLBACK_1(MenuLayer::exitGame, this));
 auto s = Director::getInstance()->getWinSize();
 item1->setScaleX( 1.2f );
// item2->setScaleX( 1.2f );
 item3->setScaleX( 1.2f );
 item4->setScaleX( 1.2f );

这个东西无非就是创建一个menu,然后点那个就跑到那个里场景里面去,特别我,我们做了一个动画。

就是跑步的小人。

当然这个也很简单,

auto spriteq=Sprite::create();
   this->addChild(spriteq);
   spriteq->setPosition(Point(s.width/3,s.height/3));
   spriteq->runAction(RepeatForever::create(sAnimationMgr->createAnimate(eAniRightSmall)));

做一个repeatforver的动作,并让它一直做下去。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值