所以我有这个等距地图,我想在瓷砖上绘制精灵。 但是当然如果我得到等距瓷砖的位置,并且我在该位置上绘制一个精灵,它将不会在瓷砖顶部绘制,因为isomap是旋转的。
如果我为每个瓷砖位置绘制一个颜色立方体....
##
所以我的问题是,我必须做些什么来在瓷砖上绘制这个精灵?
我正在使用IsometricTiledMapRenderer
先谢谢,我一整天都在搜索这个问题,而且我缺乏英语词汇也没有帮助搜索
编辑:@dfour回答几乎完成了这个伎俩..继承人现在的样子......答案 0 :(得分:0)
您需要将笛卡尔值转换为等轴测量值。 这个Isometric Tutorial应该会有所帮助。
//Cartesian to isometric:
isoX = cartX - cartY;
isoY = (cartX + cartY) / 2;
//Isometric to Cartesian:
cartX = (2 * isoY + isoX) / 2;
cartY = (2 * isoY - isoX) / 2;
这些功能显示了如何从一个系统转换为另一个系统:
function isoTo2D(pt:Point):Point{
var tempPt:Point = new Point(0, 0);
tempPt.x = (2 * pt.y + pt.x) / 2;
tempPt.y = (2 * pt.y - pt.x) / 2;
return(tempPt);
}
function twoDToIso(pt:Point):Point{
var tempPt:Point = new Point(0,0);
tempPt.x = pt.x - pt.y;
tempPt.y = (pt.x + pt.y) / 2;
return(tempPt);
}