|
3D-программирование Вопросы, касающиеся программирования 3D мира |
29.10.2005, 13:17
|
#1
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Очень стыдно, но есть вопрос (я уверен, что ответ прост, но НИКАК не могу допереть до исины)
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Const typecube1=1
Const typecube2=2
camera=CreateCamera()
PositionEntity camera,0,0,-20
cube1=CreateCube()
PositionEntity cube1,10,0,0
EntityType cube1,typecube1
EntityColor cube1,0,200,60
cube2=CreateCube()
PositionEntity cube2,0,0,0
EntityType cube2,typecube2
EntityColor cube2,250,00,0
Collisions typecube1,typecube2,2,3
Repeat
MoveEntity cube1,-.1,0,0
If KeyHit (57) Then End
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Ну как сделать так, что бы по нажатию пробела они НЕ коллиделись????
то есть если нет события - коллизия.
если событие произошло, то коллизии быть не может случиться
и...как код втыкать в текст
|
(Offline)
|
|
29.10.2005, 13:31
|
#2
|
|
хе
предлагаю по нажатию пробела присваивать обектам тип 0 (entitytype mazaf**a,0)
а код ты практически правильно втыкнул , просто надо не [\code] а [/code]!
|
|
|
29.10.2005, 13:58
|
#3
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
спасибо. работает. Тему не закрываем. Возможно писать сюда продолжу еще я про коллизии!
|
(Offline)
|
|
29.10.2005, 14:19
|
#4
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Как колизить animmesh
|
(Offline)
|
|
29.10.2005, 14:25
|
#5
|
Знающий
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений (для 2 пользователей)
|
меня тоже интересует этот вопрос
|
(Offline)
|
|
29.10.2005, 14:59
|
#6
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Создаешь Пивот для своего анимированного объекта - сферу!
piv = CreateSphere()
a модель перентишь к пивоту
EntityParent animMesh,piv
еще не помешает сделать при помощи масштабирования из сферы эллипсоид
ScaleMesh piv,1,3,1 - например так
Потом устанавливаешь радиус коллизии и тип
EntityRadius piv,1,3
EntityType piv,col_type
Все, остальное знаете.
|
(Offline)
|
|
29.10.2005, 16:20
|
#7
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
А ПО МОЕМУ МОЖНО И БЕЗ СФЕРЫ ОБОЙТИСЬ, ВЕДЬ У МЕНЯ ГЕРОЙ И ТАК БЕГАЕТ.
|
(Offline)
|
|
29.10.2005, 16:37
|
#8
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Так...приплыли сюда
Кнопка пробел - убирает все коллизии
Enter - двигает куб в противоположную сторону
1 на клаве - ставит коллизии.
Итак пример. Игрок берет приз и проходит сквозь "пробиваемые" стены. ЧЕРЕЗ непробиваемые пройти не может. То есть как сделать так, что бы при нажатии пробел ИГРОК проходил сквозь КРАСНЫЙ кубик, а сквозь ФИОЛЕТОВЫЙ пройти не смог.
ПС. шутка: успеть нажать 1 на клаве не принимается. Я серьезно!
вот код:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Const typecube1=1
Const typecube2=2
Const typecube3=3
camera=CreateCamera()
PositionEntity camera,0,0,-20
cube1=CreateCube()
PositionEntity cube1,10,0,0
EntityType cube1,typecube1
EntityColor cube1,0,200,60
cube2=CreateCube()
PositionEntity cube2,0,0,0
EntityType cube2,typecube2
EntityColor cube2,250,00,0
cube3=CreateCube()
PositionEntity cube3,-15,0,0
EntityType cube3,typecube3
EntityColor cube3,250,100,600
Collisions typecube1,typecube2,2,3
Collisions typecube1,typecube3,2,3
Repeat
MoveEntity cube1,-.1,0,0
If KeyDown (28) Then MoveEntity cube1,.2,0,0
If KeyHit (57) Then ClearCollisions
If KeyHit (2)
Collisions typecube1,typecube2,2,3
Collisions typecube1,typecube3,2,3
End If
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
|
(Offline)
|
|
29.10.2005, 17:00
|
#10
|
|
** *** ****** ***, ***** ***** *** ***** *** !
If KeyHit (57) Then
ClearCollisions
Collisions typecube1,typecube3,2,3
End If
говорилже - ВОСОЗДАВАТЬ КОЛОЗИИ НАДО!
|
|
|
29.10.2005, 19:21
|
#11
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Originally posted by Жека@Oct 29 2005, 12:59 PM
Создаешь Пивот для своего анимированного объекта - сферу!
piv = CreateSphere()
a модель перентишь к пивоту
EntityParent animMesh,piv
еще не помешает сделать при помощи масштабирования из сферы эллипсоид
ScaleMesh piv,1,3,1 - например так
Потом устанавливаешь радиус коллизии и тип
EntityRadius piv,1,3
EntityType piv,col_type
Все, остальное знаете.
|
Как всё запущенно неужели не могли сделать как с обычным meshem?
p.s.кто знает подскажите, я сделал анимацию в максе для модели через biped,
а в blitze видно biped и не идёт анимации.Тоже самое с костями.
|
(Offline)
|
|
29.10.2005, 20:40
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Для этого надо экспортровать правильно и в правильный формат... если ты натягивал кости модификатором Skin, то можеш экспортировать Pipeline'ом в b3d формат, если меш сборный, то в 3ds формат экспортируется анимация только с TCB контроллером.
|
(Offline)
|
|
31.10.2005, 08:25
|
#13
|
Бывалый
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений (для 5 пользователей)
|
а можно сделать облости коллизий (EntityRadius, EntityBox), видимыми.
|
(Offline)
|
|
31.10.2005, 09:15
|
#14
|
Бывалый
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений (для 102 пользователей)
|
Originally posted by Akima@Oct 31 2005, 07:25 AM
а можно сделать облости коллизий (EntityRadius, EntityBox), видимыми.
|
Да, CreateSphere(), CreateCube()
|
(Offline)
|
|
31.10.2005, 09:18
|
#15
|
Бывалый
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений (для 5 пользователей)
|
я так делал но у меня вакое впечатление что коллизии гдето в другом месте (смещенно) появляются
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:22.
|