【Cocos2D-X 遊戲引擎】初窺門徑(7)無限地圖滾動

地圖的滾動原理很簡單,就是持續設置地圖的位置即可。具體實現用schedule()函數。

	pMap = CCSprite::create("MapHenn.png");
	pMap->setPosition(ccp(mSize.width/2, mSize.height/2));
	this->addChild(pMap, 0);

	schedule(schedule_selector( SpriteScene::updateMap),0.1f);

schedule()函數的作用就是根據指定時間,持續調用一個函數。

然後再updateMap()中更新地圖的位置。

void  SpriteScene::updateMap(float dt)
{
	pMap->setPositionX(pMap->getPositionX()-5);
	
}

Ctrl + F5,就可以看到地圖持續向左邊滾動了,

還有個問題就是滾動到地圖最右邊,就會沒有背景,在updateMap()中加個限制就好。

void  SpriteScene::updateMap(float dt)
{
	pMap->setPositionX(pMap->getPositionX()-5);
	//如果地圖滾動到最右邊,讓其恢復初始位置
	if(pMap->getPositionX() < -pMap->getContentSize().width/2+mSize.width)
	{
		pMap->setPosition(ccp(mSize.width/2, mSize.height/2));
	}
}

這裏只寫了地圖向左滾動,向右滾動同理。

如果在場景中在加一個動態的角色,然後滾動地圖,就會造成人物行走的效果,2D鎖視角的遊戲就是這個原理。


效果圖:





轉載請註明出處:http://blog.csdn.net/Vestigge





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章