45度斜角地图菱形坐标转换
发布时间:2020-12-15 18:29:28 所属栏目:百科 来源:网络整理
导读:我们要做一个45度游戏地图中,那么如何判断鼠标点中了哪一个碎片呢??如图: ? 也许你想到通过解两个直线方程(点斜式): ? 不过这是个笨办法,那么有更简单的办法吗? 开门见山: *********************************** N=int(x/TileW - y/TileH) M=int(x/
我们要做一个45度游戏地图中,那么如何判断鼠标点中了哪一个碎片呢??如图:
? 也许你想到通过解两个直线方程(点斜式): ? 不过这是个笨办法,那么有更简单的办法吗? 开门见山: *********************************** N=int(x/TileW - y/TileH) M=int(x/TileW + y/TileH) *********************************** N,M是碎片的索引,从0开始。 TileW,TileH是碎片的长宽。 x,y是鼠标坐标,但是注意坐标系原点。 以上过程如下图演示: ? 我们建立一个新的坐标系。以花体字的u,v为新的基向量。 然后把鼠标坐标(注意原点!)(x,y)转换成基于新的基集t={u,v}的展开式: 使用的时候很简单 公式是 ------------------------------------------------------------------------------------------------------------ 下面说的是45度地图,地图坐标系在顶端的格子计算方法 关于45度角地图中像素坐标和地图坐标之间的转换,网上有各种方法,其实坐标转换就是计算tite宽和tile高在像素坐标中的偏移值,本方法是针对 tite块原点坐标在菱形的顶点的位置的坐标转换,在45度角地图中,方块形状为菱形,你可以用flash cs工具或其他绘图工具很快的创建出这种菱形方块,按以下3个步骤就可以了:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |