Хочу сделать vgui-класс, выводящий текст на родительской Panel (это только лишь в данный момент хочется чтобы только лишь выводил).
Текст располагается относительно своей позиции, делая отступ в зависимости от textLocation.
Как сейчас я понимаю принцип работы панелей:
1) Создали мы экземпляр класса, унаследованного от Panel;
2) Задали родителя, который вызывает paint'ы дочерних элементов;
3) Вот тут уже под вопросом. Внутри paint'а самого экземпяра система координат либо относительная (К примеру, drawSetTextPos(0, 0) ==getPos(varX, varY), то есть положение экземпляра на родителе), либо абсолютная (drawSetTextPos(varX, varY)==getPos(varX, varY), может мутно, но надеюсь, вы меня поняли :-) )
В итоге, отрисовка только фона, притом, что в конструкторе задал false. текста нету.
~ X ~ там конструкторы есть, которые инициализируют m_linkValue.
Сейчас уже кое-что прояснилось, система координат относительная, а проблема была в том, что у объекта не было size'а, он отрисовывался, но не было места куда выводить.
Другая проблема.
Я приведу несколько примеров, изменяя x. Всё это на Xash3D
1) x=0 y=0
2) x=-10 y=0
3) x=-11 y=0
Вроде всё нормас, на один пиксель сместились
4) x=-12 y=0
И ещё на один пиксель, и аж на два символа сместились
Вот всё это к чему, и опять таки повторюсь. Может я неправильно расставляю позиции, или ещё что делаю не так?
Просто у меня догадок особо не стало, когда этот же код на GoldSrc (SDK 2005 с этого сайта вроде бы) скопировал, и там нормально работает, по крайней мере без всяких этих тестов, уже текст нормально позиционируется.
GoldSrc. Зададим уже сразу l_center
x=getPosX(/*функция для наглядности*/)-wide/2; y=0
Думаю в подробностях объяснил свой вопрос, что посоветуете?
А gaitsequence как-то влияет на viewangles и направление движения игрока как энтити или оно просто для красоты, для модельки? И есть ли в ХЛ какой-то ограничитель скорости поворота игрока? (при thirdperson)
VGUI - это местный ад для хл-моддеров. В него ссылают по плохим указателям... )
Я сам уже не помню, каким чудом что-то там сделал. Хотя, нет. Так и не сделал. Меню с игроками появляется не там где я изначально хотел
Математический вопрос есть по эффекту дымка из паранои, который я использовал как базу для своих эффектов, вернее по его размеру, он там при отскакивании от стены с нуля увеличиваться к тому времени к которому он должен исчезнуть до своего полного размера:
C++ Source Code:
1
float frac = (time - birthTime) / m_fLife;
2
if (frac > 1)
3
return 1; // delete object
4
5
float size = PuffSize * frac;
А как правильно сделать наоборот, чтобы он заранее появлялся в своем полном размере, и уменьшался до нуля к frac 1? Я пробовал как-то так но мне что-то кажется что это не совсем корректно: size = PuffSize - (frac*PuffSize);
makevfont
1) можно ли с его помощью создать шрифт с Кириллицей? Если да, то подробнее пожалуйста.
2) Правильно ли я понимаю, в значении параметра font нужно указывать шрифт, который установлен в системе? то есть, есть у меня ttf Terminus, windows открывает его своим стандартным приложением просмотра шрифтов, в котором можно установить шрифт.
Дядя Миша всё понял спасибо.
Сразу назревает вопрос, что не так я делаю?
makevfont.exe -font "Times New Roman" -pointsize 16 "1024_MyFont.tga"
И на месте где должна быть кириллица "кракозябра"
Не совсем понял, makevfont? Если вы про него, то может, чисто ради эксперимента, у вас на компьютере есть makevfont. Не зальёте ли его на файлообменник? буду признателен
Добавлено 30-04-2018 в 13:09:
Отмена с "заливом".
Нашёл интересный пост: https://hlfx.ru/forum/showthread.php?threadid=1827
Он меня натолкнул на решение проблемы со шрифтом TTF, установленным пользователем. Может кому пригодится.
Установил, скаченный из интернета, Terminus. До этого у меня проблем с ним не было, потому что в программах задавал путь к файлу ttf. А тут не получается -font "Terminus". Зашел в реестр (путь из того поста, только не в FontSubstitutes, а Fonts). И увидел там свой шрифт - Terminus (TTF) (там у всех шрифтов в конце дописывается "%пробел% (TrueType)"). В итоге font "Terminus (TTF)" прокатил. но кракозябры остались. Вот тут уже пошёл по совету автора поста - сделать RUSSIAN_CHARSET в функции CreateFont проекта makevfont. Только сегодня скачал full sdk, и увидел эти проекты. Единственное, что осталось "одолеть", это makefont, с первого раза не получилось сделать.