Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
ithyphallic
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
1

Переход от примитивной графики к OpenGl в игре

12.02.2013, 15:27. Просмотров 627. Ответов 6
Метки нет (Все метки)

Всем привет! Делаю небольшую игру - вид сверху, территория состоит из клеточек, перемещение вверх-вниз-влево-вправо на одну клетку плавно (как в первом и втором варкрафте). Ходишь мужиком по лесу, кромсаешь мобов и т.п.

План такой:
- Сначала реализовать полностью замысел при помощи стандартных средств C++ Builder (вся земля в виде клеточек-имагов, на них верхним слоем деревья-имаги и мобы-имаги). Возможно не очень рационально, но зато довольно просто делается;
- Затем полностью переписать графику игры при помощи OpenGL

Вопрос - насколько рационально так делать? Как бы вы поступили на моем месте? Заранее спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 15:27
Ответы с готовыми решениями:

Переход от примитивной графики к OpenGl в игре
Всем привет! Делаю небольшую игру - вид сверху, территория состоит из клеточек, перемещение...

Качество графики (экспорт и использование в игре)
При работе с графикой столкнулся со следующей проблемой. На данный момент, большинство моей...

Opengl es Движение в игре
Всем привет. Недавно начал изучать opengl es 1.0 под андроид. Пока работаю с 2d. В общем вопрос...

Реализация сцен в игре (С++ и OpenGL)
Я новичок в с++ и OpenGl. Но уже создал три простеньких игрушки. Суть такая: сначала создаю окно (с...

Отрисовка примитивной графики
Меня интересует, как с помощью C# Windows Forms нарисовать некое прямоугольное поле белого цвета и...

6
NoMasters
Псевдослучайный
1919 / 1124 / 91
Регистрация: 13.09.2011
Сообщений: 3,188
12.02.2013, 18:42 2
Разделение логики и рисования — это нормально. Хотя есть ли смысл городить гуй на этом самом бильдере, если он всё равно не будет использоваться?
0
ithyphallic
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
12.02.2013, 20:36  [ТС] 3
Вот поэтому и задумался. В принципе гуи можно сделать минимальным. Пока я новичок в этом деле, логику уже несколько раз оптимайзил, и когда уже все прикручено (графика), то довольно геморройно копаться и переделывать какие-то базовые функции.
0
NoMasters
Псевдослучайный
1919 / 1124 / 91
Регистрация: 13.09.2011
Сообщений: 3,188
12.02.2013, 21:57 4
Рогалик запили — истинно минималистский интерфейс
0
ithyphallic
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
12.02.2013, 22:21  [ТС] 5
на самом деле изначально почти так и хотел но потом решил в целях самообразования освоить OpenGL, так что графике быть!
0
pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
20.02.2013, 08:56 6
При правильном подходе вся программа будет независима от способа отрисовки. В особо замороченном случае можно даже оба сделать и менять их.
Схема примерно такая.
в начале приложения грузим картинки в некий массив, для опенгла создаём контексты, форматы пикселей, режимы и т.п., а картинки ещё переводим в ргба данные. Потом, в зависимости от схемы работы игры - либо сразу создаём карту и объекты на ней в виде массива хотя бы, где каждый элемент массива хранит данные о клетке - номер текстурки для почвы, признаки наличия объектов (их может потребоваться рисовать отдельным циклом, если их размеры больше размеров клетки, чтобы не перезатирались участки) и другую нужную информацию.
Перерисовка - в цикле по нужным координатам клетки на карте (обычно шаг цикла*размер текстурки) рисуем текстурку почвы, беря сам текстуру из массива , а индекс для массива читаем с клетки из массива карты , примерно так: CTexture tex = Textures[Map[x][y]->TexIndex] потом эта tex рисуется как ей надо, также проверяем признаки объектов и врисовываем по нужным координатам. Для опенгла нужны будут поправки на вьюпорт, ибо координаты там другие - надо будет написать функции пересчета, а также учесть, что при изменении размеров окна надо перестраивать эти вещи. Также для опенгла при отрисовке нужны вспомогательные функции вроде переключения контекста, и прочих.

Сама суть в том, что работа с картой как таковой , с объектами на ней вообще не зависит от рисования - хоть в консоль символы печатайте, логика если построена отдельно, то визуализировать её - просто дописать несколько функций.

А про имейджи - советую их вообще повыкидывать, попробуйте хотя бы с TBitmap как я описал - в билдере это будет относительно просто. Гуи, правда, придётся похитрее писать, если только на битмапах - надо будет проверять попадание мышки по координатам кнопки (правда в упрощённом виде придётся использовать только прямоугольные), но это тоже не беда - делается таймер и постоянно проверяются координаты, для нескольких кнопок из битмапов - не проблема будет
1
ithyphallic
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
20.02.2013, 15:09  [ТС] 7
Благодарю за развернутый ответ!
0
20.02.2013, 15:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2013, 15:09

Поворот примитивной фигуры в OpenGL и освещение
Здравствуйте, уважаемые форумчане! :) Я решил изучать OpenGL, сразу скажу, что я ещё пока не...

Вывод графики в игре
Здравствуйте! Подскажите пожалуйста что лучше всего использовать для вывода игровой графики JPanel...

Меню в игре OpenGL
Подскажите как реализовать меню в Opengl для игры, в этом же окне, не создавай отдельного?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru