AS3-45度角地图坐标转换一(Diamond)

AS3-45度角地图坐标转换一(Diamond)

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);
 }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值