forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Обнаружение столкновений (http://forum.boolean.name/showthread.php?t=5038)

dpsstudio 15.11.2007 20:27

Обнаружение столкновений
 
Как лучше в блитзе определять столкновения между двумя мешами(наиболее просто и поменьше кода)?
Ремарка:
Я блитз3д начал учить 4 дня назад,так что простите за тупые вопросы:)

H@NON 15.11.2007 20:38

Re: Обнаружение столкновений
 
загляни в поиск на форуме.
ну а если так, то попытаюсь быстро тебе кодом объяснить:
Код:

const playercol=1, worldcol=2
...
entitytype player, playercol
...
entitytype world, worldcol
...
collisions playercol, worldcol, 2, 3
while not keyhit(1)

updateworld()
renderworld()

flip
wend
end


mr.DIMAS 16.11.2007 14:53

Re: Обнаружение столкновений
 
Если полигональное не нужно то можно и таким образом:
[blitz]
Function Collide(Entity1,Entity2)
If EntityX(Entity1)<EntityX(Entity2)+MeshWidth(Entity 2) and EntityX(Entity1)>EntityX(Entity2)+MeshWidth(Entity 2) and EntityY(Entity1)<EntityY(Entity2)+MeshHeight(Entit y2) and EntityY(Entity1)>EntityY(Entity2)+MeshHeight(Entit y2) and Entityz(Entity1)<Entityz(Entity2)+MeshDepth(Entity 2) and Entityz(Entity1)>Entityz(Entity2)+MeshDepth(Entity 2) then
PositionEntity entity1,EntityX(Entity2),Entityy(Entity2),Entityz( Entity2)
end if
End Function
[/blitz]
Данная ф-ция останавливает объект Entity1 когда он сталкнулся с Entity2

Crystal 16.11.2007 16:17

Re: Обнаружение столкновений
 
Цитата:

Сообщение от mr.DIMAS
Если полигональное не нужно то можно и таким образом:
[blitz]
Function Collide(Entity1,Entity2)
If EntityX(Entity1)<EntityX(Entity2)+MeshWidth(Entity 2) and EntityX(Entity1)>EntityX(Entity2)+MeshWidth(Entity 2) and EntityY(Entity1)<EntityY(Entity2)+MeshHeight(Entit y2) and EntityY(Entity1)>EntityY(Entity2)+MeshHeight(Entit y2) and Entityz(Entity1)<Entityz(Entity2)+MeshDepth(Entity 2) and Entityz(Entity1)>Entityz(Entity2)+MeshDepth(Entity 2) then
PositionEntity entity1,EntityX(Entity2),Entityy(Entity2),Entityz( Entity2)
end if
End Function
[/blitz]
Данная ф-ция останавливает объект Entity1 когда он сталкнулся с Entity2

Ужос.

XenuS 16.11.2007 16:55

Re: Обнаружение столкновений
 
и не говори))))) но наверняка работает быстрее стандартных, но для новичка в блице пока что лучше collisions ИМХО

IGR 16.11.2007 17:37

Re: Обнаружение столкновений
 
Цитата:

Сообщение от mr.DIMAS
Если полигональное не нужно то можно и таким образом:
[blitz]
Function Collide(Entity1,Entity2)
If EntityX(Entity1)<EntityX(Entity2)+MeshWidth(Entity 2) and EntityX(Entity1)>EntityX(Entity2)+MeshWidth(Entity 2) and EntityY(Entity1)<EntityY(Entity2)+MeshHeight(Entit y2) and EntityY(Entity1)>EntityY(Entity2)+MeshHeight(Entit y2) and Entityz(Entity1)<Entityz(Entity2)+MeshDepth(Entity 2) and Entityz(Entity1)>Entityz(Entity2)+MeshDepth(Entity 2) then
PositionEntity entity1,EntityX(Entity2),Entityy(Entity2),Entityz( Entity2)
end if
End Function
[/blitz]
Данная ф-ция останавливает объект Entity1 когда он сталкнулся с Entity2

вот это колизии !!
вот этого отжог !!

sash13 16.11.2007 19:51

Re: Обнаружение столкновений
 
Нифуя непонял гггг

mr.DIMAS 16.11.2007 20:53

Re: Обнаружение столкновений
 
Цитата:

но наверняка работает быстрее стандартных
работает быстрее канешно. Да с функцией я напарил, ужс. приызнаю не для новичкофф она. ;)

dpsstudio 16.11.2007 21:07

Re: Обнаружение столкновений
 
Спасибо за функцию.Точно уж не для новичков:)

Tadeus 16.11.2007 21:29

Re: Обнаружение столкновений
 
Эээ, а что в ней сложного?))

XenuS 16.11.2007 21:30

Re: Обнаружение столкновений
 
в ней нету ничего сверхсложного....пусть возьмет её на заметку....но для основ блица - это слишком....вот когда он дойдет до оптимизации....=)

tormoz 16.11.2007 22:24

Re: Обнаружение столкновений
 
Сомневаюсь, что она будет быстрее блитц коллизии сфера-куб (тут по сути куб-куб)

jimon 16.11.2007 23:50

Re: Обнаружение столкновений
 

MeshWidth в блице каждый раз пересчитывается ?

Crystal 17.11.2007 09:58

Re: Обнаружение столкновений
 
Этой функцией себе только гемор в будущем создавать,
когда надо будет обрабатывать различные события при коллизиях.

mr.DIMAS 17.11.2007 14:41

Re: Обнаружение столкновений
 
Цитата:

Этой функцией себе только гемор в будущем создавать,
когда надо будет обрабатывать различные события при коллизиях.
Блин, обосрали меня с моей функцией!!! Достали!!! Тема называется Обнаружение столкновений, а не "Обсуждаем функцию mr.Dimas'a"!


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot