• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

швыряние объектов (newton)

Автор Shef_gt, 29 ноября 2010, 15:08:49

« назад - далее »

Shef_gt

Подскажите, как можно реализовать "швыряние объектов", например как в half life 2 - берешь левой кнопкой мыши, ходиши-бродишь с объектом, а потом праваой кнопкой кидаешь его.

Ruslan


Shef_gt

Можно ли как- нибудь в katapulta2.rar сделать столкновение сферы с ландшафтом??? Чтобы когда она привязана к камере сквозь него не проходила.

Ruslan

Да, конечно же можно!
в случае с katapulta2.rar там такая задача не стояла, пример делался по быстрому..

Shef_gt

Цитата: Ruslan от 30 ноября 2010, 14:36:29
Да, конечно же можно!
эт хорошо!!! А можешь в двух словах объяснить?

Ruslan

#5
Поправил пример.

по поводу вопроса:
в этом примере, я применяю грубую силу, для перемещения ньютоновского тела, после чего я делаю Reset этому телу (предворительно засетив в матрицу его текущее положение), после применяю силу для броска.. (так как я применяю "грубую силу" для перемещения тела, то естественно возможны проникновения в ленд (хоть ньютон и пытается такое тело выталкнуть обратно). Если бы мне нужно было это как то решать, то я бы сделал камеру ньютоновскую например:
- ньютоновская сфера.. к ней прилинкована обычная камера
- перемещение осуществляется, путем применения силы на сферу, в нужном направлении (тоесть уже не грубо)
- дальше по той же схеме, но.. объект для браска линкуем к ньютоновской сфере с помощью какого нибудь ньютоновского джоинта.
- во время браска, разрушаем соединение джоинт, затем применяем силу в нужном направлении, что бы закинуть объект подальше.  :)

Shef_gt

Я всё понял как это реализовать. Вот только у меня не получается привязать объект с помощью джоинта; точнее, получается, но не могу заставить этот объект на джоинте всегда находиться перед камерой!

Ruslan

#7
Пробовал сделать на джоинтах, с первого раза получилось, все работало.. после перезапуска сцены, перестало работать. Долго разбираться не стал, похоже на тот случай, который ты описал (скорее всего, перед созданием джоинта, оба Ньютоновские объекта, должны находится рядом, впритык, если этого не делать, то джоинт растягивается как пружина\резина).
Сделал по другому(типа магниты), но тоже не фонтан.. может как идея, тебе подойдет (если до ума довести).

правый клик - примагнитить
левый клик - отбросить

DimiS

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