cocos2d-x 如何实现角色在地图中的不同高低台阶行走的路线控制
来源:互联网 发布:大数据博士招生 编辑:程序博客网 时间:2024/04/29 05:15
我要说的意思是这样的,角色从一个台阶跳向另一个台阶。两个台阶高低是不一样的。结果让角色停在另一个台阶上而不是掉下来!
void MapLayer::mapCreate(){ this->_allMap=CCTMXTiledMap::create("map/rosemap.tmx");this->_allMap->setScale(0.5);this->addChild(this->_allMap);this->_allMap->layerNamed("fangluoxia")->setVisible(true);//让防落下不可见CCTMXObjectGroup* objGroup =this->_allMap->objectGroupNamed("pengzhuang");CCArray* objArray = objGroup->getObjects();if( objArray&& objArray->count()>0){CCObject* pObj = NULL; CCARRAY_FOREACH(objArray, pObj) { CCDictionary* playerPointDic= (CCDictionary*)pObj; //将对象转化成字典,便于获取键值 float x = playerPointDic->valueForKey("x")->floatValue(); this->_y = playerPointDic->valueForKey("y")->floatValue(); }}}void MapLayer::jlmInRoad(float dt){if(((PmdInAllLayer*)this->getParent())->_jlmLayer->_isJlmCreate){CCSize mapTiledNum = this->_allMap->getMapSize(); CCSize tiledSize = this->_allMap->getTileSize(); CCPoint point1 =((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition(); int x =point1.x *2 / tiledSize.width; int y =point1.y *2 / tiledSize.height; /* Cocos2d-x的默认Y坐标是由下至上的,所以要做一个相减操作 */ y = mapTiledNum.height - y; int tiledGid=_allMap->layerNamed("fangluoxia")->tileGIDAt(ccp(x,y)); if(tiledGid!=0) { CCDictionary* propertiesDict = _allMap->propertiesForGID(tiledGid); /* 取得格子的zhezhao属性值 */ const CCString* prop = propertiesDict->valueForKey("flx"); /* 判断zhezhao属性是否为true,是的话,不让玩家移动 */ if(prop->m_sString.compare("true") == 0) { //((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->setPosition(ccp(((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition().x,80)); //((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->_jumpDownHigh=90;//((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->setPosition(ccp(((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition().x+0.1*dt,100));((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->setPosition(ccp(((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition().x+0.1*dt,0.5*this->_y)); } } else{((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->setPosition(ccp(((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition().x,((PmdInAllLayer*)this->getParent())->_jlmLayer->_jlmSprite->getPosition().y-100.0*dt));}} }基本上就是这样!
0 0
- cocos2d-x 如何实现角色在地图中的不同高低台阶行走的路线控制
- Cocos2d-x 如何实现不同高低台阶的跳跃
- Cocos2d-x 地图行走的实现2:SPFA算法
- Cocos2d-x 地图行走的实现3:A*算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- Cocos2d-x 地图行走的实现3:A*算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- Cocos2d-x 地图行走的实现3:A* 算法
- Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
- Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
- Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
- Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
- Cocos2D实现RPG游戏人物地图行走的跟随效果
- cocos2d-x遥感控制角色移动简单实现之JoyStick
- 基于角色的权限控制在Drupal7中的实现
- cocos2d-x 障碍与路线的双重控制
- cocos2d-x创建地图和角色
- 百度地图之行走路线的标识搜索
- PHP访问MySQL数据库
- 在数字键盘上添加button
- java实现数字金钱转化为英文字母显示
- google-app-engine 上传下载 用户文件
- 20140226LinkButton中Onclient 事件与<%#Eval("xxxx")%>
- cocos2d-x 如何实现角色在地图中的不同高低台阶行走的路线控制
- Ubuntu 下手动安装 Sublime Text 3
- sql server 2008 R2 安装图解
- Java中ArrayList和LinkedList区别
- PHP 方法重载例子
- Openfire——客户端使用ls和sasl登录
- C++继承模型的内存布局
- 连载:面向对象葵花宝典:思想、技巧与实践(13) - “多态” 详解
- Android的多媒体框架OpenCore介绍