研究下地图在cocos2d-x中的使用
来源:互联网 发布:俄罗斯与中国知乎 编辑:程序博客网 时间:2024/05/03 10:05
我在百度上看到关于在cocos2d-x中使用地图的实例好像很少。这块对我来说也是个盲区!不过我总觉得这块很重要,比如我很好奇:怎么在游戏中设置障碍物,我再玩冒险岛的时候就很好奇这角色是怎么掉下去的,这是怎么实现的?还有神庙逃亡或者酷跑里面哪些金币放的那么多,那么有规律难道是把金币看在精灵通过循环来实现的吗?我想应该不是!应该是地图的效果!所以我觉得地图这块很重要。所以我打算在年前多思考思考关于地图方面的东西。要是有成果,我会抽时间发到csdn上面。
我今天就做了一个尝试.我是按照植物大战僵尸的那种星云设计模式来构建的。。但是奇怪的是CCTMXTileMap这个类,这个类不能在别的层中调用:比如:在PlayerLayer中使用((GameLayer*)this->getParent())_mapLayer->_map->getMapSize();会发生异常,我百思不得其解!
后来我想想,也罢!就不把地图作为一个单独的类了。放在playerLayer里面初始化。这样倒是不再发生异常了。不过我还是觉得这没道理!那我这次实验做了什么了呢?给大家看下效果图吧:(图片不好找啊,将就着看吧)
我主要做了以下几个方面:
(1):使用tile实现地图的多图层绘制;
(2):把地图中的对象层中的对象属性作为僵尸产生初始坐标点;(这个意义暂时我还没看出来)
(3):(就是随意的摆放星星,这点大家可以联想到神庙逃亡里面的金币啊,或者隐身或者加速那东西。暂时我还做不了,不过慢慢琢磨吧。我只给星星层一个一直闪烁的动画);
主要的就是这段代码:
void JsLayer::initMap(){this->_map =CCTMXTiledMap::create("map/map.tmx");this->addChild(this->_map,1);}void JsLayer::initJsSprite(){ this->_jsSprite =JsSprite::create(); this->_jsBatchNode->addChild(this->_jsSprite); this->_jsSprite->setScale(0.5); CCTMXObjectGroup* objGroup = this->_map->objectGroupNamed("objects"); /* 加载玩家坐标对象 */ CCDictionary* playerPointDic = objGroup->objectNamed("JsPoint"); float x = playerPointDic->valueForKey("x")->floatValue(); float y = playerPointDic->valueForKey("y")->floatValue(); this->_jsSprite->setPosition(ccp(x,y)); this->_map->layerNamed("xingxing")->runAction(CCRepeatForever::create(CCBlink::create(1.0f,2))); this->jsMove(); }void JsLayer::jsMove(){CCFiniteTimeAction* jsMoveTo = CCMoveTo::create(60.0f,ccp(0,120));this->_jsSprite->runAction(jsMoveTo);}这章是tile绘制图:
先这样吧。我在学着看下。。大家要又会地图这块的,希望跟我分享下。。我会感激不尽的.....
- 研究下地图在cocos2d-x中的使用
- Cocos2d-x 3.0中使用瓦片地图中的对象层
- 在Cocos2d-X中使用瓦片地图《一》
- Box2d在cocos2d-x下基本使用
- cocos2d-x 使用地图编辑器
- Cocos2d-x使用瓦片地图
- Cocos2d-X研究之v3.x瓦片地图详解
- cocos2d-x 开发中的小问题 在xcode4环境下
- cocos2d-x 开发中的小问题 在xcode4环境下
- cocos2d-x中使用TileMap地图编辑器
- cocos2d-x 3.2 |Tiled地图编辑器使用
- cocos2d-x 使用tmx地图总结
- Cocos2d-X中使用瓦片地图《二》
- Cocos2d-x 使用TMX地图总结
- cocos2d-x 如何实现角色在地图中的不同高低台阶行走的路线控制
- Cocos2d-x 2.0 在Windows平台下的使用
- 【android-cocos2d-X iconv.h】在android下使用iconv
- 【android-cocos2d-X iconv.h】在android下使用iconv
- 【引用】关于ALTERA提供的FIFO核使用原理
- 如何用Photoshop进行切图
- Netty简介
- Log4j 2使用教程
- 琼瑶琨琚 中国古代佛教陶瓷塑像赏读
- 研究下地图在cocos2d-x中的使用
- 【LFS之步步为营】【一】
- Unix环境高级编程apue.h文件问题,与运行第一个程序
- vb6中字符串转控件名的方法
- WM_KEYDOWN和WM_KEYUP的使用
- 错位排列
- Python学习笔记(八)----Python While循环语句
- getCacheDir()和getFilesDir()方法区别.
- ArrayList和LinkedList的用法区别: