cocos2dx–瓦片地图(键盘移动推箱子游戏)
1:瓦片地图编辑器云盘地址 和 资源图片
- 链接 :https://pan.baidu.com/s/15-W4LUsQ5mHHpNWI1xwzEA
- 提取码:uf4i
2:新建瓦片地图:文件–>新文件
3:导入地图图片:地图–>新图块–> 浏览![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b7da25775333c2f6897abf598244e106.png#pic_center)
5:编辑地图:点击箭头指向的按钮–>添加图层–>命名为game
(右下角的图片直接选中,再拖拽到图片每一个瓦片中)
6:最后命名为保存到工程的Resources文件下,前面资源图片map.png同样放到Resources文件下
7:cocos2dx工程中,设置窗口大小
- AppDelegate.cpp 第6行:static cocos2d::Size designResolutionSize = cocos2d::Size(700, 700);
8:工程中加入瓦片地图
-
加载TMX文件:TMXtiledMpa(瓦片地图):左上角为第一块坐标为(0,0)
- 1:获取地图大小:(10*10):getMapSize
- 2:获取块大小:(70*70):getTileSize
- 3:获取图快层:getLayer(参数:图块层名 返回值:TMXLayer)
- :4:获取对象层:getObjectGroup(参数:对象层名 返回值:TMXObjectGroup)
-
TMXLayer:左上角为第一块坐标为(0,0)
- 1:获得某一个块值:getTileAt(参数:坐标)
- 2:获得某一块GID值 :getTileGIDAt(参数:坐标)
- 3:设置某一块GID值 :setTileGID(参数:1:GID值,2坐标)
- 4:获得图层的宽高 :getLayerSize()
8.1加载TMX文件
TMXTiledMap* map = TMXTiledMap::create("untitled.tmx");
this->addChild(map);
8.2/获取game图块层
TMXLayer* gameLayer = map->getLayer("game");
8.3:获取到到英雄的坐标:在init()函数中调用
GID值:
- #define HERO 47 :英雄的GID值(ID值+1)
- #define ENEMY 44 :敌人的GID值(ID值+1)
- #define DESTINATION 43:终点的GID值(ID值+1)
private变量:
- Vec2 pos; :英雄坐标
- Vec2 destination1; :终点坐标1
- Vec2 destination2; :终点坐标2
- bool destination0 = true;:1号终点上是否有敌人
void HelloWorld::getHeroPos()
{
Size mapSize = map->getMapSize();//获得地图宽高
for (int i = 0; i < mapSize.width; i++)
{
for (int j =