Jump to content

Как изменить разрешение Splash Screen


photo

Recommended Posts

По документации нашел код как сделать свой Splash Screen, и не могу понять как изменить разрешение изображения

EngineWindow main_window = WindowManager.MainWindow;
			if (!main_window)
			{
				Engine.Quit();
				return false;
			}

			ivec2 main_size = main_window.Size;

			
			vec4 transform = new vec4(1.0f, 1.0f, 0.0f, 0.0f);

			
			LoadingScreen.Enabled = true;

			
			LoadingScreen.Transform = transform;

		


		

			LoadingScreen.TexturePath = "Logo.png";
			
			

			
			LoadingScreen.Text = "<xy x=\"%50\" dx=\"0\" y=\"%50\" dy=\"0\"/>LOADING_PROGRESS";

			
			int duration = 5;
			DateTime begin = DateTime.Now;

			while (DateTime.Now.Subtract(begin).TotalSeconds < duration)
				LoadingScreen.Render((int)(DateTime.Now.Subtract(begin).TotalSeconds / duration * 100.0f));

			
			LoadingScreen.Enabled = false;

image.thumb.png.9ad4cd878d729f900bd6483af01546e3.png

Link to comment

Добрый день, @heos666,

Чтобы установить точное разрешение изображения загрузочного экрана, нужно вместо 

LoadingScreen.TexturePath = "Logo.png";

загрузить изображение вручную, сменить ему разрешение и установить при помощи SetImage():

Image screen_image = new Image("Logo.png");
screen_image.Resize(main_size.x, main_size.y * 2); // высота x2, т.к. сплэш состоит из двух половин
LoadingScreen.SetImage(screen_image);

Но если вам нужно только изменить масштаб изображения, достаточно поправить трансформацию:

vec4 transform = new vec4(1.0f, 1.0f, 0.0f, 0.0f);

Где, если не ошибаюсь, первые 2 компонента представляют масштаб по ширине и высоте (но с учетом сохранения соотношения сторон), а вторые — выравнивание по горизонтали и вертикали (напр. [0.0f; 0.0f] — левый верхний угол, [1.0f; 1.0f] — правый нижний).

Спасибо!

Link to comment
2 hours ago, thomalex said:

Добрый день, @heos666,

Чтобы установить точное разрешение изображения загрузочного экрана, нужно вместо 

LoadingScreen.TexturePath = "Logo.png";

загрузить изображение вручную, сменить ему разрешение и установить при помощи SetImage():

Image screen_image = new Image("Logo.png");
screen_image.Resize(main_size.x, main_size.y * 2); // высота x2, т.к. сплэш состоит из двух половин
LoadingScreen.SetImage(screen_image);

Но если вам нужно только изменить масштаб изображения, достаточно поправить трансформацию:

vec4 transform = new vec4(1.0f, 1.0f, 0.0f, 0.0f);

Где, если не ошибаюсь, первые 2 компонента представляют масштаб по ширине и высоте (но с учетом сохранения соотношения сторон), а вторые — выравнивание по горизонтали и вертикали (напр. [0.0f; 0.0f] — левый верхний угол, [1.0f; 1.0f] — правый нижний).

Спасибо!

Теперь изображение разделилось на две части и поочередно показывает сначала верхнюю потом нижнюю часть

image.thumb.png.27797632f27c28fbaaec71b8b11fcac8.png

Link to comment
5 minutes ago, heos666 said:

Теперь изображение разделилось на две части и поочередно показывает сначала верхнюю потом нижнюю часть...

Это вполне ожидаемое поведение. Для экрана загрузки нужно подготовить изображение, состоящее из двух частей — для начального состояния (сверху) и конечного (снизу), блендинг между ними происходит по альфа каналу в соответствии с прогрессом загрузки.

В этом видеоуроке можно ознакомиться со всеми аспектами.

Спасибо!

  • Like 1
Link to comment
×
×
  • Create New...