滚动地图的实现
来源:互联网 发布:office 2016 mac 卡 编辑:程序博客网 时间:2024/06/05 04:35
滚动图的实现其实就是两张首尾可以拼接的图在不断的往x轴或y轴方向移动的过程
其实现具体如下
void GameLayer::movingBackground(float delta) {float movingDist = this->_ship->getBackgroundMoveSpeed() * delta * (this->_borderLayer->getTimerPercentage() / 100);//计算每帧移动的像素float locBackgroundWidth = this->_backgroundWidth;//地图宽度Background* locBackground = this->_background;//当前正在滚动的图float currPosX = locBackground->getPositionX() - movingDist;//由于是横版,所以x轴每帧减去移动的像素大小Background* locBackgroundRe = this->_backgroundRe;//_backgroundRe初始化为NULL,即在第一次运行时locBackgroundRe为NULLif(locBackgroundWidth + currPosX <= ScreenWidth) {//如果在滚动的过程中,第一张图的最右边滚出界,则将第二张图连接上,重复此过程//将之前的第一张图赋给locBackgroundRe和_backgroundRelocBackgroundRe = this->_background;this->_backgroundRe = this->_background;//创建一张新的连接图,并赋给locBackgroundthis->_background = Background::getOrCreate(this->_curMission);locBackground = this->_background;//将连接图的x轴设置在第一张图的后面locBackground->setPositionX(currPosX + locBackgroundWidth - 2);}else {////如果在滚动的过程中,则第一张图继续往x轴滚动,直至出现越界locBackground->setPositionX(currPosX);}if(locBackgroundRe) {//如果有第二张图(连接图)currPosX = locBackgroundRe->getPositionX() - movingDist;//和第二张图一起已相同的速度滚动,这里的locBackgroundRe是之前的第一张图if(currPosX + locBackgroundWidth < 0){//如果第一张图完全的已移出屏幕的左边,则将其隐藏起来,供下次使用,并将_backgroundRe设置为NULLlocBackgroundRe->destroy();this->_backgroundRe = NULL;}else {//如果第一张图还没完全的已移出屏幕的左边,则往x轴方向继续滚动locBackgroundRe->setPositionX(currPosX);}}}
0 0
- 滚动地图的实现
- 【Cocos2d-x】地图滚动算法的实现
- Cocos2d-X3.0实现地图的无限滚动
- swing 飞机大战 二 实现地图的滚动
- 我的游戏框架基础构建篇(cocos2dx 循环滚动地图的实现)
- Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案
- Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案
- Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案
- Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案
- cocos飞机游戏地图滚动速度由快到慢的实现
- 地图的滚动(根据触摸点)
- SuperMap Object 中键滚动实现地图自由缩放
- 使用3.0实现微信打飞机——2.滚动地图
- 自定义scrollview实现类似地图横向纵向同时滚动
- 滚动条的实现;
- 滚动动画的实现
- 滚动屏幕的实现
- 滚动背景的实现
- B. Prison Transfer
- ASP.NET 实现重写重写 Url Rewriting详解
- Abstract Factory 抽象工厂模式
- wpf 无边框窗体无法响应MouseMove事件
- 微软CEO纳德拉若弃Xbox,比尔盖茨也同意
- 滚动地图的实现
- 如何编写nand驱动,360doc比较详细
- 更宽更薄?iPhone6的4大猜想
- 如何有效的布局棋牌网站内部链接
- hdu 3652 B-number (数位dp+记忆化)
- 只是一名司级官员参加(在中国官僚体系中
- java 断言 assert 初步使用:断言开启、断言使用
- 苹果将建iWatch生态圈!成下一个AppStore
- SQL SERVER数据类型与C#数据类型对照与转换函数