Пятница, 22 Ноября 2024, 09:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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
Сэнсэй
Сейчас нет на сайте
Давай код wink

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
imperator12Дата: Вторник, 17 Июля 2012, 17:06 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Quote (Archido)
Давай код

Та тут я и сам разберусь yes
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг