Нарисуйте расстояние в XNA 4 - PullRequest
2 голосов
/ 09 марта 2012

Так что в основном я создаю игру XNA в колледже, и мне нужна какая-то помощь, потому что я не могу понять это сам, и я довольно новичок в этом.

В основном у меня есть космический корабль с фоном прокрутки звезд.У меня падают астероиды, и в основном смысл моей игры в том, чтобы путешествовать как можно дальше, не будучи пораженным указанными астероидами.

Я действительно ищу некоторые рекомендации относительно того, как я могу измерить теоретическое расстояние, пройденное кораблем, и затем нарисовать его на экране?

Любая помощь будет принята с благодарностью.

Большое спасибо.

1 Ответ

1 голос
/ 09 марта 2012

Раствор А

Где-то в вашем коде вы определяете смещение фона для каждого кадра. Вы можете просто инвертировать * это значение и добавить его к общей сумме каждого кадра:

totalDistance += -backdropOffset;

Если смещение определено в пикселях, вы должны преобразовать его в единицу игрового мира (километры, световые годы, ...), прежде чем отобразить расстояние.

* Если корабль движется вперед, фон «скользит» в другом направлении.


Решение B (больше работы, но меньше головной боли)

На самом деле движется не фон; это корабль. Так почему бы не переместить корабль и не проследить за ним с помощью камеры?

Вы сможете делать все виды движений. Прямо сейчас вы должны инвертировать каждое движение корабля, а затем применить его к фону. Вроде нелогично, тебе не кажется? Таким образом, благодаря этому решению ваш код будет намного ближе к реальности => меньше головной боли во время отладки, упростит обслуживание вашего приложения, и вы будете быстрее добавлять новые функции.

И, конечно, получить общее расстояние было бы так же просто, как и

var totalDistance = myShip.Position.Y;
...