PDA

Просмотр полной версии : [Function] GetSpriteSize



m1n1vv
12.01.2018, 16:43
Описание:

В 0.3.DL у многих серверов будет свой интерфейс со своими текстурами. Но в TD не так просто подогнать оригинальный размер текстуры под спрайт. Эта функция все вычислит в зависимости от размера текстуры и разрешения экрана на которым был нарисован шаблон. Если вдруг останется немного размытия, то просто сдвиньте спрайт.

Параметры:

width - ширина экрана
height - высота экрана
wt - ширина текстуры
ht - высота текстуры
&Float:ws - вернут ширину спрайта
&Float:hs - вернет высоту спрайта


Возвращаемое значение:

Возвращает размер спрайта в зависимости от размера текстуры.

Плюсы реализации:

Можно добиться высокого качества спрайта:
http://tscars.narod.ru/p-w/new/getspritesize.png
Также можно вычислить позицию TD.

Код:


stock GetSpriteSize(width, height, wt, ht, &Float:ws, &Float:hs)
{
ws = wt*(640.0*100.0/width)/100.0;
hs = ht*(448.0*100.0/height)/100.0;
return 1;
}


Пример использования:


main()
{
new
Float:x,
Float:y,
width = 1920,
height = 1080;

//Размер текстуры: 15x15
GetSpriteSize(width, height, 15, 15, x, y);
printf("x: %.2f\ny: %.2f", floatroundto(x, 2), floatroundto(y, 2));
}

См. также:

[Function] floatroundto


Автор: m1n1vv

pawnoholic
19.01.2018, 01:09
Как я могу узнать ширину и высоту экрана конкретного игрока?

Да и почему по высоте используется значение 448.8 вместо 480?

Geebrox
19.01.2018, 01:18
Да и почему по высоте используется значение 448.8 вместо 480?

Открой редактор текстдравов и измерь

Batya_Montes
19.01.2018, 12:19
Как я могу узнать ширину и высоту экрана конкретного игрока?

Да и почему по высоте используется значение 448.8 вместо 480?

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