[ActionScript 3] 详解 ARPG游戏人物移动 的实例

感谢S_eVent ,这次重新把这个知识很多的实例拿出来再次分享,附上详细说明,相信大家再也没有任何问题了。
图例
QQ截图20121128202258.jpg 

下面要做的就是让人物移动到目标点
核心代码:
  1. newMouseX = e.stageX;//目标位置X轴

  2. newMouseY = e.stageY;//目标位置Y轴

  3. var dx:Number = e.stageX - ren.x;//人物与目标的X轴距离(三角函数 邻边[长度])

  4. var dy:Number = e.stageY - ren.y;//人物与目标的Y轴距离(三角函数 对边[长度])

  5.                         

  6. //@方法1

  7. newSpeedX = 10 * Math.cos(Math.atan2(dy, dx));//斜边上X轴的移动分速度(10直线水平速度)

  8. newSpeedY = 10 * Math.sin(Math.atan2(dy, dx));//斜边上Y轴的移动分速度

  9.                         

  10. //@方法2

  11. //var juli:Number = Math.sqrt(dx * dx + dy * dy);

  12. //newSpeedX = 10 * (dx / juli);

  13. //newSpeedY = 10 * (dy / juli);

复制代码

这个核心代码是求出人物在C边上所移动的每个x,y的坐标。
第三、四行的 dx就是图一三角形的a边,dy就是图一三角形的b边。

第七行:
10是每帖在C边上移动的距离,我们用10除以(邻边与斜边的比例) 就能得现 a边上每帧应该走多少的值,也就是x坐标

第八行:
我们用10除以(对边与斜边的比例) 就能得现 b边上每帧应该走多少的值,也就是y坐标

知道了每帧的x和坐标,就能确定c边上的每个帖的位置 不是吗?任意一点都是用x,y来确定的。



本帖需要用到的所有三角函数,详解,都在这个贴子里,大家可以看看就明白了:
http://bbs.9ria.com/thread-162585-1-1.html


你可能感兴趣的:(三角函数)