struct Rect
{
int X, Y, W, H;
};
// X, Y - положение левого верхнего края спрайта.
// W, H - соответственно ширина и высота спрайта.
int CheckCollision(const Rect& R1, const Rect& R2)
{
return (
(R1.X >= R2.X) && (R1.X <= R2.X+R2.W) ||
(R2.X >= R1.X) && (R2.X <= R1.X+R1.W)
) && (
(R1.Y >= R2.Y) && (R1.Y <= R2.Y+R2.H) ||
(R2.Y >= R1.Y) && (R2.Y <= R1.Y+R1.H)
);
}
Столкновения спрайтов в DirectX 9
Как определять что спрайт столкнулся со спрайтом? Например: играли в мотомедведа? Так вот как определять что мотоцикл находится на земле.
Достаточно общирная тема, существует много методов. Я где-то на gamedev.ru видел несколько статеек, порыскай там...
Обычно сами спрайты не проверяют на столкновение. Для проверки столкновения двух объектов используют примитивы (элипсы, прямоугольники), которые определяют на столкновение между собой. Если два примитива столкнулись, то значит столкнулись и объекты, которым эти примитивы принадлежат.
А как у спрайтов это можно реализовать в 2-д графике?
На вскидку: