Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

Направление движения при повороте   Найти похожие ветки 

 
akaValerius ©   (2007-01-08 00:51) [0]

Hi. У меня такая проблема, вобщем я кодю 3D игру типа HL и при повороте, персонаж продолжает идти по оси Z не учитывая то, что смотрит в другую сторону. Помогите сделать поворот мышкой и движение в направлении взгляда. Используются glRotated и glTranslatef.
OpenGL. Уже 3 суток парюсь.


 
DevilDevil ©   (2007-01-08 01:43) [1]

мда.

1) от какого лица персонаж?
2) для изменения "камеры" нормальные люди используют другие функции.
3) для изучения программирования (да и для обычного программирования) нормальные люди используют двиг. Могу посоветовать готовые двиги: простенькие DGLE и  eXgine или серьёзный GLScene. Для получения линка воспользуйся поисковиком


 
ors_archangel ©   (2007-01-08 07:22) [2]

Очень похоже на проблему ветки
"Ориентирование объекта в 3D пространстве (GLScene, Delphi)"
которая здесь же :)


 
Туплю   (2007-01-08 09:28) [3]

<offtop>
Совсем недавно была мысль, сезонное обострение чтоли?
Народ ломиться писать игры, не зная банальных вещей......
</offtop>

Скачай с DelphiGL помоему пример движка от Яна Хорна.
Там все это решается.

P.S.
Если возникли примеры на этом уровне, то можешь забыть о планах написать реальную игру.... Патамучта дальше - хуже. Начнут возникать ТАКИЕ проблемы.....

P.P.S.
Узнаю себя года два назад....
ТОж нихрена не знал, нихрена не понимал и тож ломился писать такое....
Чиста Copy&Paste....
Естественно нихрена не получилось....
Хотя на волне 1000$ заработал....
Да и то чисто повезло....


 
akaValerius ©   (2007-01-08 11:43) [4]

Да у меня все готово текстурирование, прыжки, перемещение, загрузка 3D анмиции монстров, карта и т.д. так что я не такой ламак и не использую Copy&Paste. Это единственная проблема я понимаю что если поворачивать сцену то он идет правильно, но картинка не правильная, а при поворте взгляда всё наоборот. Так что вы меня не так поняли движок свой у меня почти готов. Кстати вид от 1 лица.


 
antonn ©   (2007-01-08 11:46) [5]

Туплю   (08.01.07 9:28) [3]
<offtop>
Совсем недавно была мысль, сезонное обострение чтоли?
Народ ломиться писать игры, не зная банальных вещей......
</offtop>

м/у прочим, про эти банальные вещи познаются именно таким способом... а игры пишут, сначала прочитав кучу документации, только те - кому заплатят и у кого это работа.


 
akaValerius ©   (2007-01-08 11:54) [6]

Мдя кстати готовые движки не предлогайте, и GLScene тож, да и у меня всё готово кроме етого, осталось ето и стрельбу да и монстров поумнее, и усё новый 3D Action готов.


 
DevilDevil ©   (2007-01-08 15:23) [7]

Отослал тебе недоработанный модуль для моего движка. Текста там многовато, но ты сможешь разобраться, чуток изменить. Тебе нужен класс "TCameraAction". Пользуйся


 
akaValerius ©   (2007-01-08 16:15) [8]

DevilDevil. Сапс. Ok. Буду юзать.


 
@!!ex ©   (2007-01-08 21:25) [9]


> akaValerius ©   (08.01.07 11:43) [4]

По какому признаку определяется готовность движка?


> antonn ©   (08.01.07 11:46) [5]

Эти банальные вещи познаются в школе и универе.


 
antonn ©   (2007-01-08 23:30) [10]

@!!ex ©   (08.01.07 21:25) [9]
Эти банальные вещи познаются в школе и универе.

бу-га-га:)

сорри, не удержался:)))


 
grisme ©   (2007-01-08 23:35) [11]

жжош..
тригонометрия 8го класса


 
akaValerius ©   (2007-01-09 00:09) [12]

@!!ex По признаку того что можно передвигаться по карте, прыгать, бегать, видеть как за тобой бегают твари, переключать рычаги для открытия возможного прохода.


 
@!!ex ©   (2007-01-09 00:15) [13]

Угу....
И как же у тебя бегают твари? Тоже по Z?
Просто всегда полагал, что первое что делается - это движение по карте....
Ну и вообще я не понимаю, как можно писать двиг без тригонометрии...
Вот сижу пишу... Уже 4 месяц...
И почему то каждый день приходится рисовать треугольнички, то вектор пули расчитать, то Collision Detect, то Triangle Intersect, то направления полета гильзы, то направление куда смотрит юнит, то угол на который он должен наклониться чтобы сбить цель находящуюся выше/ниже, банально тупо спрайти повернуть - тригонометрия......................
Можа мну че нидаганяю, и чичас геймдевелапиру это все нинада?


 
akaValerius ©   (2007-01-09 00:27) [14]

@!!ex  Я наверно тя огарчу но триг-метрию я знаю поэтому твари бегают прыгают разворачиваются нормально т.к. они у меня отдельные 3d модели, а вопрос был потому что я не правильно организовал окно игрока, мне нужно было чтоб кинули функцию для моей проблемы типа gluLookUp


 
antonn ©   (2007-01-09 13:33) [15]

grisme ©   (08.01.07 23:35) [11]
тригонометрия 8го класса

OpenGL тоже в 8м классе раскрывают? :))

вопрос больше не по формулам (насколько я понял), а по OpenGL - как в нем все завязать:)


 
@!!ex ©   (2007-01-09 15:49) [16]


> akaValerius ©   (09.01.07 00:27) [14]

Да мне то че огорчаться? :))
Кстати, а как ты считаешь пересечение всяких объектов(скажем пуль)  с телами монстров?
Просто у меня эта проблема реально стояла, в итоге отказался от glRotate и glTranslate... Все считается своими функциями.... Поделись, мож у тебя оптимальнее....


> antonn ©   (09.01.07 13:33) [15]

Для написания полностью нормальной игры достаточно знать как нарисовать треугольник и все. Ну для сшастья еще текстурки и свет....

А gluLookUp - это, кстати, тоже тригонометрия.


 
antonn ©   (2007-01-09 17:38) [17]

@!!ex ©   (09.01.07 15:49) [16]
Для написания полностью нормальной игры достаточно знать как нарисовать треугольник и все

Бу-га-га:)))))


> А gluLookUp - это, кстати, тоже тригонометрия.

это на этом форуме тригонометрия, а в 8м классе общеобразовательной школы - "хренегознает" :)


 
grisme ©   (2007-01-09 23:36) [18]

так эта, если он делает допустим так(потелепатим):
-восстановили ед.матрицу
-повернули камеру по осям(ox,oy)
-перенесли камеру по осям(ox,oz)

можно коэфициентам переноса по осям приращать:
для переноса по OZ: значение cos(угол обзора по OY)
для переноса по OX: значение sin(угол обзора по OY)

получится примерно так:
 ...
 if ..._pressed = true then
 begin
    cam_z:=cam_z + cos(view_y*Pi/180);
    cam_x:=cam_x + sin(view_y*Pi/180);
 end;
 glTranslatef(cam_x,0,cam_z);
 ...
т.е. если угол по оси oy равен нулю и мы нажали идти вперед. косинус(0) = 1 и мы будем перемещаться строго вперед(перемещ. по z), т.к. синус того же угла = 0(перемещ. по x)
знаки естесственно должны зависеть от нажатой кнопки и приращения нужно подгонять, иначе на единицу транслируя - получится, скорее всего очень быстрое перемещение. Чем и как он будет варьировать углы обзора тут не столь важно. это даже базовая геометрия(времена школы, в пору изучения дедушки Пифагора, да следствий из его теоремы)


 
ors_archangel ©   (2007-01-09 23:56) [19]


> @!!ex ©   (09.01.07 15:49) [16]
> Кстати, а как ты считаешь пересечение всяких объектов(скажем
> пуль)  с телами монстров?Просто у меня эта проблема реально
> стояла, в итоге отказался от glRotate и glTranslate... Все
> считается своими функциями....

Так ё-моё: glRotate, glTranslate позволяют быстро трансформировать массивы вершин, а в физике имхо главная оптимизация - наоборот - локализация вычислений, т.е. мы просчитываем только то, что необходимо, и именно на столько, насколько необходимо. Если ты массово применяешь собственную транформацию, то ты можешь терять в скорости уже не разы... Конечно, казалось бы, можно параллельно выводить графику через GPU и трансформации на CPU, но вот именно: CPU будет занят, а потом хотим качественный A.I. Ты, конечно, это понимаешь, так каковы же причины тотальной software-транформации, или она не тотальна?


 
akaValerius ©   (2007-01-10 00:10) [20]

> @!!ex ©   (09.01.07 15:49) [16]
> Кстати, а как ты считаешь пересечение всяких объектов(скажем
> пуль)  с телами монстров?Просто у меня эта проблема реально
> стояла, в итоге отказался от glRotate и glTranslate... Все
> считается своими функциями....

Вобщем пуля да и чувак смотрат в перед на 2 еденицы, и если те точки в просранстве заняты она смотрит че это за объект, если тварь, посмотреть по высоте какая часть и в зависимости от этого отнять у нее жизни, я это функцию могу из dll спереть и отправить те если хош?


 
akaValerius ©   (2007-01-10 00:10) [21]

> @!!ex ©   (09.01.07 15:49) [16]
> Кстати, а как ты считаешь пересечение всяких объектов(скажем
> пуль)  с телами монстров?Просто у меня эта проблема реально
> стояла, в итоге отказался от glRotate и glTranslate... Все
> считается своими функциями....

Вобщем пуля да и чувак смотрат в перед на 2 еденицы, и если те точки в просранстве заняты она смотрит че это за объект, если тварь, посмотреть по высоте какая часть и в зависимости от этого отнять у нее жизни, я это функцию могу из dll спереть и отправить те если хош?


 
@!!ex ©   (2007-01-10 20:12) [22]


> antonn ©   (09.01.07 17:38) [17]
> @!!ex ©   (09.01.07 15:49) [16]
> Для написания полностью нормальной игры достаточно знать
> как нарисовать треугольник и все
> Бу-га-га:)))))

Я имел ввиду, в плане знаний OpenGL.


> ors_archangel ©   (09.01.07 23:56) [19]

Да. Со скоростью проблемы конкретные.
В планах - перенос вычислений на шейдеры.
А причины в том, что приходиться постоянно считать кучу разных хреней, которые можно получить только своими трансформациями, либо выдирать каждый раз из OGL мировую матрицу, что медленнее.


> akaValerius ©   (10.01.07 00:10) [20]

Не имеет смысла.
У меня такое не проканает.
Пуля за кадр может проходить весь мир...
Плюс проверка идет по hitbox"ам. Да и объектов на одной точке поверхностьи может быть дохрена....
Не суть....
Удачи в проекте.


 
antonn ©   (2007-01-10 22:18) [23]

@!!ex ©   (10.01.07 20:12) [22]
Я имел ввиду, в плане знаний OpenGL.

я тоже имел именно это в [5], а оффтоп пошел от [9] :)



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.007 c
2-1204052315
Эрни
2008-02-26 21:58
2008.03.23
Как найти набор последовательных символов в файле


15-1202669039
NaRuTo
2008-02-10 21:43
2008.03.23
Вхождение в другой компьютер!


3-1193947426
CFi
2007-11-01 23:03
2008.03.23
Обнуление счетчика в Access


15-1202182276
Rian
2008-02-05 06:31
2008.03.23
Как через Format выводить Float фиксированного размера?


15-1202892081
Ega23
2008-02-13 11:41
2008.03.23
Просьба типа вчерашней





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский