cocos2dx TMX地图
2016-03-07 23:51
393 查看
[code] local map = cc.TMXTiledMap:create("map.tmx"):addTo(self); --加载地图 local mapProperties = map:getProperties(); --获取地图信息 print(mapProperties.type); local mapLayer = map:getLayer("scene"); --获取图层 local LayerProperties = mapLayer:getProperties(); --获取图层信息 print(LayerProperties.type); local tilePro = map:getPropertiesForGID(1); --获取图块信息 print(tilePro.type); local objectGroup = map:getObjectGroup("object"); --获取对象组 local playerObj = objectGroup:getObject("player"); --从对象组获取对象 print(playerObj.type); local colorObj = objectGroup:getObject("color"); --获取对象 local colorObjX = math.floor(colorObj.x / 32); local colorObjY = math.floor(colorObj.y / 32); local colorObjW = math.floor(colorObj.width / 32); local colorObjH = math.floor(colorObj.height / 32); for x = colorObjX, colorObjX + colorObjW - 1 do for y = colorObjY, colorObjY + colorObjH - 1 do local sprite = mapLayer:getTileAt(cc.p(x, map:getMapSize().height - y - 1)); sprite:setColor(cc.c3b(255, 0, 0)); --修改地图颜色 end end local player = display.newSprite("c.png"):addTo(self); player:pos(playerObj.x, playerObj.y); --在player处创建一个精灵 map:setTouchEnabled(true); --开启地图触摸 map:setTouchMode(cc.TOUCH_MODE_ONE_BY_ONE); map:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event) --触摸事件回调函数 if event.name ~= "began" then return true end --只处理点击事件 local point = cc.p(0, 0); point.x = math.floor(event.x / 32); -- point.y = map:getMapSize().height - math.floor(event.y / 32) - 1; --将点击坐标转换成瓦片坐标 local tiled = mapLayer:getTileAt(point); --获取对应瓦片 local gid = mapLayer:getTileGIDAt(point); --获取瓦片GID local p = map:getPropertiesForGID(gid); --通过GID获取信息 if type(p) == "table" and p.move == "true" then --判断是否可以移动 player:pos(tiled:getPosition()); end end);
相关文章推荐
- 【原创】cocos2d-x3.9蓝牙开发之蓝牙开启
- cocos2dx android 程序启动黑屏相关
- cocos2dx的jni使用
- cocos2d-x的自学之路0
- COCOS学习笔记--4种Label文字标签及其渲染特性
- cocos2d-x开发的《派对小游戏》-github源码分享
- cocosjs模态对话框
- android和cocos2dx c++工程交互(java和c++通过jni交互)
- 解决 cocos android 接入友盟推送 sdk 在5.0以下的系统出现UnsatisfiedLinkError 错误
- cocosPods下载第三方库使用
- quick-cocos2d-x 游戏开发——StateMachine 状态机
- Cocos2d-x 第五章,没学完的,没写完的博客,下个礼拜六接着写
- Cocos2s-x 3.0新成员Value、Vector和Map
- cocos 项目 接入友盟 android 推送sdk
- Cocos2d-x 场景、导演、层、精灵、菜单和节点
- cocos2dx 编写shader 遇到 溢出问题
- cocos2dx-3.x iOS 植入芒果广告
- Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界
- Cocos2d-x随记
- Cocos2d-x游戏主循环