Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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/...


Наверх

Титульная страница Поиск, карта сайта Написать письмо