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

Вниз

Проблемы с камерой   Найти похожие ветки 

 
Xeno ©   (2005-03-19 15:58) [0]

Кто нибудь знает почему в демке "actortwocam" когда включен вид от первого лица,если сильно резко повращать мышкой в разные стороны актёр начинает заваливаться в бок?? Причём если мышь не трогать или сильно не дёргать то все нормально. Пробовал на разных машинах, подобный эффект присутствует везде. Кто нибудь знает как это лечиться?


 
DeadMeat ©   (2005-03-19 18:47) [1]

Это все Navigator и иже с ним...
У него есть папра минусов, если плохо настроить...
Вот этот и он начинает не плавно двигать когда фпс ниже 60.
Поэтому я делал свое управление мышью.

---
...Death Is Only The Begining...


 
mr_Coder ©   (2005-03-19 23:13) [2]

Для Navigator"а поставь
UseVirtualUp=True;
VirtualUp=Y


 
Xeno ©   (2005-03-20 15:51) [3]

Если кому интересно проблемму решил так:
 xangle:=mouse.CursorPos.X-screen.Width/2;
 yangle:=mouse.CursorPos.Y-screen.Height/2;
 setcursorpos(screen.width div 2,screen.Height div 2);
GlCamera1.MoveAroundTarget(-yangle*40*deltaTime,0);
Player.TurnHorizontal(xangle*40*deltaTime);
где Player - TGLDummyCube,GlCamera1 - камера смотрящая на Player"а, проблема у Navigator1"а похоже в определении координат по оси У,хотя могу и ошибаться....


 
Xeno ©   (2005-03-22 06:09) [4]

Нашёл ещё одно решение,заключается в ручной обработке поворота объекта с камерой, вроде как полностью решает данную проблемму:

procedure TForm1.MouseView();
var
  mpos:Tpoint;
begin
    GetCursorPos(mpos);
    SetCursorPos(SceneW, SceneH);
    Player.TurnAngle:=Player.TurnAngle-((mpos.x-SceneW)*0.1);
    if ((Player.PitchAngle-(mpos.y-SceneH)*0.1) < 90)   //Makes sure that you can"t
    and ((Player.PitchAngle-(mpos.y-SceneH)*0.1) > -90) then //pitch your head too much.
         Player.PitchAngle:=Player.PitchAngle-(mpos.y-SceneH)*0.1;
    Player.Up.X:=-sin(Player.PitchAngle*pi/180)*sin(Player.TurnAngle*pi/180);
    Player.Up.Y:=cos(Player.PitchAngle*pi/180);
    Player.Up.Z:=-sin(Player.PitchAngle*pi/180)*cos(Player.TurnAngle*pi/180);
end;

procedure TForm1.Realign();
begin
    Player.Direction.Z:=cos(Player.TurnAngle*pi/180);
    Player.Direction.X:=sin(Player.TurnAngle*pi/180);
    Player.Direction.Y:=sin(Player.PitchAngle*pi/180);
end;


 
Xeno ©   (2005-03-22 06:11) [5]

Жаль никто сразу не подсказал,много времени потерял на поиск алгоритма...


 
DeadMeat ©   (2005-03-22 21:07) [6]

Ты думаешь это плохо? То, что ты сам его нашел..

---
...Death Is Only The Begining...


 
Xeno ©   (2005-03-23 07:05) [7]

Может и нет :-))



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

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

Наверх





Память: 0.46 MB
Время: 0.033 c
14-1117694379
12DFBDDh
2005-06-02 10:39
2005.06.29
файлы djvu


14-1117621158
Сергей Т.
2005-06-01 14:19
2005.06.29
Меню в программе


1-1117985816
Galiaf
2005-06-05 19:36
2005.06.29
Сжатие программ.


3-1115984454
tema
2005-05-13 15:40
2005.06.29
Поиск без locate


11-1100196735
nils
2004-11-11 21:12
2005.06.29
Дебильный вопрос про кнопку на TaskBar e





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский