 |
3D-программирование Вопросы, касающиеся программирования 3D мира |
14.09.2007, 06:36
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Раз два три присели =)
Подскажите как лучше приседание реализовать?
Опустить всего юзера или тока его камеру?
Думаю если опускать юзера то коллизия взбуянится, и не даст мне его опустить.
А если опускать токо камеру то смысла в приседании небудет ибо из-за той же коллизии нельзя будет пролазить в низкие места.
У меня вообще фпс вид, и юзер тупо сфера. 
Может быть лучше сделать 2 сферы одна для ног вторая типа туловище?
Задать коллизии и тому и другому. И вопщем если опускать верхнюю сферу(туловище) вместе с камерой до уровня нижней сферы(ног) то может реализоваться приседание без ругательств со стороны коллизии, и с возможностью лазить под чемто пригнувшись.
Жду ваших мнений и советов )
А можно и примеров )
|
(Offline)
|
|
14.09.2007, 06:40
|
#2
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Раз два три присели =)
так.... просто изменяй EntityRadius и все... допустим, полный рост чела
EntityRadius Sphere , 10,30 , а затем при нажимании пробела его уменьшай.. и как бы получается, что рост становится ниже...
If KeyDown (кнопка_пробела) Then
If X > 10 Then X=X-0.01
Else
If X < 30 Then X=X+0.01
End if
EntityRadius Sphere , 10 , X
|
(Offline)
|
|
14.09.2007, 11:36
|
#3
|
Знающий
Регистрация: 05.01.2007
Сообщений: 229
Написано 5 полезных сообщений (для 3 пользователей)
|
Re: Раз два три присели =)
If KeyDown (кнопка_пробела) Then
If X > 10 Then X=X-0.01
Else
If X < 30 Then X=X+0.01
End if
|
Работать не будет! Проверьте пошагово от Х=30 или от Х=10.
Или сразу при Х=20.
А Entity это обязательно сфера или то все-таки может быть элипсоид?
Если вы для сферы измените высоту, то вы измените ее ширину и глубину то же, ведь у сферы один размер - радиус.
Попробуй для начала действительно две сферы, из которых при приседании верхняя дискретно за один шаг смещается в нужное положение. Плавное приседание делашь потом.
|
(Offline)
|
|
14.09.2007, 12:28
|
#4
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Раз два три присели =)
Почему работать не будет? если пробел нжат и высота больше 10, то умеьншаем её, а если не нажата и меньше 30, то увеличиваем...
Вот...
Хм.. а почему , допустим, нельзя куб исользовать? вот у мну куб...
З.Ы. опять какую-то чушь сказал я ...
|
(Offline)
|
|
14.09.2007, 12:59
|
#5
|
|
Re: Раз два три присели =)
радиус колизионной сферы можно менять по элипсоиду - EntityRadius mesh,radX,[radY] - последний параметр какрас меняет радиус по оси Y.
есть подводный камень.....если радиус уменьшить - то все норм.....но стоит игроку "встать на ноги" - тут будут проблеммы.....игрок упадет вниз сквозь пол....конечно можно сделать ухищрения...но это будет мазахизм. Аффтар - первая мысль - всегда самая близкая к истине.... 
|
|
|
14.09.2007, 14:17
|
#6
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Раз два три присели =)
Ну значит когда дойду до программирования приседаний главному герою, буду использовать 2 сферы.
Данил: а зачем куб? коллизия то всё равно сферическая.
|
(Offline)
|
|
14.09.2007, 16:31
|
#7
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Раз два три присели =)
Черт его знаеь. ступил чет... ещё диея - сделать сферу для коллизий.. и ставить ровно над ней камеру... и над ней в расстоянии Х и его уменьшать / увеличивать
|
(Offline)
|
|
15.09.2007, 08:20
|
#8
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Раз два три присели =)
куб, потомучто тогда просто понижаем сверку и все а чел остается сам такойже ну и вообще так вроде должно лучше получится... (ну незнаю ещё как там если он встанет будет....)
|
(Offline)
|
|
15.09.2007, 11:03
|
#9
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Раз два три присели =)
Сообщение от NitE
куб, потомучто тогда просто понижаем сверку и все а чел остается сам такойже ну и вообще так вроде должно лучше получится... (ну незнаю ещё как там если он встанет будет....)
|
чёта я не понял что ты хотел сказать
|
(Offline)
|
|
15.09.2007, 13:57
|
#10
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Раз два три присели =)
)) ну прдстав, человек стойт (в игре) у стены с коллизией шара, он приседает и не тока становится ниже но ещё и к стене придвегается... а если с кубом то прочто куб делаем по оси Х меньше и камеру понижаем, и все...
|
(Offline)
|
|
15.09.2007, 14:24
|
#11
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Раз два три присели =)
Бред какойто.
Если у меня сферическая коллизия то пусть у меня объект хоть куб хоть треугольник хоть звезда коллизия будет всё равно сферой.
И с чего ты взял что у стены будет коллизия сферическая?
И что плохого в моей системе приседания где верхняя сфера опускается на уровень нижней?
|
(Offline)
|
|
15.09.2007, 17:04
|
#12
|
Знающий
Регистрация: 05.01.2007
Сообщений: 229
Написано 5 полезных сообщений (для 3 пользователей)
|
Re: Раз два три присели =)
Да код действительно верный, меня переклинило чегой-то.
Почему сфера и куб различаются? Что тут не понятного?
Возьми прислони к краю стола футбольный мяч, упри его в стол - не идет. Опусти мяч на 5 см, упять попробуй задвинуть под стол - задвинется не много и дальше не пойдет, опусти еще на 5 см.. и наконец, когда опустишь больше чем на радиус мяча, он пройдет под стол полностью. А с кубом такого не получится, куб надо опустить полностью ниже уроаня крышки стола, чтоб он прошел под этот самый стол.
|
(Offline)
|
|
15.09.2007, 17:19
|
#13
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Раз два три присели =)
ВАще у меня реализована , как я раньше сказал. менчю просто У координату при коллии.. и ставлю камеру немного ниже куба (для коллизий)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:38.
|