AS3-45度角地图坐标转换一(Diamond)
Diamond地图中的转化公式: p=======屏幕xy坐标系中的点 p45=====Diamond地图中的点varp45:Point=newPoint(); p45.x=origin.x+(p.x-p.y)*砖块宽度/2; p45.y=origin.y+(p.x+p.y)*砖块高度/2;
需要注意的是坐标系对应关系,X轴对应45度地图中的M轴Y对应N轴线,这个公式中对2个坐标系下MC的显示 像素坐标进行转换,对其数组的逻辑坐标并不修改
importflash.display.MovieClip; vararr:Array=[ [1,1,1,1,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1], [1,1,1,1,1,1], ]; varrows=arr.length; varcol=arr[0].length; for(vari:int=0;i<rows;i++) { for(varj:int=0;j<col;j++) { varm:MovieClip=newmc(); m.txt.text=i+"*"+j; m.x=i*64; m.y=j*32; this.addChild(m); } }
//绘制45度菱形地图 initIso(); // functioninitIso() { for(vari:int=0;i<rows;i++) { for(varj:int=0;j<col;j++) { varm:MovieClip=newmc(); m.txt.text=i+"*"+j; m.x=(i-j)*64/2+200; m.y=(i+j)*32/2+200; this.addChild(m); } } }