Каков наилучший способ рисовать скины «кнопки» в видеоигре?

Я ищу идеи о том, как нарисовать скиновую «кнопку» в игровом приложении. Если я использую фиксированное спрайтовское не векторное изображение для фона кнопки, то я не могу легко изменить размер кнопки. Если я пишу код для рисования кнопки с изменяемым размером (например, рисуются кнопки Windows), то программист должен вмешаться - и это усложняет создание скинов. Другой вариант - разбить кнопку на 9 изображений меньшего размера (3х3) и растянуть их - как будто закругленные углы сделаны в HTML.

Есть ли другой "более легкий" способ? Какой лучший подход?

10.08.2008 03:11:27
3 ОТВЕТА
РЕШЕНИЕ

Если вы действительно хотите сделать это, способ сделать это с помощью текстурных координат. Как и в случае создания растягиваемого дизайна кнопки / панели в HTML с таблицей, вы просто определяете UV-координаты для углов, верхней растягиваемой области, нижней растягиваемой области, боковых растягиваемых областей, а затем и середины.

Пример того, как это реализовано в механизме XNA (хотя это механизм с закрытым исходным кодом), см. По адресу : http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

2
28.08.2008 15:22:00

Да. Я работаю над редактором. Это XAML-подобный язык (или OpenLaszlo-подобный, если хотите) для XNA. Таким образом, размер кнопок может быть изменен редактором. Размер кнопок также можно изменить с помощью таблицы стилей.

Я думаю, вы правы, что вполне вероятно, что кнопки будут иметь одинаковый размер в реальном дизайне. Но даже в приложении окна иногда нужно сделать кнопку шире, чтобы вместить текст.

0
10.08.2008 17:42:34

Это должно быть возможно с шейдерами. Вам, вероятно, придется выполнять поиск texel, но это сократит количество треугольников в сложном пользовательском интерфейсе.

0
24.06.2009 12:49:17