【雷电】源码分析(三)-- 游戏背景
来源:互联网 发布:ip网络对讲终端 编辑:程序博客网 时间:2024/05/06 18:25
背景图至上往下无限滚动
// 背景图中障碍物, 由tiled编辑的m_backTileMap = CCTMXTiledMap::create("level01.tmx");addChild(m_backTileMap, -9);m_backTileMapHeight = m_backTileMap->getMapSize().height * m_backTileMap->getTileSize().height; //获取tile map的高度//刚开始就称动m_backSkyHeight -= 48;m_backTileMapHeight -= 200;m_backSky->runAction(CCMoveBy::create(3, ccp(0, -48)));//为背景图移动m_backTileMap->runAction(CCMoveBy::create(3, ccp(0, -200)));//障碍物移动m_isBackSkyReload=false;m_isBackTileReload=false;schedule(schedule_selector(HelloWorld:: movingBackground),3);
3秒执行调用一次,背景图3秒持续称动一个位置,当第一张背景图和障碍物图项部超过屏幕顶时,第二张图接上3秒执行调用一次,背景图3秒持续称动一个位置,当第一张背景图和障碍物图项部超过屏幕顶时,第二张图接上
void HelloWorld::movingBackground(float dt){m_backSky->runAction(CCMoveBy::create(3, ccp(0, -48)));m_backTileMap->runAction(CCMoveBy::create(3, ccp(0, -200)));// 每次移动48m_backSkyHeight -= 48;// 每次移动200m_backTileMapHeight -= 200;// 若背景图的顶部到达屏幕顶部或在顶部以下if (m_backSkyHeight <= winSize.height) {if (!m_isBackSkyReload) {// 如果另一张图还没加载则create一个m_backSkyRe = CCSprite::create("bg01.jpg");m_backSkyRe->setAnchorPoint(ccp(0, 0));addChild(m_backSkyRe, -10);m_backSkyRe->setPosition(ccp(0, winSize.height));//第二图与第一图连接上// 反转标志位m_isBackSkyReload = true;}// 第二张图紧接着第一张图滚动m_backSkyRe->runAction(CCMoveBy::create(3, ccp(0, -48)));}// 若第一张背景图完全经过屏幕if (m_backSkyHeight <= 0) {m_backSkyHeight = m_backSky->getContentSize().height;// 移除第一张的精灵this->removeChild(m_backSky, true);// 指向第二张图的精灵m_backSky = m_backSkyRe;// 第二张的精灵指针置空m_backSkyRe = NULL;// 反转标志位m_isBackSkyReload = false;}//若障碍物图到达屏幕顶部if (m_backTileMapHeight <= winSize.height) {//若第二障碍物图没有加载则创建if (!m_isBackTileReload) {m_backTileMapRe = CCTMXTiledMap::create("level01.tmx");this->addChild(m_backTileMapRe, -9);m_backTileMapRe->setPosition(0, winSize.height);m_isBackTileReload = true;}m_backTileMapRe->runAction(CCMoveBy::create(3, ccp(0, -200)));}//若障碍物图完全经过屏幕 , m_backTileMap指向第二张if (m_backTileMapHeight <= 0) {m_backTileMapHeight = m_backTileMap->getMapSize().height * m_backTileMap->getTileSize().height;this->removeChild(m_backTileMap, true);m_backTileMap = m_backTileMapRe;m_backTileMapRe = NULL;m_isBackTileReload = false;}}
0 0
- 【雷电】源码分析(三)-- 游戏背景
- 【雷电】源码分析(一)-- 进入游戏开始界面
- 【雷电】源码分析(二)-- 进入游戏攻击
- java雷电游戏源码项目
- 基于cocos2d-x 的雷电源码分析
- cocos2d-X 手机游戏《雷电游戏》完整源码下载
- IOS游戏源码下载之简易版雷电(2.2.3版本)源码完整下载和简单开发教程
- 《宇宙战争》游戏开发总结(雷电游戏)
- 雷电,怀旧的游戏
- java雷电游戏
- unity 雷电游戏
- Cavas绘图移动游戏背景呈现前进效果(雷电战机一)
- 雷电战机---附源码
- (游戏编程-04)JAVA版雷电(奇迹冬瓜)
- 我再贡献一个游戏(雷电手机版)
- 我的雷电游戏(重力感应控制)
- 传奇源码分析-客户端(游戏逻辑处理源分析三)
- 传奇源码分析-客户端(游戏逻辑处理源分析三)
- The reflection of Java language (二)
- DevExpress Report 使用简要说明
- C++的四种显示类型转换
- PHP empty() 的判断
- 用 PHPRPC 实现 Ajax 级联下拉菜单
- 【雷电】源码分析(三)-- 游戏背景
- javascript 中的继承
- ios如何建立和调用静态库
- Python中采用命名管道来做多进程通信
- objective-c多线程编程的几种方法
- centos如何进入图形界面和centos已经进到图形界面后怎么打开命令行
- 姣姣爱荣荣
- 开箱即用!Android四款系统架构工具
- 手机分辨率基础知识