Directx спрайты
|
|
imperator12 | Дата: Вторник, 17 Июля 2012, 13:49 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Добрый день. У меня возникла проблема есть спрайт(2 треугольника и натянутая на них текстура). Как мне задать ограничиивающий прямоугольник или сферу. С координат я могу знать толька левый верхний угол. В нете нашол много материалов по етой теме но там в основном только теория. Функции D3DXComputeBoundingBox и D3DXComputeBoundingSprehe тоже вроде не работают. Подскажите пожалуста как всеже реализовать проверку столкновений.
|
|
| |
Archido | Дата: Вторник, 17 Июля 2012, 13:59 | Сообщение # 2 |
Сэнсэй
Сейчас нет на сайте
| imperator12 Не понял. У тебя ведь есть координата угла + ширина и высота, ты ведь как то эти два треугольника спрайта строишь?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
imperator12 | Дата: Вторник, 17 Июля 2012, 14:04 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| У меня есть клас который загружает текстуру вычисляет ее размер и от етого зависит размер 2 треугольников. А высота и ширина есть у меня только локальная насколько я понимаю.Или я чтото не до конца понимаю.
|
|
| |
Archido | Дата: Вторник, 17 Июля 2012, 14:12 | Сообщение # 4 |
Сэнсэй
Сейчас нет на сайте
| Ну если ты используешь размеры текстуры для построения этих треугольников, то их и надо использовать. Т.е. у тебя позиция спрайта на экране (если координаты спрайта находятся в левом верхнем углу, либо надо вычислять) + размеры - это и есть твой BB.
P.S. Неплохо еще код, где строится и рисуется спрайт, тогда все сразу понятно станет.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
imperator12 | Дата: Вторник, 17 Июля 2012, 14:21 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Archido огромное тебе спасибо я нашел где я запутался мне надо было размер*2 ведь у меня идет не с х до 0 а с х до -х
|
|
| |
Archido | Дата: Вторник, 17 Июля 2012, 14:31 | Сообщение # 6 |
Сэнсэй
Сейчас нет на сайте
| Quote (imperator12) мне надо было размер*2 ведь у меня идет не с х до 0 а с х до -х Так тебе правильнее тогда делать не с "х до -х", а с "х / 2 до -х / 2", т. е. размер не двойной, а настоящий. И координаты спрайта тогда находятся у него в центре, поэтому BB строится как: Code -Width / 2, -Height / 2 Width / 2, -Height / 2 -Width / 2, Height / 2 Width / 2, Height / 2
+ координаты спрайта и тогда BB будет в нужном месте.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Вторник, 17 Июля 2012, 14:38 |
|
| |
imperator12 | Дата: Вторник, 17 Июля 2012, 16:27 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| Quote (Archido) ак тебе правильнее тогда делать не с "х до -х", а с "х / 2 до -х / 2", т. е. размер не двойной, а настоящий.
Так и сделал но спрайты стали какимито уж очень маленькими.
|
|
| |
Archido | Дата: Вторник, 17 Июля 2012, 16:29 | Сообщение # 8 |
Сэнсэй
Сейчас нет на сайте
| Давай код
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
imperator12 | Дата: Вторник, 17 Июля 2012, 17:06 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| Та тут я и сам разберусь
|
|
| |