Я делаю игру, и мне нужно, чтобы один игровой объект не накладывался на другой. Есть ли функция в SDL, позволяющая определить пересечение поверхностей и если да, то какая? Или можно определить каким-то другим способом?
На данный момент делаю так: у меня есть класс для игрового объекта Subject
. Все объекты класса содержатся в vector <Subject> subjects
. В этом классе есть метод:
void Subject::move(SDL_Event event, vector <Subject> sub, int index)
{
for (int i = 0; i < sub.size(); i++)
{
if (i != index)
{
subject = sub[i].getSize();
if (size.x + size.w + event.motion.xrel > subject.x &&
size.x + event.motion.xrel< subject.x + subject.w &&
size.y + size.w + event.motion.yrel> subject.y &&
size.y + event.motion.yrel < subject.y + subject.h)
{
state = false;
}
}
}
Когда state
становится false - объект столкнулся с другим.
В main идёт цикл:
for (int i = 0; i < subjects.size(); i++)
{
if (subjects[i].getState() == true)
{
subjects[i].move(event, subjects, i);
subjects[i].render();
}
}
Но таким образом не работает, объект появляется на экране, а при передвижении пропадает. Поэтому я ищу более эффективное решение.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
QtCreator поддерживает разработку диаграмм конечных автоматов и UML-диаграммНо я никак не могу найти информацию, можно ли эти диаграммы использовать...
подскажите хороший инсталятор с открытым кодом на C\C++ буду очень благодарен!
У меня есть шаблонный параметр, принимающий вызываемый типКак узнать тип i-ого параметра этого функционального объекта/функции?