该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来
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地图制作拿到项目~~这是偷懒,为了直接复制后写来相关推荐
- Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...
- 地图定义一个中间不动标注_高精度地图制作(三)
高精度地图主要用于无人驾驶路径规划,还可以应用于无人驾驶定位,ROI区域过滤等.接下来我们主要来看如何制作高精度地图. 高精度地图制作流程 高精度地图的制作过程分为4个步骤: 地图采集 点云地图制作 ...
- echart 三维可视化地图_揭秘720°三维全景3D实景地图制作技术
近两年来三维全景3D实景地图在三维虚拟现实领域中占有相当大的地位.目前的三维720°线上三维实景展示基本都是通过商迪3D三维全景建模与3d全景地图技术制作.例如:VR游戏.智慧城市规划项目.智慧房地产 ...
- Cocos Creator 配合Tiled地图的使用
版本2.3.4 参考: TiledMap Editor官网 cocos TiledMap组件参考 GitBook TiledTile API 游戏中经常会用到瓦片地图,cocos也提供了对Tiled编 ...
- 人类一败涂地做图教程_人类一败涂地-怎么制作地图-地图制作教程详细入门级...
这是一份非常非常详细的地图制作教程,包括怎么下载,怎么导入,以及导入第三方地图,拖拽物体,以及物理碰撞等.希望可以给喜欢的朋友们一些参考和帮助. 一 .下载以及配置 1.下载 首先放上已经从官网拿的正 ...
- 使用leaflet仿原神提瓦特大地图制作日记
使用leaflet仿原神提瓦特大地图制作日记 项目初体验:学习并熟悉leaflet(maker和popup) leaflet的学习(L-control-zoom)和优化(marker,popup) 左 ...
- 专利地图制作及解析研究
所谓专利地图(Patent Map)是将专利信息进行图表化归纳,使其具有类似地图指向功能的形象称呼.在理论上专利地图有着多种定义,笔者认为如下定义较为全面地概括了专利地图之要义,即专利地图" ...
- 酱油带你用cocos2dx3.0完成一款战棋游戏 (曹操传)(一)地图制作篇 1
这是酱油第一次写博客,所以如果有什么写的不好,大家多多海涵啊.那么废话就不多说了,直接进入正题吧. 制作一款战棋游戏,在酱油看来最大的难度便是 ai的设计以及 实现剧本对游戏整体的控制,当然啦,这都是 ...
- 高精度地图制作一些资料
关于高精度地图制作的一些资料 激光雷达建图和定位(NDT) (https://zhuanlan.zhihu.com/p/77623762) 高精度地图制作1.2.3 (https://zhuanlan ...
最新文章
- Win10:你需要来自XXX的权限才能对此文件夹进行更改
- Android 8.0 adb分析
- HttpClient 4 API –获取状态码-getStatusLine()。getStatusCode()示例
- WPF中的动画——(四)缓动函数
- 嵌入式仿真平台SkyEye的覆盖率分析
- 支持ps2021 Document Star证件照大师 Mac插件2.0
- ajax获取301,PHP获取301重定向页面跳转后真实URL地址
- paip.dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结
- 1.2 说说大学这滩泥淖——《逆袭大学》连载
- 冒泡排序程序java_冒泡排序Java程序
- 开发部程序员绩效考核办法
- java delight 咖啡是什么意思_各种咖啡的含义是什么?
- 欧拉降幂公式(扩展欧拉定理)证明
- 隐私空间伪装计算机,隐私空间app(文件夹隐藏) 6.1.9 免root
- 大数据分析工具(下)
- 墙绘装饰设计公司网站织梦模板免费下载
- 【Web技术】1431- 总结前端主题切换的思考和现代前端样式的解决方案落地
- 2021-07-23 N卡显示器亮度设置
- ENVI:如何进行遥感图像的分类?(决策树模型)
- 百度测试实习面试记录
热门文章
- json php input,在php中读取json输入
- RtlAdjustPrivilege() 提权函数
- 6.824 RPC lesson2 2020(二)
- django models模型 内部类 class Meta 简介
- LeetCode【3--无重复的最长字串】 LeetCode【4--有序数组中的中位数】
- c++模板---3(类模板碰到继承问题,类模板类外实现,类模板与友元函数)
- C++派生类对象和基类对象赋值
- epoll反应堆模型代码
- 【Leetcode | 12】342. 4的幂
- Makefile (二)