 |
22.06.2010, 13:10
|
#886
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Из примера castle
For k=1 To CountCollisions( b\sprite )
If GetEntityType( CollisionEntity( b\sprite,k ) )=TYPE_SCENERY
cx#=CollisionX( b\sprite,k )
cy#=CollisionY( b\sprite,k )
cz#=CollisionZ( b\sprite,k )
nx#=CollisionNX( b\sprite,k )
ny#=CollisionNY( b\sprite,k )
nz#=CollisionNZ( b\sprite,k )
th.Hole=New Hole
th\alpha=1
th\sprite=CopyEntity( hole_sprite )
PositionEntity th\sprite,cx,cy,cz
AlignToVector th\sprite,-nx,-ny,-nz,3
MoveEntity th\sprite,0,0,-.1
Exit
EndIf
Next
|
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.06.2010, 17:02
|
#887
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от EaNub
А что за индекс столкновения?Писал разное туда, но всё равно выдавало:
Collision index out of range.
|
Количество столкновений за цикл может быть разное.
Индекс и указывает, какое именно столкновение тебе нужно
CountCollisions - возвращает количество столкновений
0 - столкновений нет
стоишь на земле - будет 1
касаешся стены - 2 (одно на землю, второе на стену) и тд.
Перебирай через фор все индексы
For i=1 to CountCollisions(entity)
If CollisionEntity( entity,i )
cy#=CollisionNY( entity,i)
If cy>0.01 or cy<-0.01
игрок касается горизонтальной поверхности
EndIf
EndIf
Next
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.06.2010, 09:11
|
#888
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
А вот как сделать нормальное приседание, много видел обсуждении, типа создание игрока из двух пивотов.Так вот я много разных способов использовал, но нормально эти два пивота присоеденить друг к другу я не смог.На ровной поверхности всё нормально, а вот когда подходиш ...ну например к ящикам, нижняя часть сталкивается с ним, а верхняя спокойно проходит поверх ящика...
|
(Offline)
|
|
24.06.2010, 09:27
|
#889
|
ПроЭктировщик
Регистрация: 20.06.2010
Адрес: Верняя Пышма - центр UMMC
Сообщений: 146
Написано 33 полезных сообщений (для 40 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от EaNub
А вот как сделать нормальное приседание, много видел обсуждении, типа создание игрока из двух пивотов.Так вот я много разных способов использовал, но нормально эти два пивота присоеденить друг к другу я не смог.На ровной поверхности всё нормально, а вот когда подходиш ...ну например к ящикам, нижняя часть сталкивается с ним, а верхняя спокойно проходит поверх ящика...
|
Коли от первого лица, то посмотри урок по созданию квеста на Ксорсе от Hurrit. Там это описано! 
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.06.2010, 09:53
|
#890
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Посмотрел, там только имитация приседания(камера вверх, вниз) а вот например если нужно залезть в какой нибудь узкий проход.
вообще бы не плохо сделать передвижение как в контре
|
(Offline)
|
|
24.06.2010, 15:26
|
#891
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
ну сделай коллизию персу из двух эллипсойдов, нижнего и верхнего, опускай/убирай нижний вместе с анимкой приседания
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.06.2010, 15:30
|
#892
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Mr_F_
ну сделай коллизию персу из двух эллипсойдов, нижнего и верхнего, опускай/убирай нижний вместе с анимкой приседания
|
в этом и проблема, что я не могу скрепить нормально два эллипсойда, если парентить то при столкновении с низким объектом, например ящик, нижняя сталкивается, а верхняя проходит 
|
(Offline)
|
|
24.06.2010, 15:39
|
#893
|
ПроЭктировщик
Регистрация: 20.06.2010
Адрес: Верняя Пышма - центр UMMC
Сообщений: 146
Написано 33 полезных сообщений (для 40 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
А если камера + ScaleEntity? Или у тебя через физику?
|
(Offline)
|
|
24.06.2010, 16:39
|
#894
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
нет, не через физику, у меня два пивота с радиусом + камера
|
(Offline)
|
|
25.06.2010, 11:35
|
#895
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
вообщем немного урежу свой вопрос, как свзяать два пивота с радиусов, так что бы например если 1 столкнулся, то и 2 останавливается и наоборот, если 2 столкнулся, то и 1 останавлвается.
|
(Offline)
|
|
25.06.2010, 12:37
|
#896
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Наверно условием. Если нет столкновений, то парентить один пивот к другому - как то так. 
|
(Offline)
|
|
26.06.2010, 10:33
|
#897
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
а может кто нибудь выложить пример с поста N6 http://forum.boolean.name/showthread... %E0%ED%E8%E5 от MoKa , а то тема трёхлетней давности, не хочу ее трогать
Там ответ на мой вопрос...
|
(Offline)
|
|
27.06.2010, 12:25
|
#898
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
сори за повторное сообщение
Почему у меня может столкновение pvtpl1 равна 0, вот код:
Создаём:
Global Player=CreatePivot()
EntityType Player,TypePlayer
EntityRadius Player,80,300
Camera=CreateCamera()
CameraRange Camera,1,15000
EntityParent Camera,Player
MoveEntity Camera,0,150,0
Global pvtpl1=CreatezPivot()
EntityType pvtpl1,TypePlayer
EntityRadius pvtpl1,2,2
Global pvtpl2=CreatePivot()
EntityType pvtpl2,TypePlayer
EntityRadius pvtpl1,2,2
XplayerPl=EntityX(player)
YPlayerPl=EntityY(player)
ZplayerPl=EntityZ(Player)
Ypvtpl1=YPlayerPl-150
Ypvtpl2=YPlayerPl+150
PositionEntity pvtpl1,XplayerPl,Ypvtpl1,ZplayerPl
PositionEntity pvtpl2,XplayerPl,Ypvtpl2,ZplayerPl
как я и сказал выше, колизия с pvtpl1 постоянна равна нулю.Помогите плз
|
(Offline)
|
|
27.06.2010, 13:05
|
#899
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Пивоты не колизятся
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо is.SarCasm за это полезное сообщение:
|
|
27.06.2010, 17:32
|
#900
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Igorian
Пивоты не колизятся
|
Да ты что?Правда что ли?Что же тогда player колизится?Пивоты с радиусом колизятся
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:08.
|