Я разрабатываю пользовательский интерфейс для школьного проекта, и я попробовал методы, аналогичные масштабированию моей текстуры, как указано здесь, но вот проблема:
Наш проект разработан с разрешением 1440 x 900, поэтому я сделал свои собственные изображения, соответствующие этому разрешению экрана. Когда нам нужно продемонстрировать наш проект в классе, проектор может рендерить только до 1024 x 768, поэтому многие вещи на экране пропадают. Я добавил возможности изменения размера окна, и я делаю масштабирование следующим образом. У меня есть свой собственный класс, называемый «кнопка», который имеет текстуру 2d и положение Vector2, сжимаемое кнопкой (Texture2d img, ширина поплавка, высота поплавка).
Моя идея состоит в том, чтобы установить положение изображения в масштабируемом% от ширины и высоты окна, поэтому я пытаюсь установить положение изображения в диапазоне от 0 до 1, а затем умножить на ширину окна. и высота, чтобы все масштабировалось правильно.
(этот код не является правильным синтаксисом, я просто пытаюсь передать смысл)
Button button = new Button(texture, .01, .01 );
int height = graphicsdevice.viewport.height * button.position.Y;
int width = graphicsdevice.viewport.width * button.position.X;
Rectangle rect = new Rectangle(0,0,width, height);
sprite.being()
sprite.draw (button.img, rect, color.white);
sprite.end
это не приводит к масштабированию, когда я рисую его и изменяю размер окна, перетаскивая мышь. если я начну с жесткого кода с другой высотой и шириной буфера, изображение остается примерно одинакового размера независимо от разрешения, за исключением того, что чем меньше разрешение, тем более пиксельное изображение выглядит.
Каков наилучший способ разработки моей программы с учетом динамического масштабирования texture2d?