cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)
发布时间:2020-12-14 20:38:49 所属栏目:百科 来源:网络整理
导读:欢迎场景的任务是无限滚动地面,小鸟原地挥动翅膀,显示开始游戏按钮,点击时才开始玩游戏。 先上图: 这个场景中,有一个标题: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);
}
下一步,说说游戏场景中背景层设计 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 带有标量结果的LINQ是否会触发延迟加载
- ios – 如何在xcode代码中显示图像标题而不是图标?
- ReactiveCocoa 学习网址推荐
- Flex解析URL用于RO的EndPoint
- c# – 无法在System.DirectoryServices.AccountManagement.
- ruby-on-rails – Ruby,SSLSockets和Apple的增强型APN消息格
- ajaxSubmit提交文件表单不执行success
- postgresql共享内存之——分片(slice)
- Swift Error:’Sequence’要求类型’T’和’ArraySlice’是
- Swift 4正式发布,新功能概览