Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 15.11.2007, 20:27   #1
dpsstudio
AnyKey`щик
 
Регистрация: 09.03.2007
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Обнаружение столкновений

Как лучше в блитзе определять столкновения между двумя мешами(наиболее просто и поменьше кода)?
Ремарка:
Я блитз3д начал учить 4 дня назад,так что простите за тупые вопросы
(Offline)
 
Ответить с цитированием
Старый 15.11.2007, 20:38   #2
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
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
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 14:53   #3
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
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
__________________

(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 16:17   #4
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
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
Ужос.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 16:55   #5
XenuS
Нуждающийся
 
Регистрация: 31.07.2007
Сообщений: 89
Написано одно полезное сообщение
Re: Обнаружение столкновений

и не говори))))) но наверняка работает быстрее стандартных, но для новичка в блице пока что лучше collisions ИМХО
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 17:37   #6
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
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
вот это колизии !!
вот этого отжог !!
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 19:51   #7
sash13
Оператор ЭВМ
 
Регистрация: 15.11.2007
Сообщений: 34
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Обнаружение столкновений

Нифуя непонял гггг
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 20:53   #8
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Обнаружение столкновений

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

(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 21:07   #9
dpsstudio
AnyKey`щик
 
Регистрация: 09.03.2007
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Обнаружение столкновений

Спасибо за функцию.Точно уж не для новичков
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 21:29   #10
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: Обнаружение столкновений

Эээ, а что в ней сложного?))
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 21:30   #11
XenuS
Нуждающийся
 
Регистрация: 31.07.2007
Сообщений: 89
Написано одно полезное сообщение
Re: Обнаружение столкновений

в ней нету ничего сверхсложного....пусть возьмет её на заметку....но для основ блица - это слишком....вот когда он дойдет до оптимизации....=)
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 22:24   #12
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Обнаружение столкновений

Сомневаюсь, что она будет быстрее блитц коллизии сфера-куб (тут по сути куб-куб)
__________________
(Offline)
 
Ответить с цитированием
Старый 16.11.2007, 23:50   #13
jimon
 
Сообщений: n/a
Re: Обнаружение столкновений


MeshWidth в блице каждый раз пересчитывается ?
 
Ответить с цитированием
Старый 17.11.2007, 09:58   #14
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Обнаружение столкновений

Этой функцией себе только гемор в будущем создавать,
когда надо будет обрабатывать различные события при коллизиях.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 14:41   #15
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Обнаружение столкновений

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

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимиция при столкновении Unodeya 3D-программирование 7 06.06.2009 21:18


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com