forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как толкать предметы (коллизии или физ.двиг) ? (http://forum.boolean.name/showthread.php?t=9530)

gabriel 15.10.2009 13:48

Как толкать предметы (коллизии или физ.двиг) ?
 
Вложений: 1
Приветствую комрады!
Кто может помочь с решением проблемы
есть небольшой набросок кода, с кривоватой реализацией движения перса по миру о третьего лица, но суть не в этом, волнует вопрос как реализовать толкание предметов перед персом? Сейчас юзаются коллизии, хендлы обьектов получаем, а что дальше? Как сделать правдивое толкание, скажем ящика, причом не просто едва касаясь, а только когда перс реально упирается в центр куба.
Физические движки - это конечно хорошо, но их потенциал будет задействован только на 5%, надо ли?
Вот построить бы всю логику на базе самого блица....
Кто может подсказать способ реализации сего алгоритма, буду очень и очень признателен, век незабуду!


------------
Вообщем вот, скумекал тут, всё на блицевских функах сделал
"практически" идеальный двиг для сокобана :-D

управление:
WASD+Mouse
толкаем ящики просто упёрвшись в них
притягиваем ящики удерживая RMB + S

Hurrit 15.10.2009 14:58

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
Это сделать можно, но реальности которую ты хочешь, достигается только при помощи физдвижков. Юзай хотя бы оде, для твоей задачи этого хватит

gabriel 15.10.2009 15:19

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
ODE (((
Забыл ещё сказать, что перс толкнуть может только 1 обьект, тоесть если впереди 2 ящика и больше - толкать низя, силёнок какбы нехватает...

NitE 15.10.2009 15:56

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

gabriel 15.10.2009 16:58

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
кажись решил задачу на уровне коллизий
всё прекрассно, толкает только один ящик...
не без ньюансов конечно, но думаю это тоже разрешимая проблема
буду думать.

tormoz 15.10.2009 20:49

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
это просто
дистанция меньше чем определенная и движение в сторону ящика - вкл режим парента (с контролем дистанции)

если режим парента - проверяем движение в какую сторону, если в сторону от ящика - выкл парент

я делал на обычных коллизиях все манипуляции: толкать, тянуть, строить пирамиды, бросать на головы врагов, поднимать на лифте и тд.

жаль проект загнулсо (моделлера нет с интузазизмом)

gabriel 15.10.2009 22:22

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
Вах! Tormoz
А можно примерчик ? :-D

Хотя не, не катит парент...
У меня выбор направления движения привязан к мышке, тоесть чуть дёрнулся - ящик потерял :(

tormoz 15.10.2009 22:44

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
Цитата:

Сообщение от gabriel (Сообщение 121730)
Вах! Tormoz
А можно примерчик ? :-D

Хотя не, не катит парент...
У меня выбор направления движения привязан к мышке, тоесть чуть дёрнулся - ящик потерял :(

Выбери вилку направлений, скажем, от -45 до +45 град от направления на ящик, соответственно расчитывай и направление движения ящика по тригонометр формулам.
то есть каждый цикл расчитывай новое положение ящика исходя из
угла движения относит направления на ящик, скорости движения

хотя, я бы подрубил физикс и не морочил голову :-D

gabriel 15.10.2009 23:15

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
Цитата:

Сообщение от tormoz (Сообщение 121731)
Выбери вилку направлений, скажем, от -45 до +45 град от направления на ящик, соответственно расчитывай и направление движения ящика по тригонометр формулам.

Знал бы математику с тригонометрией, вопросов бы не возникало :crazy:

физикс слишком круто, да и дрова таскать с проектом...
да и платный он наверно

gabriel 19.10.2009 14:28

Ответ: Как толкать предметы (коллизии или физ.двиг) ?
 
Нашёл решение, всё сделал на родных блицевских функах
скачать пример можно в пермом посте ;)


Часовой пояс GMT +4, время: 07:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot