1.现在,.h声明private:
cocos2d::CCSprite* ninja;

cocos2d::CCTMXTiledMap*  tileMap;

然后.cpp中增加tileMap = CCTMXTiledMap::create("MyTileMap.tmx");

CCTMXLayer* backLayer = tileMap->layerNamed("Tile Layer 1");

CCAssert(backLayer, "Can not find layer named by (Tile Layer 1)");

this->addChild(tileMap); // 地图加到layer上面

2.设置人物的初始位置

CCTMXObjectGroup* og = tileMap->objectGroupNamed("spritePositions");
CCDictionary* posInfoDict = og->objectNamed("ninjaBirthPoint");
int x = posInfoDict->valueForKey("x")->intValue();
int y = posInfoDict->valueForKey("y")->intValue();

ninja = CCSprite::create("Player.png");
ninja->setPosition(ccp(x, y));
tileMap->addChild(ninja);

3.将主角移动到地图的中间

this->setMapPosForView(ccp(x, y));

void HelloWorld::setMapPosForView(cocos2d::CCPoint playerPos){

CCPoint orig = playerPos;
CCPoint dest = ccp(WIN_WIDTH / 2, WIN_HEIGHT / 2);
CCPoint distance = ccpSub(dest, orig);
CCPoint newMapPos = ccp(0, 0) + distance;

newMapPos.x = (newMapPos.x > 0?

0:newMapPos.x);
newMapPos.y = (newMapPos.y > 0?

0:newMapPos.y);

newMapPos.x = (newMapPos.x < WIN_WIDTH - MAP_WIDTH? 
WIN_WIDTH-MAP_WIDTH:newMapPos.x);
newMapPos.y = (newMapPos.y < WIN_HEIGHT - MAP_HEIGHT? 
WIN_HEIGHT - MAP_HEIGHT:newMapPos.y);

tileMap->setPosition(newMapPos);

5.用:ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)来使物体移动

void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){

CCPoint touchPos=pTouch->getLocation();

touchPos=tileMap->convertToNodeSpace(touchPos);

CCPoint origPos=ninjia->getPosition();

CCPoint diff=touchPos-origPos;

CCPoint ninjaDiff = ccp(0, 0);

if (abs(diff.x) > abs(diff.y)){
if (diff.x > 0){
ninjaDiff.x = tileMap->getTileSize().width;
}
else
{
ninjaDiff.x = -tileMap->getTileSize().width;;
}
}
else{
if (diff.y > 0){
ninjaDiff.y = tileMap->getTileSize().height;
}
else
{
ninjaDiff.y = -tileMap->getTileSize().height;
}
}

CCPoint newPos = origPos + ninjaDiff;

ninja->setPosition(newPos);

tileMap->setMapForView(newPos);

该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来相关推荐

  1. Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  2. 地图定义一个中间不动标注_高精度地图制作(三)

    高精度地图主要用于无人驾驶路径规划,还可以应用于无人驾驶定位,ROI区域过滤等.接下来我们主要来看如何制作高精度地图. 高精度地图制作流程 高精度地图的制作过程分为4个步骤: 地图采集 点云地图制作 ...

  3. echart 三维可视化地图_揭秘720°三维全景3D实景地图制作技术

    近两年来三维全景3D实景地图在三维虚拟现实领域中占有相当大的地位.目前的三维720°线上三维实景展示基本都是通过商迪3D三维全景建模与3d全景地图技术制作.例如:VR游戏.智慧城市规划项目.智慧房地产 ...

  4. Cocos Creator 配合Tiled地图的使用

    版本2.3.4 参考: TiledMap Editor官网 cocos TiledMap组件参考 GitBook TiledTile API 游戏中经常会用到瓦片地图,cocos也提供了对Tiled编 ...

  5. 人类一败涂地做图教程_人类一败涂地-怎么制作地图-地图制作教程详细入门级...

    这是一份非常非常详细的地图制作教程,包括怎么下载,怎么导入,以及导入第三方地图,拖拽物体,以及物理碰撞等.希望可以给喜欢的朋友们一些参考和帮助. 一 .下载以及配置 1.下载 首先放上已经从官网拿的正 ...

  6. 使用leaflet仿原神提瓦特大地图制作日记

    使用leaflet仿原神提瓦特大地图制作日记 项目初体验:学习并熟悉leaflet(maker和popup) leaflet的学习(L-control-zoom)和优化(marker,popup) 左 ...

  7. 专利地图制作及解析研究

    所谓专利地图(Patent Map)是将专利信息进行图表化归纳,使其具有类似地图指向功能的形象称呼.在理论上专利地图有着多种定义,笔者认为如下定义较为全面地概括了专利地图之要义,即专利地图" ...

  8. 酱油带你用cocos2dx3.0完成一款战棋游戏 (曹操传)(一)地图制作篇 1

    这是酱油第一次写博客,所以如果有什么写的不好,大家多多海涵啊.那么废话就不多说了,直接进入正题吧. 制作一款战棋游戏,在酱油看来最大的难度便是 ai的设计以及 实现剧本对游戏整体的控制,当然啦,这都是 ...

  9. 高精度地图制作一些资料

    关于高精度地图制作的一些资料 激光雷达建图和定位(NDT) (https://zhuanlan.zhihu.com/p/77623762) 高精度地图制作1.2.3 (https://zhuanlan ...

最新文章

  1. Win10:你需要来自XXX的权限才能对此文件夹进行更改
  2. Android 8.0 adb分析
  3. HttpClient 4 API –获取状态码-getStatusLine()。getStatusCode()示例
  4. WPF中的动画——(四)缓动函数
  5. 嵌入式仿真平台SkyEye的覆盖率分析
  6. 支持ps2021 Document Star证件照大师 Mac插件2.0
  7. ajax获取301,PHP获取301重定向页面跳转后真实URL地址
  8. paip.dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结
  9. 1.2 说说大学这滩泥淖——《逆袭大学》连载
  10. 冒泡排序程序java_冒泡排序Java程序
  11. 开发部程序员绩效考核办法
  12. java delight 咖啡是什么意思_各种咖啡的含义是什么?
  13. 欧拉降幂公式(扩展欧拉定理)证明
  14. 隐私空间伪装计算机,隐私空间app(文件夹隐藏) 6.1.9 免root
  15. 大数据分析工具(下)
  16. 墙绘装饰设计公司网站织梦模板免费下载
  17. 【Web技术】1431- 总结前端主题切换的思考和现代前端样式的解决方案落地
  18. 2021-07-23 N卡显示器亮度设置
  19. ENVI:如何进行遥感图像的分类?(决策树模型)
  20. 百度测试实习面试记录

热门文章

  1. json php input,在php中读取json输入
  2. RtlAdjustPrivilege() 提权函数
  3. 6.824 RPC lesson2 2020(二)
  4. django models模型 内部类 class Meta 简介
  5. LeetCode【3--无重复的最长字串】 LeetCode【4--有序数组中的中位数】
  6. c++模板---3(类模板碰到继承问题,类模板类外实现,类模板与友元函数)
  7. C++派生类对象和基类对象赋值
  8. epoll反应堆模型代码
  9. 【Leetcode | 12】342. 4的幂
  10. Makefile (二)