Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 15.02.2009, 08:49   #1
DartWaider aka Yxo
AnyKey`щик
 
Регистрация: 12.02.2009
Сообщений: 6
Написано 2 полезных сообщений
(для 6 пользователей)
Столкновение

Есть хорошая такая платформа, умеет летать, и катать всех подряд. Бежим ей в след и упираемся, бежим со сторон и тоже упираемся, а вот когда бежим ей в лоб, то она пролетает сквозь нас как призрак...
Как я понял проколизить куб со сферой нельзя, а значит и всякую ерунду типа CollisionNX и подобное применить не удасться. Можно конечно выписать LinePick на платформе с 3-х этажным условием, но хотелось бы этого избежать... Может кто-то сталкивался с подобным? Посоветуйте чего нибудт.
(Offline)
 
Ответить с цитированием
Старый 15.02.2009, 09:49   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Столкновение

Либо слишком быстро двигаются оба объекта друг на друга, либо слишком редко вызывается UpdateWorld.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (15.02.2009)
Старый 15.02.2009, 16:18   #3
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Столкновение

Можно подключить стороннюю библиотеку Nuclear Glory Collision (http://www.nuclearglory.com), в примерах можно двигаться, находясь на платформе, сталкиваться с "крышей" (известно, что в блице когда обьект движется вверх, он проходит сквозь любую модель, даже если включена коллизия).
Но это на случай, если вас устраивает отказ от стандартных блицевских коллизий.
(Offline)
 
Ответить с цитированием
Старый 15.02.2009, 17:24   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Столкновение

Ну собсно потому-то я и не юзаю блицовую коллизию.. .и вам не советую...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 16.02.2009, 04:21   #5
DartWaider aka Yxo
AnyKey`щик
 
Регистрация: 12.02.2009
Сообщений: 6
Написано 2 полезных сообщений
(для 6 пользователей)
Ответ: Столкновение

Ну коллизии меня в принцыпе устраивают, за исключением того что из маловато. UpdateWorld() вызываеться в каждом цикле(чаще вроде и не надо). Проблема в том, что при столкновениях типа сфера-куб, сфера-поли всё хорошо, но нету возможности проколизить куб-сфера или поли-сфера...
В тоерии есть уже два решенияЮ но они не удовлетворяют потребностям.
1. Лепить на каждый борт платформы по сферическому коллизийному бамперу и проверять обьект на колличию с бампером передавая ускорение платформу, если она движеться на обьект, но это муторно и ёмко, особенно если платформ будет много....
2. на кажкой платформе производиться LinePick проверки по 4 сторонам света, и в зависимости от вектора движения передавать ускорение обьекту на пути...

Но как уже говорилось подобные решения не подходят.

Библы, Либлы и прочее стороннее барахло не предлагать(я учусь а не варю солянку)

Может есть какие-то идей?
(Offline)
 
Ответить с цитированием
Старый 16.02.2009, 05:25   #6
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Столкновение

Идея только одна: пиши код
я это делал, но объяснять на пальцах в 2-ух словах 2 сотни строк кода раскиданых по разным функциям не умею

плеер - сфера, платформа - пологинальная колизия
остальное пиками и условиями

Самый лучший способ избежать проблем с лифтами:
лифт сразу опускается если на нем нет игрока
и опускается быстрее чем он падает

так ты избежишь проблемы когда игрок попадает под платформу
__________________
(Offline)
 
Ответить с цитированием
Старый 16.02.2009, 13:01   #7
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Столкновение

В блитце коллизия работает вот как: Проверяется не только коллизия со сферой и полигоном, а еще и луч с полигоном, то есть если у нас сфера будет неподвижна внутри полигональной модели, с которой мы проверяем столконвение, то ничего не провериться. нужно обязательно, чтобы луч пересек полигон (ну или куб/сфера). Что это за луч? это луч от начала, до конца перемещения сферы. При установке EntityType объекту куда-то в блитц записываются координаты объекта. Это будет начало луча, а конец собстно проследнее положение сферы перед вызовом UpdateWorld(). Так вот, чтобы сделать проверку с движущимся полигональным объектом, нужно сделать такую конструкцию:
translateEntity platform, mx, my, mz
Entitytype player, 0
curX = EntityX(player,1)
curY = EntityY(player,1)
curZ = EntityZ(player,1)
PositionEntity player, curX+mx, curY+my, curZ+mz
Entitytype player, playerCol
PositionEntity player, curX, curY, curZ

При условии, что изначально player и platform не коллизионируют (не перекрывают) друг друга. Давно как-то приходилось разбираться с этим. Вот здесь тред был http://forum.likosoft.ru/showthread.php?t=259
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (16.02.2009)
Старый 16.02.2009, 14:37   #8
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Столкновение

В блитце взаимно движущиеся энтати не колизются, потому что их движение происходит синхронно. Попробуйте вызывать CaptureWorld() перед проверкой коллизий.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Столкновение с НЕ существующим объектом TEHb08 Blitz3D 11 14.01.2009 12:17
столкновение спрайтов Hikkikomori PureBasic 1 29.11.2008 17:15
Столкновение ЛысыЙ_Чук-Иванчук 3D-программирование 7 13.10.2006 21:11
Физика для гонок+(Столкновение) ЛысыЙ_Чук-Иванчук 3D-программирование 9 28.08.2006 23:22
Проверка на столкновение ЛысыЙ_Чук-Иванчук 3D-программирование 8 09.05.2006 10:50


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com