|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.07.2010, 21:37 | #1 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
OpenGL и 2d-игры
Здравствуйте, наверняка, многие задумывались о создании 2d-игр на OpenGL, а кто-то даже и занимался этим. Вот, у меня возникли такие вопросы:
1. Как создавать карту из ячеек, если координаты в OpenGL не такие, как в Delphi? То есть, там координаты идут от -1 до 1. Короче, как переводить такие координаты в нормальные, если мне, например, хочется нарисовать карту, состоящую из ячеек 100х100 пикселей. 2. В OpenGL есть две такие функции: glTexCoord2f(-1, 0); glVertex2f(-1, 0); Что обозначает первая из них? Да, да, я знаю, что это координата текстуры, которая берется из переменной типа glUInt. Но как она влияет на программу? Как ни пытался понять это, так и не смог. 3. Неужто при рисовании нужно каждый раз загружать изображение? LoadTexture('0.tga', Texture, False); И, кстати, что здесь значит слово False? 4. 50% загрузки процессора - это нормально, если я рисую на экране фон и одну текстуру 150х150 в формате tga, с альфа-каналом? Рисую в таймере с интервалом 31 мс. 5. Почему при рисовании фона на окне, развернутом на весь экран он рисуется 4 раза? Картинка с фоном - такого же размера, что и экран. Заранее спасибо всем, кто ответит хотя бы на некоторые из этих вопросов. Последний раз редактировалось ZotaC; 03.07.2010 в 21:40. |
03.07.2010, 22:16 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
1)можно переводить. а можно и установить какие хотите.
2)координата текстуры(которую нужно сначала применить) 3)я не знаю что это за функция, скорее всего можно сохранять её результат. 4)код в студию. 5)опять же нужен код. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.07.2010, 22:29 | #3 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
Вот, что написано в таймере:
Код:
|
04.07.2010, 01:18 | #4 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
У меня заработало почему-то только когда подправил на
Код:
LoadTexture('Fon.jpg', Texture, False); - нужно вызывать только когда меняется текстура... И у меня частое её вызывание к жутким глюкам приводило...( Цитата:
У меня нету файлов tga да ещё и с альфа-каналом... Так что не могу проверить, но с блендингом вроде какие-то особые баги могут быть... Про "5" можно поподробнее?
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
04.07.2010, 08:53 | #5 | |||
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось ZotaC; 04.07.2010 в 09:00. |
|||
04.07.2010, 14:08 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
x/256-1 насчет y не помню...где там ноль? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
04.07.2010, 20:23 | #7 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
А нельзя объяснить эти цифры, если не сложно? Быть может, получится использовать их и при переводе из обычных координат в координаты OpenGL (пункт 1).
|
04.07.2010, 20:42 | #8 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Погугли команды связанные с матрицами. Последний раз редактировалось Вадим Буренков; 04.07.2010 в 20:50. |
|
04.07.2010, 21:45 | #9 | ||
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
У меня некоторые проблемы со свободным временем... Я ещё только начинаю с OGL разбираться...
Пытался начать изучение с одних видеоуроков, но думаю зря я так начал... Не оттуда ли вы модули используете для работы с OGL (dglOpenGL и Textures)? Один знакомый недавно сказал что они изначально кривые... Цитата:
Цитата:
А при растягивании надо как-то вот так делать... Кажется..... Код:
I am the First of Cyber Evolution...
I am the First to Program your Future... |
||
04.07.2010, 22:13 | #10 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Возьмите любой опенсорс движок на OpenGL и посмотрите как там проводится инициализация/рисование. Я только так могу в OpenGL разбираться .
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
OpenGL...Игры без тормозов...Как?! | saggy | Мультимедиа в Delphi | 10 | 03.07.2010 12:25 |
разработка игры "Реверси". Имеется код этой игры на С++ | CD-RW | Помощь студентам | 0 | 28.03.2010 00:13 |
Хочу начать писать игры на OpenGL | lionbeast | Помощь студентам | 2 | 02.10.2009 11:04 |
OpenGL | Paul_AG | C++ Builder | 20 | 14.09.2009 19:07 |
OpenGL в С# | LeGAl | Общие вопросы .NET | 0 | 30.04.2009 02:15 |