flash as3 - 创建一个坐标点数组

时间:2011-12-12 20:19:14

标签: flash actionscript-3

我想创建一个简单的点数组,以45度为增量表示一组顺时针坐标,这样数组就是(从12点开始):

var coordArray : Array = [
                  new Point(0,-1),
                  new Point(1,-1),
                  new Point(1,0),
                  new Point(1,1),
                  new Point(0,1),
                  new Point(-1,1),
                  new Point(-1,0),
                  new Point(-1,-1)
                  ];

我正在寻找创建这个数组的最有效方法(理想情况下,坐标本身是通过某种方程生成的)。最好的方法是什么?我想要做的就是在舞台上创建一个相对于剪辑当前坐标的坐标,根据剪辑移动,这样如果剪辑的移动距离为50px,剪辑的深度为0,它会在coordArray [0]位置移动50px,或在x方向移动0 * 50,在y方向移动-50px(0,-1)。

1 个答案:

答案 0 :(得分:3)

var points:Array = [];
var length:int = 50;
var angle:int = 45;
for(var i:int = 0; i < 360 / angle; i++)
{
  radian:Number = i * angle * Math.PI / 180;
  var p:Point = new Point(Math.cos(radian) * length, Math.sin(radian) * length);
  points.push(p);     
}

例如,您有一个clip,希望它在var speed:int = 50度上移动var angle:int = 36 px。

radian:Number = angle * Math.PI / 180;
clip.x += Math.cos(radian) * speed;
clip.y += Math.sin(radian) * speed;