Diamond地图中的转化公式:
p=======屏幕xy坐标系中的点
p45=====Diamond 地图中的点
var p45 :Point = new Point();
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 的显示
像素坐标进行转换,对其数组的逻辑坐标并不修改
import flash.display.MovieClip;
var arr: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],
];
var rows=arr.length;
var col=arr[0].length;
for(var i:int=0;i<rows;i++)
{
for(var j:int=0;j<col;j++)
{
var m:MovieClip=new mc();
m.txt.text=i+"*"+j;
m.x=i*64;
m.y=j*32;
this.addChild(m);
}
}
//绘制45度菱形地图
initIso();
//
function initIso()
{
for(var i:int=0;i<rows;i++)
{
for(var j:int=0;j<col;j++)
{
var m:MovieClip=new mc();
m.txt.text=i+"*"+j;
m.x =(i -j) * 64/2+200;
m.y =(i + j) * 32/2+200;
this.addChild(m);
}
}
}