закругленные края и т. Д. Лучше всего обрабатывать, создавая изображение того, как вы хотите, чтобы всплывающее окно выглядело, и стилизуя его так, как вы хотите.
Допустим, вы сделали коробку, 300px на 300px
тогда оттуда вы захотите обернуть свой текст внутри и, возможно, прокрутить его или, как вам захочется, проверив высоту и ширину текста, чтобы найти, где обернуть текст ...
например, вы можете создать такую функцию, которая будет брать ваш полный текст и переносить его на основе некоторых измерений.
private string WrapText(string text)
{
string[] words = text.Split(' ');
StringBuilder sb = new StringBuilder();
float linewidth = 0f;
float maxLine = 250f; //a bit smaller than the box so you can have some padding...etc
float spaceWidth = spriteFont.MeasureString(" ").X;
foreach (string word in words)
{
Vector2 size = spriteFont.MeasureString(word);
if (linewidth + size.X < 250)
{
sb.Append(word + " ");
linewidth += size.X + spaceWidth;
}
else
{
sb.Append("\n" + word + " ");
linewidth = size.X + spaceWidth;
}
}
return sb.ToString();
}
если ваш текст слишком большой для вида сверху вниз - вам нужно будет придумать какой-нибудь вид прокрутки текста или нажать кнопку «продолжить», чтобы загрузить следующую страницу текста, например.
наконец, что касается разрешения, это зависит от платформы, вы хотите построить свою игру и искусство к платформе, например, изображение размером 300x300 для диалогового окна, вероятно, не будет работать так здорово, если это то, что вы создаете в XNA 4 для телефона, но было бы хорошо для сборки xbox, и наиболее логично для сборки ПК. Хотя в окнах просмотра вы, вероятно, могли бы использовать ту же графику (возможно, стоит использовать изображения меньшего размера для гораздо меньшего экрана.
для разрешения вопросов типа вы, вероятно, захотите взглянуть на такие вещи, как безопасная область плитки и прочитать немного о viewports . Также предлагается установить для своей игры разрешение 1280 x 720, то есть собственное разрешение 720p, которое должно работать на всех телевизорах и которое дает вам представление о вашем искусстве.
public Game1()
{
graphics = new GraphicsDeviceManager(this);
this.graphics.PreferredBackBufferWidth = 1280;
this.graphics.PreferredBackBufferHeight = 720;
Content.RootDirectory = "Content";
}
Надеюсь, это хотя бы подтолкнет вас в правильном направлении.