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);总结
以上是内存溢出为你收集整理的cocos2dx TMX地图全部内容,希望文章能够帮你解决cocos2dx TMX地图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)