InSelecto
07.01.2014, 07:06
Добрый день! Суть проблемы такова: я создаю игру в которой космический корабль должен перемещаться к контрольной точке, которую нужно ставить мышкой. Так вот, когда корабль добирается до контрольной точки о стоит на мете и дергается. Я вроде бы ввел условие для того чтобы этого не было, но что-то не пашет. Помогите плиз.
Player1 - корабль, Target1 - контрольная точка.
вот весь код проекта:
function randomNum(min:Number, max:Number):Number
{
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
function MovePlayer(player:Object, target:Object, speed:Number)
{
var angle = Math.atan2(target.y - player.y,target.x - player.x) * 180 / Math.PI;
var distance=Math.sqrt(Math.pow(target.y - player.y,2)+Math.pow(target.x - player.x,2));
trace(distance);
if (distance-speed > speed)
{
player.rotation = angle;
player.x += speed * Math.cos(angle);
player.y += speed * Math.sin(angle);
}
}
function MoveTarget(target)
{
target.x = mouseX;
target.y = mouseY;
}
var PlayerSpeed = 2;
Player1.x=50;
Player1.y=50
Target1.x=150;
Target1.y=150;
stop();
stage.addEventListener(Event.ENTER_FRAME, Render);
function Render(e:Event)
{
MovePlayer(Player1, Target1, PlayerSpeed);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, SetTarget);
function SetTarget(event:MouseEvent)
{
MoveTarget(Target1);
}
Player1 - корабль, Target1 - контрольная точка.
вот весь код проекта:
function randomNum(min:Number, max:Number):Number
{
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
function MovePlayer(player:Object, target:Object, speed:Number)
{
var angle = Math.atan2(target.y - player.y,target.x - player.x) * 180 / Math.PI;
var distance=Math.sqrt(Math.pow(target.y - player.y,2)+Math.pow(target.x - player.x,2));
trace(distance);
if (distance-speed > speed)
{
player.rotation = angle;
player.x += speed * Math.cos(angle);
player.y += speed * Math.sin(angle);
}
}
function MoveTarget(target)
{
target.x = mouseX;
target.y = mouseY;
}
var PlayerSpeed = 2;
Player1.x=50;
Player1.y=50
Target1.x=150;
Target1.y=150;
stop();
stage.addEventListener(Event.ENTER_FRAME, Render);
function Render(e:Event)
{
MovePlayer(Player1, Target1, PlayerSpeed);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, SetTarget);
function SetTarget(event:MouseEvent)
{
MoveTarget(Target1);
}