移动
复制内容到剪贴板
[
本帖最后由 wizim 于 2008-4-9 18:07 编辑 ]
代码:
var dx,dy;
var target_x,target_y;
var speed=5;
stage.addEventListener(MouseEvent.MOUSE_DOWN,handle)
addEventListener(Event.ENTER_FRAME,enterframe)
function handle(e)
{
target_x=stage.mouseX
target_y=stage.mouseY
var jiaodu=taget_xy_to_jiaodu(mc.x,mc.y, target_x,target_y);
jiaodu_to_dxdy(jiaodu)
}
function enterframe(e)
{
if(distance(mc.x,mc.y,target_x,target_y)<15)
{
dx=0;
dy=0;
}
mc.x=mc.x+dx;
mc.y=mc.y+dy;
}
function jiaodu_to_dxdy($jiaodu:Number)
{
dx = Math.cos($jiaodu/180*Math.PI)*speed;
dy = Math.sin($jiaodu/180*Math.PI)*speed;
}
function distance(x1:int,y1:int,x2:int,y2:int):Number
{
return Math.sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1))
}
function taget_xy_to_jiaodu($x0:int,$y0:int,$x:int,$y:int):Number
{
var a:Number;
if ($x0-$x<=0)
{
a=-Math.atan(($y-$y0)/($x0-$x))*180/Math.PI;
} else
{
a=180-Math.atan(($y-$y0)/($x0-$x))*180/Math.PI;
}
if(a==-90||a==90)
{
return taget_xy_to_jiaodu($x0,$y0,$x+1,$y)
}
if(!isNaN(a))
return a;
else
return 0;
}
附件
-
green.fla
(45 KB)
-
2008-4-9 18:07, 下载次数: 11
-
green.swf
(970 Bytes)
-
2008-4-9 18:07, 下载次数: 33
-
Math.atan2的用法在我的博客里有,想了解的可以看一下,Math.atan2不错,值得做游戏的人看一下!