пресичане на OBB

Всичко за програмирането на игри - архитектура, графика, звук, изкуствен интелект, мрежи.
Потребителски аватар
KosSiO
Power User
Power User
Мнения: 316
Регистриран: 20 окт 2008 19:29
Местоположение: Targovishte,Sofia

пресичане на OBB

Мнение от KosSiO » 10 юни 2011 17:52

Престраших се и аз да напусна раздела "за начинаещи".Най сетне реших да изоставя сферите и да използвам по-точен метод за колизиите.

Това е един клас който определя дали 2 кутии(с съответните им транслации, ротации, скалации) се пресичат или не.
ето кода е тук : http://www.mediafire.com/?3n42km5dvc6lyxy
Да отбележа че използвам математическите функции на d3dx9, но лесно можете я промените да използва вашите.

Използват се лесно.Ето как :
Правите кутия по този начин OBB3D Box(sx , sy , sz); където sx е широчина, sy е височина, sz е дължина.
Прилатате трансформации на кутийката чрез : Box.SetTransform(TransformMatrix);(параметъра е матрица тип D3DXMATRIX);
Проверявате дали има пресичане чрез OBB3DCollide(Box , Box2); връща false ако няма пресичане и true ако има.

Отговори