Создание функции столкновения любого объекта с любым

SFML и C++ Уроки \ Разработка игр Форумы Логика игр Создание функции столкновения любого объекта с любым

В этой теме 2 ответа, 2 участника, последнее обновление  BunDem 9 мес., 1 неделя назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #5113

    RestoreHack
    Участник
    Сообщений:1

    Зарегистрирован:
    23.04.2019

    Репутация:0

    Есть множество классов и объектов из них. Прописывать логику столкновения каждого с каждым очень громоздко, не практично и уверен, что неправильно. Работаю на VS2017 + SFML.
    Дайте пожалуйста наводки, каким способом это реализовать одним решением. Задача – сделать функцию, которая будет логикой столкновений для любого объекта при взаимодействии с любым.

    Наивно мечтаю, что есть какой-то метод, подобный такому:

     

    #5115

    RestoreHack
    Участник
    Сообщений:1

    Зарегистрирован:
    23.04.2019

    Репутация:0

    Судя по активности в данной теме чувствую, что здесь буду писать ответы самому себе.
    Ответ ниже. Но появился новый вопрос нереальной для меня (сейчас) сложности.
    Надеюсь на тебя, будущий я)

     

    #5162

    BunDem
    Участник
    Сообщений:101

    Зарегистрирован:
    10.05.2015

    Репутация:23

    Да, активность такая, жди ответа пол года, ахахаха. (Если повезет). Твои наивные мечты не наивны. Есть такое понятие как Полиморфизм. Ты создаёшь отдельный класс Solid (т.е. твёрдый) и от этого класса наследуешь все классы, которые должны сталкиваться. В Solid хранишь данные о FloatRect (позиция, ширина, высота) и функция проверки столкновений bool intersects(Solid otherSolid) {
    this.GetGlobalBounds.intersects(otherSolid.getRect());

    }

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)

Для ответа в этой теме необходимо авторизоваться.