cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)
2015-03-20 11:25
323 查看
欢迎场景的任务是无限滚动地面,小鸟原地挥动翅膀,显示开始游戏按钮,点击时才开始玩游戏。
先上图:
这个场景中,有一个标题:FlappyBird
一只小鸟,小鸟的颜色是随机生成三种中的一种
一个开始按钮
无限滚动的地面
在初始化时,生成当前时间来显示白天还是黑夜背景。
要让地面无限滚动,那么就需要定时器了。
所谓无限滚动,就是重复利用,在离开屏幕时,又回到原始状态,如此反复而已。
点击玩游戏时,回调:
下一步,说说游戏场景中背景层设计
先上图:
这个场景中,有一个标题: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总结八:载入场景LoadingScene
- cocos2dx3.3开发FlappyBird总结三:项目剖析
- cocos2dx3.3开发FlappyBird总结四:资源管理类
- cocos2dx3.3开发FlappyBird总结十七:结束语
- cocos2dx3.3开发FlappyBird总结六:设计共享小鸟类(主角)
- cocos2dx3.3开发FlappyBird总结十五:记录玩家得分
- cocos2dx3.3开发FlappyBird总结十一:控制层功能设计
- cocos2dx3.3开发FlappyBird总结一:背景介绍
- cocos2dx3.3开发FlappyBird总结七:说说游戏流程
- cocos2dx3.3开发FlappyBird总结十三:数字特效类
- cocos2dx3.3开发FlappyBird总结十四:常量定义
- cocos2dx3.3开发FlappyBird总结十二:状态层设计
- cocos2dx3.3开发FlappyBird总结十:背景层设计
- cocos2dx3.3开发FlappyBird总结五:说说屏幕适配
- cocos2dx3.3开发FlappyBird总结十六:游戏层实现
- cocos2dxFlappyBird开发总结二:开发环境介绍
- FlappyBird开发总结(二)——场景
- cocos2dx 3.3 魂斗罗初步尝试 欢迎场景和声音类
- cocos2dx 3.3 android开发环境搭建
- [置顶] cocos2dx实例开发之flappybird(入门版)