У меня возникли проблемы с решением вопроса о том, как использовать массив для моей змеиной игры. У меня голова размером 20x20 пикселей в окне размера 400x400.Как перемещать объект через сетку
areaGrid = new Vector2[columns, rows];
for (int x = 0; x < columns; x++)
{
for (int y = 0; y < rows; y++)
{
areaGrid[x, y] = new Vector2(x * 20, y * 20);
Console.WriteLine("areaGrid[{0},{1}] = {2}", x, y, areaGrid[x, y]);
}
}
Так, естественно, будет 400 «блоков», которые могут занимать голова змеи плюс хвост. У меня голова, нарисованная в массиве в [5, 5], которая является сеткой 100, 100 на сетке. Я хочу, чтобы голова перемещалась на 20 пикселей за раз, что является новой точкой в массиве. Итак, для примера, движение вправо поместило бы голову в [5, 6] в массив и на 120, 100 на сетке. Я просто не знаю, как это сделать. Как мне реализовать перемещение по массиву в моем методе обновления?
[Здесь] (Http: //forum.chaos- project.com/index.php?topic=12210.0) реализована игра змей и имеет функции, которые могут вам понадобиться. – noobob
Всегда полезно умножить скорость движения на прошедшее время. Итак, Position + = new Vector2 (x * Speed * gameTime.ElapsedTime.TotalSeconds, y * Speed * gameTIme.ElapsedTime.TotalSeconds); Например, это будет перемещать «20 пикселей в секунду», чтобы вы могли намного лучше контролировать столкновения. Особенно, если вы играете в Snake. – Deukalion