Сообщение от Nikich
Зачем так делать? Можно сразу тогда сразу изменять координаты pos на какое-то число. То есть нажата стрелка вверх - уменьшать Y и так далее.
Мне нужно векторное перемещение для того, чтобы не было бага с двойной скорости, когда нажимаешь сразу клавишу вверх и вбок. Знаю как можно это исправить без векторов( Cos45*speed), но это не торт, когда вектора есть.
|
Float spd = 3f; // Это скорость перемещения.
Vector Speed = Vector2.Zero; //вектор направления движения.
bool isMoved=false;
if нажато вверх { Speed+= new Vector2(0,-1); isMoved=true;}
if нажато вниз { Speed+= new Vector2(0,1); isMoved=true;}
if нажато влево { Speed+= new Vector2(-1,0); isMoved=true;}
if нажато вправо { Speed+= new Vector2(1,0); isMoved=true;}
if (isMoved)
{
Speed.Normalize(); //X и Y изменяются, так что длина вектора стает равной 1
Speed*=spd;
pos+=Speed;
}
Что-то типа такого можешь сделать.
