滚动图的实现其实就是两张首尾可以拼接的图在不断的往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为NULL
if(locBackgroundWidth + currPosX <= ScreenWidth) {//如果在滚动的过程中,第一张图的最右边滚出界,则将第二张图连接上,重复此过程
//将之前的第一张图赋给locBackgroundRe和_backgroundRe
locBackgroundRe = this->_background;
this->_backgroundRe = this->_background;
//创建一张新的连接图,并赋给locBackground
this->_background = Background::getOrCr