Я хочу переместить 3D-модель автомобиля, когда я нажимаю клавишу со стрелкой влево или вправо, я меняю угол, когда я нажимаю стрелку вверх, когда машина едет.
Это код в методе обновления:
float dirX = (float)Math.Sin(angle);
float dirY = (float)Math.Cos(angle);
if (Keyboard.GetState().IsKeyDown(Keys.Up))
{
position += new Vector3(-dirX, dirY, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Left))
{
angle += 0.015f;
}
if (Keyboard.GetState().IsKeyDown(Keys.Right))
{
angle -= 0.015f;
}
}
Это расчетная часть, но, очевидно, мне также нужно двигать машину по экрану.
Я хочу, чтобы автомобиль двигался вперед, а не вверх, поэтому я решил повернуть его на 90 градусов по оси X, а также хочу повернуть автомобиль, когда нажимаю левую или правую клавиши.
Я написал этот код:
world = Matrix.CreateTranslation(position) * Matrix.CreateRotationY(angle) * Matrix.CreateFromAxisAngle(Vector3.UnitX, MathHelper.ToRadians(-90));
Этот код не работает, кто-нибудь может сказать мне, как я могу его переместить?