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

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

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

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

Ответ
 
Опции темы
Старый 13.08.2006, 11:08   #1
Ilyich
Нуждающийся
 
Регистрация: 13.08.2006
Сообщений: 90
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Вопрос по коллизиям.

Приветствую форумчан.
Проблема вот такая. Имеются два шара разного радиуса. В определенный момент они сталкиваются. Надо определить координату их столкновения(например, относительную для одного из шаров). В зависимости от координаты один из шаров летит в определенном направлении. То есть как в бильярде, только один шар остается на месте. Как послать шар- это я знаю. А вот как определить место столкновения? В хэлпе ничего не нашел. Подскажите плз. Буду рад любой помощи.
(Offline)
 
Ответить с цитированием
Старый 13.08.2006, 12:27   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Вопрос по коллизиям.

CollisionX, CollisionY, CollisionZ, -координаты
CollisionNX, CollisionNY, CollisionNZ -компоненты нормали коллизии
см. также:
EntityCollided, CollisionTime, CollisionEntity, CollisionSurface, CollisionTriangle.
и может понадобиться: CountCollisions
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 13.08.2006, 19:14   #3
Ilyich
Нуждающийся
 
Регистрация: 13.08.2006
Сообщений: 90
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

2impersonalis
Благодарствую. Буду рыться. Тему прошу пока не закрывать - быть может, возникнут новые вопросы.
(Offline)
 
Ответить с цитированием
Старый 15.08.2006, 13:01   #4
Stranger
AnyKey`щик
 
Регистрация: 28.07.2006
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

У меня тоже вопрос по коллизиям. Имеется объект Object1. У него есть два дочерних объекта Child1 и Child2. Проверка на коллизию ведется для Child1 с, например, землей. Но при коллизии Child1 остается на месте, а Child2 падает вниз. Как сделать, чтобы при коллизии ребенка весь объект оставался на месте?
(Offline)
 
Ответить с цитированием
Старый 16.08.2006, 17:00   #5
Stranger
AnyKey`щик
 
Регистрация: 28.07.2006
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

Ответьте кто-нибудь, а?
(Offline)
 
Ответить с цитированием
Старый 16.08.2006, 19:04   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Вопрос по коллизиям.

Поставить коллизию на весь меш.
или
Описать условия.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 18.08.2006, 15:12   #7
Ilyich
Нуждающийся
 
Регистрация: 13.08.2006
Сообщений: 90
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

Никак не могу понять, что сделал не так. По замыслу один шар должен отталкиваться (см. первый пост) однако если зайти шаром слева то он летит... вверх! в чем баг?
Graphics3D 640,480,32
SetBuffer BackBuffer()
camera= CreateCamera()
Const balls=1
Collisions balls,balls,2,3
Global wire=False
Global vel#
Global x#,Y#,z#
RotateEntity camera,90,30,0
PositionEntity Camera,10,10,0
plane=CreatePlane()
PositionEntity plane,0,0,0
ball1= CreateSphere()
PositionEntity ball1,10,1,0
EntityType ball1,balls
ball2=CopyEntity (ball1)
MoveEntity ball2,5,0,0

EntityColor ball2,0,255,0
EntityColor ball1,255,0,0
vel=.2
vel1#=.3
vel2#=.3
vel3#=.3
While Not KeyHit(1)
If vel<0.0000001 Then vel=0.0000001 
If x<0.0000001 Then x=0.0000001 
If y<0.0000001 Then y=0.0000001 
If z<0.0000001 Then z=0.0000001 

If KeyDown(30) Then vel=vel/1.05 TranslateEntity ball2,-(vel),0,0 Else vel=.3 
If KeyDown(32) Then vel1=vel1/1.05 TranslateEntity ball2,vel1,0,0 Else vel1=.3
If KeyDown(17) Then vel2=vel2/1.05 TranslateEntity ball2,0,0,vel2 Else vel2=.3
If KeyDown(31) Then vel3=vel3/1.05 TranslateEntity ball2,0,0,-vel3 Else vel3=.3
If EntityCollided(ball2,balls) Then 
x#=CollisionNX(ball2,1)
y#=CollisionNY(ball2,1)
z#=CollisionNZ(ball2,1)
Else x#=x/1.2:y#=y/1.2:z#=z/1.2
EndIf
TranslateEntity ball2,x#,y#,z#

If KeyHit(57) Then wire= Not wire :WireFrame  wire
UpdateWorld
RenderWorld
Color 0,0,0
Text 10,10,x
Flip

Wend
(Offline)
 
Ответить с цитированием
Старый 18.08.2006, 15:38   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Вопрос по коллизиям.

... вверх! в чем баг?
В расчете направления отталкивания.
Ты не понял сути значений

x#=CollisionNX(ball2,1)
y#=CollisionNY(ball2,1)
z#=CollisionNZ(ball2,1)
__________________
(Offline)
 
Ответить с цитированием
Старый 19.08.2006, 08:17   #9
Ilyich
Нуждающийся
 
Регистрация: 13.08.2006
Сообщений: 90
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

tormoz как я понял, эти значения - комоненты перпендикуляра к точке касания (нормаль). Но ведь если оба шара находятся на одной высоте, то y-компонента всегда нулевая! Или же нет? Попробую сейчас приравнять к нулю.
(Offline)
 
Ответить с цитированием
Старый 19.08.2006, 15:42   #10
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Вопрос по коллизиям.

А ты их выведи на экран - сам все поймешь
__________________
(Offline)
 
Ответить с цитированием
Старый 30.08.2006, 11:09   #11
Ilyich
Нуждающийся
 
Регистрация: 13.08.2006
Сообщений: 90
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

Все-таки непонятно, почему шар отталкивается как-то неестественно. (например, если зайти по касательной сверху, или в лоб слева) :?
(Offline)
 
Ответить с цитированием
Старый 01.12.2006, 02:32   #12
MIXRYTKA
AnyKey`щик
 
Регистрация: 01.10.2006
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос по коллизиям.

Доброй ночи всем!!!
Я новичок в блице и в програмирование вообще, но кое что сделал, вот у меня возник вопрос, как сделать коллизии с анимированными моделями (.b3d.....) пока что все.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос Черный крыс BlitzMax 1 31.03.2009 09:30
Вопрос c++ и b3d LD Разработка LIB 5 19.02.2009 19:22
Вопрос Fant 3D-программирование 8 05.03.2007 15:26


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


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