flash as3 - 创建坐标点数组

标签 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)。

最佳答案

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);     
}

例如,您有一个剪辑,并希望它在var angle:int = 36处移动var speed:int = 50px学位。

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

关于flash as3 - 创建坐标点数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480270/

相关文章:

actionscript-3 - 如何让应用程序在启动时自动扩展?

apache-flex - 使用 MP4 编码在 Flash 中流式传输网络摄像头视频

apache-flex - 弹性/AS3 : When to remove listeners?

flash - Flash 的单元测试 AS3 代码

android - flash air mobile 上鼠标事件和触摸事件的响应缓慢和延迟时间

php - 随时更改MP3频率?

actionscript-3 - 针对 Sprite 的 AS3 透明 png 碰撞检测

actionscript-3 - 如何在 Flash Builder 中使用 TLFTextField?

android - AIR AS3 Android Sound 播放一次但在淡出后不再播放

php - 从flash上​​传位图数据到laravel路由