> Вопросы новичка ищу помощи!
MazaFaza
Отправлено: 21 февраля 2013 в 02:01
Post Id
cообщений: 5 пользователь offline

Доброго времени суток уважаемые! Получил недавно тестовое задание по HGE. Но плотно с ООП не сталкивался, а тем более с HGE. Толковой информации в интернете не нашел. Может вы подскажите:
1. Что есть виджет в HGE.
2. Как понять.. реализовать доб\уд виджетов с учетом order для widgetcontainer(класс который предлагается создать, также предлагается создать класс widget), порядок отрисовки определяется их order. Виджеты с одинаковым order отрисовываются в порядке добавления.
3. По итогу программа должна иметь 2 виджета 1й баттон(спрайт для нажатого состояния и спрайт для отжатого состояния) и имэдж (картинка 1 спрайт). Что есть спрайт?
Заранее благодарен!

 Top
Aceton
Отправлено: 21 февраля 2013 в 10:45
Post Id
cообщений: 155 администратор offline
1. Что есть виджет в HGE.

в нем нет такого понятия, поэтому нужно создать свой класс,который, как я понял, будет наследником объектов gui

2. Как понять.. реализовать доб\уд виджетов с учетом order для widgetcontainer(класс который предлагается создать, также предлагается создать класс widget), порядок отрисовки определяется их order. Виджеты с одинаковым order отрисовываются в порядке добавления.

widgetcontainer - по сути класс управления и хранения виджетами
order - просто индекс, по которому происходит сортировка

3. По итогу программа должна иметь 2 виджета 1й баттон(спрайт для нажатого состояния и спрайт для отжатого состояния) и имэдж (картинка 1 спрайт). Что есть спрайт?
Заранее благодарен!

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

Обновлено: 21 февраля 2013 в 10:45
 Top
MazaFaza
Отправлено: 22 февраля 2013 в 15:10
Post Id
cообщений: 5 пользователь offline

Ясно, спасибо. У меня есть еще некоторые вопросы, может есть возможность связаться с вами онлайн?

 Top
Aceton
Отправлено: 22 февраля 2013 в 21:01
Post Id
cообщений: 155 администратор offline

пиши сюда, чтобы по 20 раз другие потом не спрашивали...

Обновлено: 22 февраля 2013 в 21:02
 Top
MazaFaza
Отправлено: 23 февраля 2013 в 13:46
Post Id
cообщений: 5 пользователь offline

Вот мое тестовое задание. С ООП сложновато, но сейчас читаю книгу, опыт в С есть только с микроконтроллерами, поэтому не судите строго за косяковые вопросы. Как я понял из задания необходимо написать 2 класса, 1й будет содержать инфу о виджетах, второй будет выполнять функцию их хранилища, что то типа выделенной области в HGE в которой я буду рисовать свои виджеты. Заметил, что нет простого примера в HGE на тему как например вывести на экран кнопку или полосу прокрутки из базового класса гуй, или просто строку текста. Подскажите с чего начать, какая структура должна быть у программы, может быть пример простейшего класса, чтобы задать направление моей деятельности. Заранее благодарен!

Задание: разработать собственную систему виджетов (контролов)
Необходимо:
3) Разработать классы Widget и WidgetContainer (см. приложение с примерным интерфейсом)
4) Реализовать добавление/удаление виджетов с учетом order для WidgetContainer. Порядок отрисовки виджет определяется их order. Виджеты с одинаковым order отрисываются в порядке добавления.
5) Реализовать регистрацию функций обратного вызова для событий произошедших в виджете : нажатия/ отпускания кнопок мыши, попадания/выхода мыши в/из виджета
6) Реализовать корректное удаление всех созданный объектов в программе
7) Использовать stl (контейнеры и алгоритмы) и boost (shared_ptr)
8) Весь код выдержать в едином стиле (единая конвенция именования переменных, отступы, комментарии и пр.)
Поведение разработанной программы:
1) Программа должна иметь реализацию двух виджетов - Button/Кнопка/(спрайт для нажатого и спрайт для отжатого состояния) и Image/Картинка/(один спрайт)
2) На экран выводится WidgetContainer содержащий Button (id: ”btn1”) и два Image (id: ”img1” “img2”) один из которых скрыт.
3) При наведении мышки на видимый Image вызывается функция обратного вызова, которая показывает Image, который был до этого скрыт. Примерный код этой функции:
void OnMouseEnter(Widget * widget)
{
widget->GetWidgetContainer()->GetWidget(“img2”)->Show();
}
4) При клике на Button вызывает функцию обратного выхова, которая показывает еще один WidgetContainer который содержит Button и Image. Повторный клик – скрывает.
примерный код этой функции:
void OnMouseClick(Widget * widget)
{
Widget * container = widget->GetWidgetContainer()->GetWidgetContainer()->GetWidget(“container2”);
container->Show(container->IsVisible());
}
5) Поддержка клавиатуры не требуется
Приложение: примерный интерфейс widget’а.
void SetId(const std::string & id); // установить строковый идентификатор

void SetOrder(int order); // для изменения порядка отрисовки виджетов на экране (аппаратный z-order не используется)

void SetPos(float x, float y); // положение виджета
void SetSize(float w, float h); // размер виджета. Предполагается что все виджеты – прямоугольники

void OnPressLMouseButton(void); // нажатие левой кнопки мыши
void OnReleaseLMouseButton(void); // отпускание левой кнопки мыши
void OnEnterLMouseButton(void); // попадание мыши в виджет
void OnLeaveLMouseButton(void); // выход мыши за пределы виджета
bool Update(float dt); // обновление состояни виджета
void Render(void); // отрисовка виджета

void Show(); // показать виджет
void Hide(); // скрыть виджет
void AddEventHandler(); // регистрация фунций обратного вызова для различных союбытий виджета. Параметры требуется продумать самостоятельно

 Top
Aceton
Отправлено: 23 февраля 2013 в 16:16
Post Id
cообщений: 155 администратор offline

а куда это такое тестовое задание тебе требуется?

для человека не знающего ООП и HGE это будет не просто сделать.

Для начала тебе надо изучить простые примеры на hge, C++ ОПП, а только потом пробовать тестовое делать. А то получается история как часто бывает: "хочу сделать игру на с++, но я с++ не знаю, помогите..."

Вот ссылки:
HGE документация на русском языке
простые примеры на hge
C++ для начинающих

Обновлено: 23 февраля 2013 в 16:18
 Top
MazaFaza
Отправлено: 23 февраля 2013 в 16:55
Post Id
cообщений: 5 пользователь offline

это я работу искал, время выполнения вышло, интерес остался, решил с низов в верх залезть. Это все я видел, но не врубаюсь немного. Может хоть маленький пример какой покажешь работы с GUI в HFE? Хотя бы вывод кнопки, есть же класс hgeGUIButton, допустим я создам объект этого класса, допустим я статически задам параметры, как мне его нарисовать? Я пока дочитаю про классы и объекты, думаю после нашей беседы много вопросов у людей отпадет).

 Top
MazaFaza
Отправлено: 23 февраля 2013 в 17:01
Post Id
cообщений: 5 пользователь offline

Типа того что в примере 6 как я понял мне надо сделать? Только я вот не пойму все таки, что есть виджет, понятно что это наследованный от GUI класс, как бы это мне выразится, лексикой HGE это что?

 Top
Shocker
Отправлено: 24 февраля 2013 в 19:27
Post Id
cообщений: 26 пользователь offline

че не понятного то? сказано же - виджет наследник классов gui - hgeGUIText,hgeGUIButton и прочих, только с дополнительным функционалом.

 Top
CreepStas
Отправлено: 8 мая 2013 в 14:24
Post Id
cообщений: 46 пользователь offline

Под какие платформы можно делать игры на HGE?

 Top
Aceton
Отправлено: 8 мая 2013 в 16:23
Post Id
cообщений: 155 администратор offline
HGE runs on Microsoft Windows 98, 2000, NT, ME, XP and requires DirectX 8.0. It will run even on low-end video cards, including built in video cards such as Intel Solano (i815 chipset). HGE can be used with virtually any C++ compiler including Visual C++, Borland C++, MinGW and Metrowerks Codewarrior.
 Top
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
 



Новые сообщения