PMG

Форумы по созданию игр
Текущее время: 18 окт 2021 14:12

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 14:35 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
Добрый день я только начинаю программировать, использую Visual c++. Подскажите пожалуйста как загрузить битмап в бекгроунд, и как сделать примитивный UI, и как это реализовать желательно средствами OpenGL зараннее спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 16:02 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
dark elf, читал эти уроки http://pmg.org.ru/nehe/index.html ? Я с них начинал, понятно и доступно написаны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 16:26 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
это понятно но там ни слова не написанно про то как сделать бекгроунд и как сделать UI


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 16:32 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
а ты что собираешься делать? программу или игру? если программу? то нужно формы использовать - скачай книжку C/C++ и MS Visual C++ 2008 для начинающих http://depositfiles.com/ru/files/zjazgfijr (вроде ссылка рабочая)
А если игру делаешь, то в 3D просто плоскость рисуешь в ortho режиме


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 16:49 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
bad_duck писал(а):
А если игру делаешь, то в 3D просто плоскость рисуешь в ortho режиме


а можно с этого момента как то поподробней плз :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:12 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
Например:
Код:
bool Display (void)
{   
    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);      
    map();     //отрисовка в 3D
    ortho=1;  //у меня это глобальная переменная типа bool. Мне просто это нужно во многих местах использовать
    Reshape(WindowW,WindowH,0,0);  // int WindowW,WindowH размеры окна
    screen2d();     //отрисовка в 2D
    ortho=0;     
    glFlush();
    return TRUE;                              
}

вот reshape
Код:
void Reshape(GLsizei Width, GLsizei Height, GLsizei x0, GLsizei y0)      
{
    glViewport(x0, y0, Width, Height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if(ortho==1)   
       gluOrtho2D(0, (float)Width, 0, (float)Height);
    if(ortho==0)
       gluPerspective(45,(float)Width/Height,0.01,300);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();   
}

а в screen2d рисуешь всё что хочешь, например прямоугольник:
Код:
glLineWidth(1);
glBegin(GL_LINE_STRIP);
      glVertex2f(x, y);
      glVertex2f(x_1, y);
      glVertex2f(x_1, y_1);
      glVertex2f(x, y_1);
      glVertex2f(x, y);   
glEnd();

если не знаешь куда этот код вставить читай первые 5 уроков NеHе. Для того чтобы сделать бекграунд нужно в ortho режиме (т.е. в screen2d()) нарисовать прямоугольник методом glBegin(GL_QUADS);
Код:
glBegin(GL_QUADS);
      glVertex2f(x, y);
      glVertex2f(x_1, y);
      glVertex2f(x_1, y_1);
      glVertex2f(x, y_1);
      glVertex2f(x, y);   
glEnd();

с координатами от x=0, y=0; x_1=WindowW, y_1=WindowH.
Но это всё годится для игр, где не будет стандартных виндуосовских кнопочек, окошек для ввода и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:15 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
спс за ответ, а как сделать кнопку кликабельной?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:16 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
в смысле? Какую кнопочку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:18 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
ну нарисовать по верх бекграунда кнопку и присвоить ей действие. скажем закрыть приложение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:26 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
не получится. Если делать как в уроках NeHe, то не получится вообще поместить стандартную кнопочку куда либо (только можно создать диалоговское окошко, например для свойств проги, на котором можно создать все что хочешь, включая поля для ввода, картинки, списки и т.д.), а на главное окно не поместить.
Единственный вариант - сделать кнопку самому. К тому же в игре явно не будешь использовать стандартные кнопки, а сделаешь свои, под стиль игры.

Или другой вариант - использовать формы. Там можно в любой момент создать кнопку стандартную и поместить прямо на окно. Но я сам не знаю как перенести весь мой код в формы, там всё не так как в NeHe...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:30 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
я так и хочу сделать скажем 2 варианта bmp и сделать из него кнопку. только как это сделать? или же чек бокс или еше что нибудь из граф интерфейса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:33 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
или прогресс бар тоже из битмапа


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:40 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
кнопку я сам пока не делал, но сделать это очень легко.
1)Проверка нажата ли мышь и где она находится
2)Если внутри твоей кнопки, то рисуешь кнопку и натягиваешь на нее одну текстуру
3)Если снаружи твоей кнопки, то рисуешь кнопку и натягиваешь на нее вторую текстуру
4)можно еще одну картинку сделать если мышь наведена на кнопку,но не нажата

Если не знаешь как сделать п. 1) то я могу написать. Но сначала просто нарисуй кнопку и натяни на нее текстуру. а потом делай чтобы она работала.

Прогресс бар вообще легко - просто рисуешь прямоугольник и изменяешь его размеры по мере загрузки нужных данных


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:47 
Не в сети
Любитель

Зарегистрирован: 12 ноя 2009 14:24
Сообщения: 27
а напиши пожалуйста поподробней про кнопку как ее сделать скажем из трех положений (просто кнопка, наведенн курсор и нажата) и если можна напиши как сделать свой курсор, во флеше это вообше 2 строчки кода(сначала присоеденяеться изображение к курсору потом скрываеться оригинальный курсор) хочеться знать как это делаеться здесь


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как сделать бекгроунд и примитивный UI?
СообщениеДобавлено: 12 ноя 2009 17:53 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
ха, а я тоже флешом года 3 увлекался, потом на opengl перешел :cheers:
Кнопку я потом напишу (на выходных наверно), щас времени нету. А насчет курсора: сначала убираешь курсор ShowCursor(FALSE); потом рисуешь прямоугольник с натянутым курсором и задаешь его координаты как координаты мыши. Или можно что-нибудь поприкольнее написать - чтобы он по инерции двигался...
А чтобы был виден не прямоугольник, а только курсор на картинке, то надо с glBlend мучиться. Я написал свои шейдер, поэтому glBlend нигде не использую


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB