欢迎场景的任务是无限滚动地面,小鸟原地挥动翅膀,显示开始游戏按钮,点击时才开始玩游戏。
先上图:
这个场景中,有一个标题:FlappyBird
一只小鸟,小鸟的颜色是随机生成三种中的一种
一个开始按钮
无限滚动的地面
在初始化时,生成当前时间来显示白天还是黑夜背景。
// Get the current time,judge whether Now is day or night time_t t = time(NulL); tm *localTime = localtime(&t); int hour = localTime->tm_hour; std::string bgname; if (hour >= 6 && hour <= 17) { bgname = "bg_day"; } else { bgname = "bg_night"; }
要让地面无限滚动,那么就需要定时器了。
// Add a timer to update the land this->schedule(schedule_selector(WelcomeScene::scrollLand),0.01f);
所谓无限滚动,就是重复利用,在离开屏幕时,又回到原始状态,如此反复而已。
// 每一个delta时间内,移动距离2,如果超出屏幕,又放到屏幕最右边,如此反复。voID WelcomeScene::scrollLand(float delta) { // Each delta,move 2.0f distance const float distance = 2.0f; _land1->setpositionX(_land1->getpositionX() - distance); _land2->setpositionX(_land1->getpositionX() + _land1->getContentSize().wIDth - 2.0f); // 判断是否超出屏幕了 if (_land2->getpositionX() <= 0) { _land1->setpositionX(0); }}
点击玩游戏时,回调:
// 进入到游戏场景了voID WelcomeScene::menuStartCallback(cocos2d::Ref *pSender) { CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("sfx_swooshing.ogg"); this->removeChild(BirdSprite::getInstance()); auto scene = GameScene::createScene(); auto TransitionScene = TransitionFade::create(1.0f,scene); Director::getInstance()->replaceScene(TransitionScene);}
下一步,说说游戏场景中背景层设计
总结以上是内存溢出为你收集整理的cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)全部内容,希望文章能够帮你解决cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)