![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Glscene Непрохождение сквозь стены
SLKnot" © (2003-01-28 03:13:00)Какой алгоритм можно использовать в Glscene чтобы обект ткнувшись в стену не проходил сквозь нее, а если под углом то скользил параллельно ентой стене
De (2004-01-12 21:06:00) [1]Как анимировать 3ds в Glscene?
doktor (2003-11-13 15:56:00) [2]//Collision
Rabotaet proverenno. :)
http://caperaven.co.za/gls/tutorials/documents/spheresweep/spheresweep.zip
Кен (2003-10-20 03:58:00) [3]Чем писать своё собственное непрохождение сквозь стены, можно использовать ODE. Открытый динамический движок. Он сам просчитывает все отскоки, непрохождения сквозь стены, вращения, и даже гироскопический эффект. К нему есть три демки в папке Demos/Phisics . Одна беда трудно разобраться как это всё работатет.
Но может у кого есть желание ?
ArtemHD (2003-10-19 14:33:00) [4]> Скажите как зделать чтоб обект поварачивался за мышкой
to pasha_676:
Напиши в Cadancer.progress такую тексту:
mx:=mouse.curposition.x;
my:=mouse.curposition.y;
If mx>400 then GLCamera.turn((mx-400)*DeltaTime);
If mx<400 then GLCamera.turn((mx-400)*DeltaTime);
If my>300 then GLCamera.turn((my-300)*DeltaTime);
If my<300 then GLCamera.turn((my-300)*DeltaTime);
windows.setcursorposition(400,300);
Управление будет как в Контре, а чтоб башка наклонялась нужно помучиться
Будет косяки, помути с (my-300) и др.
G A M E R (2003-09-27 09:14:00) [5]Я когда-то это делал(и чтобы мышью вертеть, и чтобы нормально бегать).Вчера был FORMAT С: ENTER, поэтому найти прогу не могу. На счет мыши не помню, но что бы ходить вдоль стен, надо сделать так: при столкновении запоминаем положение, в котором находимся, затем пробуем двигать(у меня был цилиндр)по каждой оси по очереди из того, что было до движения к тому, что стало после столкновения,и если по оси в отдельности можно двигать, то двигаем. Кажись так :)
Goorus (2003-09-18 16:54:00) [6]Поищи в юните Geometry (поставляется с GLScene) функции типа RayCastTriangle, не помню тачного названия, но она проверяет пересечение линии и треугольника, а в параметры записывает точку пересечения и нормаль к треугольнику.
pasha_676 (2003-09-17 09:48:00) [7]
> Скажите как зделать чтоб обект поварачивался за мышкой
Изменять вектор направления объекта в зависимости от изменений мышиных координат. Не давно была аналогичная тема про камеру - там и посмотри.
Простак (2003-09-16 20:16:00) [8]Скажите как зделать чтоб обект поварачивался за мышкой
slknot" (2003-04-17 17:46:00) [9]но они же,блин,дергаются
Antichacker (2003-02-01 08:21:00) [10]Насчет обработчика коллизий - вполне подойдет стандартный. В 2D я использовал такой алгоритм:если коллизия(на первый пиксел), то сдвинуть модель человека на один пиксел назад. Глазу этот один пиксел абсолютно незаметен.
Alek Aaz (2003-02-01 08:01:00) [11]В демосах пример есть. Не тест "шар в шаре". А шарик мечется к комнатке с всякими штучками. В реалтиме просчитывается угол падения/отражения. Причем не только от плоскостей стен, но и от всяких труб и шаров. Сядь и разбери каждую строчку в примере. Закомментируй. Если нет описания какой-то фукции в хелпе ищи ее описание в исходном тексте модуля библиотеки. Там почти все есть. Правда на англицком.
Смещение юнита если он под углом к стене
х:=sin(a)
y:=cos(a)
или на оборот.
a - угол между нормалью стены и вектором скорости юнита. Ну плюс нужно учитывать положение базовых осей (стена может идти под углом).
Вперед! За вас этого никто не сделает.
Кен (2003-02-01 07:13:00) [12]В том то и дело, что там есть CollisionManager1.CheckCollisions; .
То есть проверка столкновения объектов. Таким образом можно определить, что один оказался внутри другого. Но вопрос то, как этого недопускать ? И что делать, если это всё таки произошло ?
Тут нужен какойто хитро*опый обработчик коллизий. Но где его взять или как делать непонятно.
SLKnot" (2003-01-28 03:33:00) [13]В примере - проверка столковений,а мне нужен алгоритм
Alek Aaz (2003-01-28 03:27:00) [14]ИМХО. Есть где-то там коллизион менеджер. Кидаешь его на форму. У объекта, в свойстве бехавариос(что-то такое, точно не помню) заносишь этот менеджер. Как он работает пока не знаю. Не до него. Но есть примеры в GLScene/Demos/...