![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
Ребят подскажите пожалуйста как сделать примитивное UI в OpenGL фон я загрузил при помощи режима Ortho2D к примеру создать кнопку и сделать чтобы она была кликательная?
|
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
рисовать в 2D объект, натягивать на него текстуру, менять текстуру в зависимости от поступающих данных (событий мыши и т.п.)
Самый простой вариант - квадами рисовать контролы. Т.е. каждый кадр проверяешь - где координаты мыши. Если они над элементом UI - меняем текстуру этого элемента на "подсвеченную" например. Если пришел клик от мыши И мышь над элементом UI - поменять текстуру на "нажатую" и вызвать нужную функцию.... Добавлено через 1 минуту и 30 секунд Если работал с чем-нить типа Qt или WxWidgets, можешь подсмотреть архитектуру у них. Или взять какой-нить готовый опенсорс GUI и подглядывать там. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
а можна по подробней пожалуйста?
Добавлено через 2 минуты и 40 секунд
всмысле обьясни пожалуйста как можна так сделать? |
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
Давай тогда начнем с того - что ты уже умеешь? Кроме "вывода фона". --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
я сделал окно в котором у меня создаеться прямоугольник в режиме ortho на весь экран и на него натягиваеться текстура
|
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
Сам сделал или просто скопировал откуда-то? Если сам - тогда в чем проблема сделать еще прямоугольников с другими текстурами и размерами?
Если не сам - то надо разбираться, а не копипастить. Вот полезный ресурс. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
я по ним и разбираюсь
Добавлено через 10 минут и 23 секунды прямоугольники я сделал с текстурой просто я не знаю как сделать ее кликательной |
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
ок.
У тебя же есть обработка событий мыши? "Кликательная" кнопка - это прямоугольник с тремя текстурами. Текстуры: "нормальная", "активная" и "нажатая". В зависимости от сообщения мыши эти текстуры надо менять. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
нет в этом и загвоздка я не знаю как ее сделать |
|||
|
||||
| Static |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
Если нет обработки событий мыши - смотри тот кусок кода, где
Там должны быть еще
При получении всех этих сообщений у тебя в переменной lParam будут координаты мыши
Там где звездочки - там должны быть нужные действия. Т.е. если мышь движется и ее координаты находятся внутри твоего прямоугольника-кнопки, то надо сменить текстуру кнопки на "активную". Если мышь нажата - сменить на "нажатую". Если кнопка мыши отпущена - сменить текстуру кнопки на "обычную". Это сообщение отредактировал(а) Static - 17.11.2009, 15:44 --------------------
Я не настолько безнадежен, как кажется... |
||||||
|
|||||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
спс за развернутый ответ. а если еше вопросы появяться можн в личку сообшения кидать?
|
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
Кидай конечно.. Я, правда, оперативности ответов не гарантирую.
Хотя лучше бы все на форуме обсудить - может еще кому пригодится. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
я нарисовал сумку как сделать чтобы поля были активными рисовать в каждой клетке полигон?
|
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
--------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| darkAv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.10.2009 Репутация: нет Всего: нет |
![]() Добавлено через 7 минут и 22 секунды вот для рпг( так что каждую секцию нужно отрисовывать поликами)? |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |