Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 08.01.2008, 21:01   #76
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

В связи с неудобством работы с клавиатурой для перемещения по игровому полю и большим количеством глюков при вводе с клавиатуры стрелками и кнопкой Enter, из-за которых работа стоит практически с лета, я решил отказаться от клавиатуры и использовать для перемещиния по полю мышь с самонарисованным курсором. Но! Проблема в том, что сцена у меня трехмерная, а мышь перемещается только в двухмерном режиме "по экрану".
Нажмите на изображение для увеличения
Название: Скриншот окна игры.JPG
Просмотров: 987
Размер:	40.2 Кб
ID:	4174 Работа с проекциями провалилась, так как ничего не работало. У меня есть идея проверять пересечение нормали к экрану с клетками игрового поля, но при рисовании координаты сместились так, что отстледить и выяснить, куда именно провести прямую, что бы она была нормалью к экрану невозможно. Можно ли как-то перейти к глобальным координатам, чтоб нормалью к экрану была какоя-то ось, например z. Есть две функции:
glPushMatrix ();
она сохраняет координаты и
glPopMatrix ();
она возвращает координаты, сохраненные в предыдущей функции.
Можно ли так проверять нахождение курсора над клеткой поля или есть идеи лучше?
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 21:28   #77
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Ответ: Алгоритм игры Lines

glPushMatrix, если не ошибаюсь, сохраняет текущую матрицу проекции в стеке, а glPopMatrix, соответственно, достает ее из стека и восстанавливает.
То есть можно сделать так:
<меняем матрицу проекции>
<выводим что-либо>
glPushMatrix();
<обнуляем матрицу проекции>
<опять изменяем ее>
<выводим что-либо в новых координатах, т.е. с новым значением 
смещения(glTranslatef) и поворота (glRotatef)>
glPopMatrix(); // вернулись к первой матрице проекции
не очень понимаю, как с помощью этих функций можно привести в соответствие позицию мыши на экране и 3д-точку в сцене.
Хотя если у тебя получится, расскажешь, как.

P.S.: где-то видел какую-то статью на тему переноса 2д координат мыши в сцену, если найду - дам линк.
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 21:34   #78
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Можно ли как-то перейти к глобальным координатам, чтоб нормалью к экрану была какоя-то ось, например z.
Тут главное вот-что!
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 21:38   #79
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Ответ: Алгоритм игры Lines

Сообщение от Alex_90
Можно ли как-то перейти к глобальным координатам, чтоб нормалью к экрану была какоя-то ось, например z.
Тут главное вот-что!
Ты там камеру ставишь?
Если да, то можно брать координаты камеры и пускать из этих координат луч в направлении взгляда камеры.

P.S.: где-то видел какую-то статью на тему переноса 2д координат мыши в сцену, если найду - дам линк.
нашел
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 22:36   #80
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Как загрузить свой курсор мыши?
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 22:54   #81
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Ответ: Алгоритм игры Lines

Не пробовал glUnProject использовать?
http://www.gamedev.net/community/for...topic_id=65558
(Offline)
 
Ответить с цитированием
Старый 08.01.2008, 23:03   #82
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Это преобрзование 3D координат в 2D (проекция на экран)?
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 00:58   #83
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Ответ: Алгоритм игры Lines

Сообщение от Alex_90
Это преобрзование 3D координат в 2D (проекция на экран)?
Читай, что там написано.
This code gets the position of the center of the screen and stores it in pos3D_x, y, z.
(Offline)
 
Ответить с цитированием
Старый 13.01.2008, 19:49   #84
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Все!
Пришел опять к проекциям.
Как мне на основании координат щелчка мыши (x,y) получить z координату пересечения с полем (по которой уже надо вычислять, какая это клетка поля).
см. картинку из сообщения №76
Может есть отдельная функция для этого в OpenGl?
(Offline)
 
Ответить с цитированием
Старый 13.01.2008, 19:59   #85
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Алгоритм игры Lines

Alex_90, а ты уже "2Д линии" сделал?
__________________
(Offline)
 
Ответить с цитированием
Старый 13.01.2008, 20:12   #86
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Alex_90, а ты уже "2Д линии"

Я вроде как 3D делаю!
А откуда информация о 2D?
(Offline)
 
Ответить с цитированием
Старый 21.02.2008, 20:43   #87
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

Как проверить, есть ли в данной точке что либо (плоскость) или ничего нет.
Нужно для того, чтобы проверить пересечение луча, выпущенного из координат щелка мыши под прямым углом к экрану какой либо плоскостью (и соответствено получения z координаты этой плоскости).
(Offline)
 
Ответить с цитированием
Старый 26.02.2008, 23:45   #88
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Ответ: Алгоритм игры Lines

В OpenGl есть матрица проекций GL_PROJECTION.
Как ее получить в массив? (с целью домножить на нее матрицу игрового поля, чтоб получилась проекционная картинка игрового поля на экран).
(Offline)
 
Ответить с цитированием
Старый 27.02.2008, 11:43   #89
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Ответ: Алгоритм игры Lines

glGet*
 GL_PROJECTION_MATRIX
    params returns sixteen values: the projection matrix on the top of the projection matrix stack. Initially this matrix is the identity matrix. See glPushMatrix.
http://www.dei.isep.ipp.pt/~matos/ca.../glGet.3G.html
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо alcoSHoLiK за это полезное сообщение:
Alex_90 (27.02.2008), HolyDel (27.02.2008)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм MD5 Dialogus Библиотеки 7 07.02.2010 15:17
Алгоритм Дейкстры Serega 3D-программирование 6 29.10.2009 20:18
Алгоритм темы на нокиа demon112 Алгоритмика 7 22.05.2009 01:24
Морской бой - алгоритм Matt Merkulov 2D-программирование 3 27.05.2007 00:25
Алгоритм поворота alcosholik Алгоритмика 8 08.09.2005 21:05


Часовой пояс GMT +4, время: 14:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com