cocos2d-x 无限地图滚动
2013-04-20 09:31
615 查看
地图的滚动原理很简单,就是持续设置地图的位置即可。具体实现用schedule()函数。
[cpp]
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()中更新地图的位置。
[cpp]
void SpriteScene::updateMap(float dt)
{
pMap->setPositionX(pMap->getPositionX()-5);
}
Ctrl + F5,就可以看到地图持续向左边滚动了,
还有个问题就是滚动到地图最右边,就会没有背景,在updateMap()中加个限制就好。
[cpp]
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锁视角的游戏就是这个原理。
效果图:
[cpp]
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()中更新地图的位置。
[cpp]
void SpriteScene::updateMap(float dt)
{
pMap->setPositionX(pMap->getPositionX()-5);
}
Ctrl + F5,就可以看到地图持续向左边滚动了,
还有个问题就是滚动到地图最右边,就会没有背景,在updateMap()中加个限制就好。
[cpp]
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锁视角的游戏就是这个原理。
效果图:
相关文章推荐
- Cocos2d-x地图随精灵无限滚动与边缘检测----之游戏开发《赵云要格斗》(3)
- Cocos2d-x《雷电大战》-双层地图无限滚动 推荐
- Cocos2d-x《雷电大战》(1)-双层地图无限滚动
- 【Cocos2D-X 】初窥门径(7)无限地图滚动
- cocos2d-x游戏开发(三)无限滚动地图
- Cocos2d-X 3.4版-地图无限滚动与边缘检测《赵云要格斗》
- Cocos2d游戏开发无限滚动地图--以Cocos2d-x游戏开发之旅为例课本第5章little runner
- cocos2d-x游戏开发(三)无限滚动地图
- Cocos2d-X3.0实现地图的无限滚动
- 【Cocos2D-X 游戏引擎】初窥门径(7)无限地图滚动
- Cocos2d-x《雷电大战》(1)-双层地图无限滚动
- Cocos2d-x地图随精灵无限滚动与边缘检测----之游戏开发《赵云要格斗》(3) cocos2dx 3.3移植版
- cocos2d-x游戏开发(三)无限滚动地图
- Cocos2d-x学习(十二):用cocos2d-x实现MoonWarriors(无限背景滚动的简单实现)
- Cocos2D-x游戏开发之十:背景无限滚动
- Cocos2d-x学习(九):cocos2d-x 无限背景滚动
- cocos2d 滚动背景 举 无限
- 【Cocos2d-X开发学习笔记】第26期:游戏背景之滚动地图背景(CCParallaxNode)的使用
- cocos2d-x 3.2 创建一个无限滚动的背景
- Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案