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

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

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

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

Ответ
 
Опции темы
Старый 01.11.2005, 12:02   #16
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Создаешь Пивот для своего анимированного объекта - сферу!
piv = CreateSphere()
Зачем это? Лишние "пивоты-сферы" в Блице, который начинает скрипеть на второй тысяче обьектов?

Развернутый ответ класса "не совсем в тему":
Суть в том, что анимМеш- это группа, иначе- "дерево" обьектов. Хендл АнимМеша, который ты получаешь при загрузке- это, собственно говоря, и есть "главный" Пивот, к которому припарентены все остальные составляющие. Вот ему-то, Пивоту, (а не видимой-полигональной части меша!) и назначаются все коллизии. Т.к. полигонов в нем нет по определению, то коллизии "сфера-полигон" работать не будут. Чтоб создать такую коллизию, следует найти нужную часть меша GetChild()-ом или FindChild()-ом и присвоить коллизийные параметры ей. Всё.
По той же теме проходят вопросы "Почему АнимМешу не задается EntityAlpha, EntityShininess etc.?" и "Почему при попытке применить Animate на модель с костяной анимацией анимируются только кости, а модель стоит на месте?"
Ответ: "Всё потому же: находим нужную часть модели и применяем команду на нее"

P.S. Подобную тему надо создать в ЧаВо. Иначе вопросы эти будут повторяться бесконечно. Я сам ими когда-то задавался, пока не подсмотрел ответ на этот вопрос от другого новичка.
(Offline)
 
Ответить с цитированием
Старый 01.11.2005, 13:56   #17
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Со сферой я перегнул... Тогда просто пивот создать...

Насчет назначения колизий чайлдам: колизия будет проверяться с чайлдом, а двигать мы будем главный пивот. При столкновении получится, что пивот продолжает двигаться, а чайлд как и должен уперся в стенку!
И они сместятся относительно друг друга.
Или нет?
У меня что-то подобное было просто...
(Offline)
 
Ответить с цитированием
Старый 01.11.2005, 16:41   #18
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Хм... нет... почему?
Всё нормально будет. Тут логику понять надо.
Ну представь, есть у тебя анимированная модель. Танк, к примеру. Его Пивоту ("главному", не нужно создавать еще один) ты присвоил коллизийный тип "ТАНК", чтоб он коллизился к земле ("ЗЕМЛЯ") типом сфера-к-полигону: Collisions TANK,GROUND,2,3
Естественно, этот пивот отлично сработает коллизийной сферой.
Танковой броне ты присвоил тип "АРМОР". Но ей никакие коллизийные параметры задавать не надо. В самом деле, к чему ей коллизиться?
А вот танковому снаряду или там автоматной пуле ты присвоил тип "ПУЛЯ" и задал коллизию сфера-к-полигону с броней: Collisions BULLET,ARMOR,2,1.
И всё рулит: пивот коллизится к земле, а земля- НЕ коллизится к Пивоту. Пули коллизятся к броне, а броня к ним- нет.
А коллизий с обратной связью конечно нужно избегать.
(Offline)
 
Ответить с цитированием
Старый 01.11.2005, 16:44   #19
ZanoZa
Элита
 
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений
(для 252 пользователей)
Так чё испльзовать пивот?
(Offline)
 
Ответить с цитированием
Старый 02.11.2005, 17:23   #20
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
не подскажите какая разница жеду записями
If EntityCollided(tank,2)=q\zvezda
и
If EntityCollided(TANK_T,PRIZ_T)
если

Type zvezda
	Field zvezda
End Type

Collisions TANK_T,PRIZ_T,2,1
(Offline)
 
Ответить с цитированием
Старый 02.11.2005, 20:34   #21
alcosholik
 
Сообщений: n/a
Разница большая.
EntityCollided возвращает 0, если объекты не столкнусь, и 1 в противном случае. Т.е. это условие:
If EntityCollided(TANK_T,PRIZ_T)
будет выполняться в том случае, когда объекты столкнутся.

В то время как это условие:
If EntityCollided(tank,2)=q\zvezda
будет выполняться, если объекты НЕ столкнуться, так как q\zvezda по умолчанию равно 0.
 
Ответить с цитированием
Старый 02.11.2005, 22:11   #22
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Скажу даже больше, условие "If EntityCollided(TANK_T,PRIZ_T)" не будет выполняться вообще никак и вылетать с сообщением "Entity does not exists"... Потому как первым параметром ф-и должен быть хендл модели, а не константа коллизийного типа...

2Шолик: в случае столкновения ф-я возвращает не 1, а хендл коллизящейся ёнтити. Проверено эмпирически и по Хелпу.
(Offline)
 
Ответить с цитированием
Старый 02.11.2005, 22:49   #23
alcosholik
 
Сообщений: n/a
Originally posted by Diplomat@Nov 2 2005, 08:11 PM
2Шолик: в случае столкновения ф-я возвращает не 1, а хендл коллизящейся ёнтити. Проверено эмпирически и по Хелпу.
Сегодня просто не мой день.
 
Ответить с цитированием
Старый 03.11.2005, 02:07   #24
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
Diplomat
Скажу даже больше, условие "If EntityCollided(TANK_T,PRIZ_T)" не будет выполняться вообще никак и вылетать с сообщением "Entity does not exists"... Потому как первым параметром ф-и должен быть хендл модели, а не константа коллизийного типа...
Дипломат. Согласен, писал прям в браузере на память поэтому ошыбка, насамом деле в коде
If EntityCollided(q\zvezda,TANK_T)
хех хотя всё равно не работает. буду разбиратся.


ps: alcoSHoLiK спасиб доходчего.
pps: Diplomat ) ну ты каАк, чёнить, ляпниш, этокае, млин, я потом пережовываю неделю но всеравно молодца, спасиб, мож запомню, как это все хоть называется млин.
(Offline)
 
Ответить с цитированием
Старый 03.11.2005, 10:34   #25
Guest
 
Сообщений: n/a
Всё нормально будет. Тут логику понять надо.
Ну представь, есть у тебя
Понял.
Просто я не моделю практически, и главный пивот модели может оказаться в заднице, поэтому свой мне проще сделать...
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коллизии в 2.5D cheaters-hater 2D-программирование 11 07.07.2009 00:33
Вопрос про наболевшее - коллизии. DEGABB 3D-программирование 47 10.02.2008 02:37
Вопрос про коллизии TG 3D-программирование 6 09.11.2007 01:39
Коллизии Crystal 3D-программирование 58 12.10.2007 17:16
Коллизии Stalnoy_Gvozd' 3D-программирование 6 30.08.2007 15:56


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


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