Почти универсальная коллизия твердых объектов

SFML и C++ Уроки \ Разработка игр Форумы SFML готовые решения (сниппеты) и советы Почти универсальная коллизия твердых объектов

В этой теме 0 ответов, 1 участник, последнее обновление Nikolay Nikolay 4 года/лет, 10 мес. назад.

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #5129
    Nikolay
    Nikolay
    Участник
    Сообщений:4

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

    Репутация:1

    Сразу оговорюсь: данный метод не панацея от всех бед, но львиную долю проблем, связанных со столкновениями объектов solid (твердых), поможет избежать.

    Далее все названия условные, новички смогут перевести,а кто успел немного поработать с сфмл -смогут адаптировать информацию под свои нужды.

    Итак,для примера имеем класс персонажа со своим спрайтом(player.sprite) и класс условной твердой преграды(stone.sprite)

    в конструкторе персонажа создаем sf::Vector2f oldpos; – она будет дублировать позицию спрайта игрока все время, пока тот не столкнется с преградой

     

    В классе преграды создаем bool solid и через конструктор делаем ее true

    if((player.sprite.getGlobalBounds().intersects(stone.sprite.getGlobalBounds())) && stone.solid)

    {

    player.sprite.setPosition(oldpos);

    }

    else

    {

    oldpos = player.sprite.getPosition();

    };

     

     

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

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