|
3D-программирование Вопросы, касающиеся программирования 3D мира |
30.01.2007, 19:55
|
#1
|
Знающий
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений (для 2 пользователей)
|
Collisions
Давно за блицем не сидел.... Всё позабыл , щас сел решил маленькую гоночку написать и опа... Так с Коллизеей встрял...РАньше с этим таких проблем не было потому что я всё время пользовался EntityRadius, К моей игре подошёл бы EntityBox, но он чо-то не пашет... чо тока не делал он не пашет, уже через pipeline колизию пробовал сделать и всё равно не фига... плиз хелп...
|
(Offline)
|
|
30.01.2007, 20:02
|
#2
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Collisions
код плиз
|
(Offline)
|
|
30.01.2007, 20:09
|
#3
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Collisions
Если я правильно понял суть вопроса, то:
Поддерживаемый тип коллизий в Блице:
-Сфера-к-сфере (эллипсоид-к-эллипсоиду);
-Сфера-к-коробке;
-Сфера-к-полигону.
Коллизии "Коробка-к-полигону" в Блице отсутствуют.
|
(Offline)
|
|
30.01.2007, 20:17
|
#4
|
Знающий
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений (для 2 пользователей)
|
Re: Collisions
Вот например:
Колизия есть но кубик на половину проходит через стену.... Как это испарвить?
Const BoxType=1, WallType=2
Graphics3D 640,480,16
SetBuffer BackBuffer()
Box=CreateCube()
ScaleEntity Box,1,1,2
EntityBox Box,0,0,0,1,1,2
EntityType Box,BoxType
EntityColor Box,0,255,0
Camera=CreateCamera()
PositionEntity Camera,0,30,10
RotateEntity Camera,90,0,0
Light=CreateLight()
RotateEntity Light,90,0,0
Wall=CreateCube()
PositionEntity Wall,0,0,20
ScaleEntity Wall,30,1,0.1
EntityBox Wall,0,0,20,30,1,0.1
EntityType Wall,WallType
EntityColor Wall,255,0,0
Collisions BoxType,WallType,2,2
Collisions WallType,BoxType,2,2
Repeat
If KeyDown(200) Then MoveEntity Box,0,0,1
If KeyDown(208) Then MoveEntity Box,0,0,-1
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
|
(Offline)
|
|
30.01.2007, 20:56
|
#5
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Collisions
Если хочеш колизию полигон-полигон, юзай физ двиг-и....
|
(Offline)
|
|
30.01.2007, 21:06
|
#6
|
Знающий
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений (для 2 пользователей)
|
Re: Collisions
Сообщение от vlad
Если хочеш колизию полигон-полигон, юзай физ двиг-и....
|
ого.... а чо проще никак нельзя??
|
(Offline)
|
|
30.01.2007, 23:37
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Collisions
Вообщето физ двиги, это не очень и сложно, + тебе будут доступны ещё много прянностей.
|
(Offline)
|
|
31.01.2007, 00:49
|
#8
|
Знающий
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений (для 2 пользователей)
|
Re: Collisions
Ладно... Объясните где я могу его взять? это ODE?
|
(Offline)
|
|
31.01.2007, 09:38
|
#9
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений (для 205 пользователей)
|
Re: Collisions
|
(Offline)
|
|
31.01.2007, 18:50
|
#10
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Collisions
Ну я бы рекоминдовал сначала всять невтон(вообще они чуть похожи по использованию), но для невтон-а есть хорошая справка(встиле блица)
|
(Offline)
|
|
31.01.2007, 19:26
|
#11
|
ПроЭктировщик
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение (для 4 участников)
|
Re: Collisions
Чем плоха коллизия эллипсоид-к-полигон - можно ж ставить EntityRadius по двум значениям - будет не идеальный куб, но разве это очень заметно, да и в гонках тем более...
Вот, например:
Const BoxType=1, WallType=2
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
Box=CreateCube()
ScaleEntity Box,1,1,2
EntityType Box,BoxType
EntityRadius Box,2.6,1.3
EntityColor Box,0,255,0
Camera=CreateCamera()
PositionEntity Camera,0,30,10
RotateEntity Camera,90,0,0
Light=CreateLight()
RotateEntity Light,90,0,0
Wall=CreateCube()
PositionEntity Wall,0,0,20
ScaleEntity Wall,30,1,0.1
EntityType Wall,WallType
EntityColor Wall,255,0,0
Collisions BoxType,WallType,2,3
Repeat
If KeyDown(200) Then MoveEntity Box,0,0,1
If KeyDown(208) Then MoveEntity Box,0,0,-1
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
|
(Offline)
|
|
31.01.2007, 20:48
|
#12
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Collisions
Чем плоха коллизия эллипсоид-к-полигон - можно ж ставить EntityRadius по двум значениям - будет не идеальный куб, но разве это очень заметно, да и в гонках тем более...
|
Вот какростоки в гонках оч важно правельность коллизии, не оч приятно видеть как машина врубается тем местом где ничего не видно, или стукаешся в дом и кусок её в нутри него
ЗЫ. Физику ненадобудет придумывать мега умную !!! Физ двиг сам за все будет думать....
|
(Offline)
|
|
31.01.2007, 20:54
|
#13
|
ПроЭктировщик
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение (для 4 участников)
|
Re: Collisions
И ресурсами его кормить не надо - он сам и съест .
А в самом деле, почему в таком случае объект на половину входит в стенку?
|
(Offline)
|
|
31.01.2007, 21:54
|
#14
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Collisions
ну можно ведь не только через колизию можно сверять координаты... или колизия + проверка координат
зыж ели прочитал
|
(Offline)
|
|
31.01.2007, 22:03
|
#15
|
ПроЭктировщик
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение (для 4 участников)
|
Re: Collisions
Вот какой из этих 2 способов будет эффективнее? В смысле, с физ. движком или через просчеты+станд.коллизии
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:16.
|