菱形瓦片地图,坐标转换问题

计算菱形瓦片地图内object的实际瓦片坐标:

//将像素坐标转化为瓦片坐标,偏移坐标以瓦片高度为准,计算瓦片位置需要以object的偏移量计算
getTilePos: function(posInPixel) {
    var tileSize = this.theMap.getTileSize()
    var cellHeight = tileSize.height;
    var cellX = Math.floor(posInPixel.offset.x / cellHeight);
    var cellY = Math.floor(posInPixel.offset.y / cellHeight);
    return cc.p(cellX, cellY);
},

瓦片坐标转换成实际坐标:

//获取坐标瓦片对应所在
getReleasePos:function (cellX,cellY) {
    var cellXCount = this.theMap.getMapSize().width;
    var cellYCount = this.theMap.getMapSize().height;
    var cellWidth = this.theMap.getTileSize().width;
    var cellHeight = this.theMap.getTileSize().height;
    var mapPixWidth = cellWidth * cellXCount;
    var mapPixHeight = cellHeight * cellYCount;
    // cellX和cellY是tilemap中的单元格。
   var posX = 0 + (cellX - cellY) * cellWidth / 2;
   var posY = mapPixHeight/2 - (cellX + cellY) * cellHeight / 2;
    //减去瓦片地图的锚点对应坐标系的位置
    return cc.p(posX,posY);
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值