博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x -- 如何让背景从上到下滚动
阅读量:6514 次
发布时间:2019-06-24

本文共 1711 字,大约阅读时间需要 5 分钟。

1. 首先,声明一个2个大小的sprite数组

class GameScreen : public cocos2d::Layer{public:    ...    cocos2d::Sprite *backgroundSpriteArray[2];};

2. 完成初始化,1张图片用于当前显示,另1张用于滚动到下一张

bool GameScreen::init(){    //    // 1. super init first    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();    Point origin = Director::getInstance()->getVisibleOrigin();        ...        for (int i = 0; i < 2; i ++)    {        backgroundSpriteArray[i] = Sprite::create("GameScreen/Game_Screen_Background.png");        backgroundSpriteArray[i]->setPosition(Point((visibleSize.width / 2), (-1 * visibleSize.height * i) + (visibleSize.height / 2)));        this->addChild(backgroundSpriteArray[i], -2);    }    ...}

 

3. 声明update方法表示每帧的更新

class GameScreen : public cocos2d::Layer{public:    ...    void update(float dt);};

4. 实现update方法

void GameScreen::update(float dt){    Size visibleSize = Director::getInstance()->getVisibleSize();    Point origin = Director::getInstance()->getVisibleOrigin();    for (int i = 0; i < 2; i ++)    {        if (backgroundSpriteArray[i]->getPosition().y >= visibleSize.height + (visibleSize.height / 2) -1)        {            backgroundSpriteArray[i]->setPosition(Point((visibleSize.width / 2) + origin.x, (-1 * visibleSize.height) + (visibleSize.height / 2)));        }    }        for (int i = 0; i < 2; i ++)    {        backgroundSpriteArray[i]->setPosition(Point(backgroundSpriteArray[i]->getPosition().x, backgroundSpriteArray[i]->getPosition().y + (0.75 * visibleSize.height * dt)));    }        ...}

 

5. 触发默认的update方法

bool GameScreen::init(){    ...    this->scheduleUpdate();    ...}

 

转载于:https://www.cnblogs.com/davidgu/p/4763924.html

你可能感兴趣的文章
windows 下配置 Nginx 常见问题(转)
查看>>
BeanFactory not initialized or already closed - call 'refresh' before accessing beans解决办法
查看>>
dSYM 文件分析工具
查看>>
R语言合并data.frame
查看>>
linux主机下的Vmware Workstation配置NAT设置 端口映射-Ubuntu为例
查看>>
unity physics joint
查看>>
TD的访问地址
查看>>
JAVA常见面试题之Forward和Redirect的区别
查看>>
tmpFile.renameTo(classFile) failed 错误
查看>>
【甘道夫】Apache Hadoop 2.5.0-cdh5.2.0 HDFS Quotas 配额控制
查看>>
一张图看懂normal,static,sealed,abstract 的 区别
查看>>
Task的使用
查看>>
grep和正则表达式
查看>>
s:iterator巧妙控制跳出循环
查看>>
移动互联网思维
查看>>
redis-手写redis切片和非切片连接池并注入springboot中
查看>>
Kosaraju算法详解
查看>>
Serv-U 的升级及数据备份和迁移【转】
查看>>
webstorm无法显示左边文件夹目录的解决方法
查看>>
Android数据保存之文件保存
查看>>