勾股算射线

/**
         * @param tx 目标x
         * @param ty 目标y
         * @param px 施法者x
         * @param py 施法者y
         * @param dist 需要运动的距离
         * @return 
         */
        private function calaulateDiscVec(tx:int,ty:int,px:int,py:int,dist:Number):Point
        {
            //var r:Number=.4 + .6 * Math.random();
            //var dist:Number=_skill.moban.skill_bodytrack * m.conf.mass * r;//击飞的距离,这是一个随机值,由怪物的重量决定
            var dx:int=tx - px;
            var dy:int=2 * (ty - py);
            var d:Number=Math.sqrt(dx * dx + dy * dy);//求两Vector2D的距离,即主角和怪物的距离
            var bx:int, by:int;//击飞后的目标坐标
            if (d > 1)//距离大于一个像素的时候
            {
                //                                bx=target.x + dist * 2 * dx / d;
                bx=tx + dist * dx / d;
                by=ty + dist * dy / d;
            }
            else
            {
                bx=tx;
                by=ty;
            }
            return new Point(bx,by);
        }

 

posted @ 2016-07-27 11:28  泥潭里的金鱼  阅读(180)  评论(0)    收藏  举报