COCOS 2DX 3.10让你的背景滚动起来~ 原来这么简单

根据游戏的开发需要,大家一定少不了背景滚动这一条件,如今,就来告诉大家,如何来真正实现背景的滚动。


	
	/*添加一个游戏背景 并设置图片的坐标*/
	auto spbk = Sprite::create("background.png");  


	//实现图片的左下角对齐屏幕的左下角
	spbk->setPosition(Vec2(0, 0));
	spbk->setAnchorPoint(Point::ZERO);  //设置锚点

	this->addChild(spbk);

	/*添加第二个游戏背景 并设置图片的坐标*/
	auto spbk_1 = Sprite::create("background.png");

	//实现图片的y坐标始终等于第一个图片的y坐标

	spbk_1->setAnchorPoint(Point::ZERO);  //设置锚点
	spbk_1->setPosition(Vec2(0, 0));
	spbk_1->setPositionX(spbk->getPositionY() + 1280);

	this->addChild(spbk_1);

	//设置唯一的ID
	spbk->setTag(10);
	spbk_1->setTag(11);


	//利用计划任务实现背景图片的滚动

	this->schedule(schedule_selector(GameScene::moveBackground),0.05);   //每隔5毫秒调用一次moveBackground方法
/*实现背景的一个滚动*/
void GameScene::moveBackground(float t)
{
	//根据Tag 或许相应的元件
	auto spbk = this->getChildByTag(10);
	auto spbk_1 = this->getChildByTag(11);

	spbk->setPositionY(spbk->getPositionY() - 20);  //20为移动的像素
	if (spbk->getPositionY() < -1280)
	{
		spbk->setPositionY(0);  
		spbk_1->setPositionY(spbk->getPositionY()+1280);   //始终让第二张图片与第一张图片相互衔接
	}

}



你可能感兴趣的:(cocos学习)