卷轴地图是一个可以滚动的背景地图,其实现原理就是利用两张交替的图片,让它们按照一个方向同步位移,当一张图片超过窗口界限的时候进行一次位置更替,使它回到另一张图片的后面。通过这样循环的使用这两张图片,背景看起来就在不停的滚动了。
接下来实现一个背景层,把它添加到游戏场景就可以了。
#ifndef __BackgroundLayer_H__
#define __BackgroundLayer_H__
#include "cocos2d.h"
// 游戏背景层
class BackgroundLayer : public cocos2d::Layer
{
public:
BackgroundLayer(void);
~BackgroundLayer(void);
virtual bool init() override;
CREATE_FUNC(BackgroundLayer);
// 滚动卷轴地图
void scrollBackground();
private:
// 初始化背景地图
void initBackground();
private:
// 背景地图
cocos2d::Sprite *background_1;
cocos2d::Sprite *background_2;
// 沿Y轴滚动速度
double speedY;
};
#endif
#include "BackgroundLayer.h"
USING_NS_CC;
BackgroundLayer::BackgroundLayer(void)
{
}
BackgroundLayer::~BackgroundLayer(void)
{
}
bool BackgroundLayer::init()
{
if(!Layer::init())
{
return false;
}
this->initBackgrou