В настоящее время все мои текстуры масштабируются и перемещаются в нужное положение, когда область просмотра, в которую я рисую их, меняет размер или положение (мне не нужно делать какие-либо вычисления сами, чтобы сделать это).Как заставить DrawString() учитывать текущий видовой экран при рисовании, например Draw()?
Однако, когда я использую DrawString() (пока все еще находится в том же окне просмотра), а область просмотра меняет размер или позицию, текст не следует никакой логике, которую я могу выяснить. Он масштабируется так, как ожидалось, но движется очень странно.
Вот
(чтобы получить имя главного игрока, чтобы правильно двигаться при масштабировании вниз, я пришел с этой плохой "формула":. X - = Viewport.X/2.15f Y - = Viewport.X/3.2f)
Теперь, есть ли способ сделать DrawString() работать как Draw(), когда дело доходит до масштабирования с помощью видовых экранов?
Путь я получил его настроить сейчас:
_spriteBatch.GraphicsDevice.Viewport = ScreenGame.Viewport;
// Draw tile sprites
// Draw player sprites
// Draw text
Мои извинения заранее, если я забыл упомянуть что-то соответствующее.
Почему имя Эрры не двигается? Разве это не вызов 'DrawString', или предполагается, что вы хотите, чтобы конечный результат был? – AustinWBryan
@ Имя AustinWBryan Erra является основным игроком, я не знаю, почему я написал «основного игрока» вместо «Erra», я думаю, что это усталость. Итак, да, имя Erra - это то, как я хочу, чтобы конечный результат был, но формула, которую я использовал для имени Erra, работает только потому, что она находится в центре области просмотра (опять же, я не узнал, как получить текст для масштабирования без придумал формулу для него, которой я еще не смог) – Erra