Игра XNA как сделать змеиный хвост - PullRequest
0 голосов
/ 21 февраля 2012

Я пытаюсь понять, как сделать змеиный хвост для игры XNA.Сама змея является спрайтом 34x20 пикселей, а мой спрайт хвоста - спрайтом 34x20.Но у меня проблемы с поиском способа создания сказки.Моя первая идея - сделать так, чтобы это основывалось на тайлах и запоминании посещенных тайлов до предела длины хвоста.но это приведет к отставанию хвоста, поэтому после того, как змея покинет плитку, будет хвост.

У кого-нибудь есть представление, что я могу сделать хвост длиной X, который следует за змеей, гладкимигра XNA?

Змеиное движение основано на расположении пикселей, и не может остановиться, только изменить направление!

1 Ответ

0 голосов
/ 21 февраля 2012

Ник Грэйвелин написал Сэмми Змея для XNA некоторое время назад (хотя и в XNA 3), но я думаю, что вы найдете это наиболее полезным для вашей игры.

В этом примере он использует List<Point> для хранения точек тела, что позволяет очень легко добавлять новые части тела:

bodyPoints.Add(new Point(2, 0));
bodyPoints.Add(new Point(1, 0));
bodyPoints.Add(new Point(0, 0));

Затем, когда дело доходит до рендеринга, выможно просто перебрать точки тела:

for (int i = 1; i < bodyPoints.Count - 1; i++)
{
    DrawBody(
        spriteBatch, 
        bodyPoints[i], 
        bodyPoints[i - 1], 
        bodyPoints[i + 1]);
}
...