![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DCE в GLScene. [Delphi, Windows]
Galiaf © (2006-01-12 20:17:00)Вот создаю объекты
procedure TDataModule1.addobject(pos: tglcoordinates; obj: integer);
var
proxy: TGLFreeFormProxy;
begin
proxy:=TGLFreeFormProxy(level.AddNewChild(TGLFreeFormProxy));
with proxy do begin
ProxyOptions:=[pooObjects];
case obj of
0: //кирпичный блок
begin
MasterObject:=wall;
//new.Material.Texture.Image.LoadFromFile('wall0.jpg')
end;
1: //стальной блок
begin
MasterObject:=Wall;
//new.Material.Texture.Image.LoadFromFile('wall1.jpg')
end;
2: //динамит
begin
MasterObject:=bomb;
//new.Material.Texture.Image.LoadFromFile('dinamite.jpg')
end;
end;
Direction:=masterobject.Direction;
Up:=masterobject.Up;
position:=pos;
scale:=masterobject.Scale;
tag:=obj;
//new.Material.Texture.Disabled:=false;
TransformationChanged;
end;
with GetOrCreateDCEStatic(Proxy) do
begin
Manager := GLDCEManager1;
BounceFactor := 0;//0.75
Friction := 3;//10
Shape := csFreeform;
end;
end;
и вот после всего этого у меня персоонаж сталкивается иногда с самими объектами а иногда и просто с пустым пространством.
надеюсь выложил всё кратко и понятно.
Если кто может помочь, если кто знает в чём проблема прошу помощи, уже давно не могу справиться.
P.S.
это конечно не весь код но основное, объекты создаю в 3dsmax 7 из обычных кубиков и немного их кривлю, по моему проблема в том что в DCE оказывается не реальный размер объектов. Я раньше задавал размер в DCE но в примере этого не делают, а пример работает прекрасно.
Galiaf (2006-02-06 20:40:00) [1]Здарово, суну я значит Glactor'a в Gldummycube и налаживаю на второго odedynamic, теперь что добовлять в elements для того что бы при движении его он ходил как нормальный чел, а не вращался или что по хуже? Так же какой именно командой прилаживать к нему силу для его передвижения, я перебрал несколько примеров и кажется это далеко не то. Любит виснуть в центре координат и при повороте мыши всё время стремится выровняться. Для поворота использую glnavigator.
Galiaf (2006-01-30 20:44:00) [2]Я решил переделать на ODE и по ходу дела обноружил что ничего не умею, я читал статейку но там не то, очень даже не то, может кто описать как всё организовать? У меня есть tglactor в tgldummycub'e мне нужнотолько движение актёра, столкновение его со статичными объектами и возможно гравитация.
Я я накладывал на dummycube odedynamic, больше ничего не создавал и при запуске он застревал в центре координатной оси.
P.S.
Извеняюсь за общий вопрос, лучшим ответом на него думаю будет соответствующая ссылка на русскоязычную статью в которой описано это.
Galiaf (2006-01-17 20:18:00) [3]Да, пробовал ODE у меня там при первом запуске проги всё время все объекты летят вверх, при следующих запусках проги гравитация становится в порядке. Ещё там вроде дллку надо ставить на машину пользователя, без неё не пойдёт. И как там с производительностью, много ресурсов жрёт по сравнению с DCE?
C0de_eviL (2006-01-17 07:19:00) [4]По мне так Ode лучше всего использовать для столкновений,и тебе советую именно его использовать там глюков меньше,в отличии от dce там нет проблем с гравитацией, не совсем понятно что ты хочеш сделать,надо что бы персонаж сквозь статичные обьекты не проходил или что?
Размеры чего?,если glactor то это на глаз подбираются
GLActor1.AutoScaling.SetPoint(0.1,0.1,0.1);
GLActor1.Direction.SetVector(0,1,0);
GLActor1.Up.SetVector(1,0,0);
GLActor1.Scale.SetVector(0.05,0.05,0.05);//это размер
А вот на всякий случай ссылки на исходники примеров по ode физики,если там небыл то советую скачать и посмотреть,
http://www.cambrianlabs.com/Mattias/DelphiODE/
Galiaf (2006-01-16 20:15:00) [5]Я тут немного покопался, с размерами вроде разобрался, проблема видимо в неправильном подборе размеров для glactor1 он у меня в даммикубе. Если кто здесь вообще пользуется DCE прошу описать как правильно задавать размеры в таких случаях. Или что лучше использовать для столкновений персоонажа с объектами, трение о них и гравитации?