Проблемы с инвентарем и подбором вещей

SFML и C++ Уроки \ Разработка игр Форумы SFML System, Window и другие вопросы Проблемы с инвентарем и подбором вещей

В этой теме 2 ответа, 2 участника, последнее обновление  saxartom 8 года/лет, 2 мес. назад.

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

    saxartom
    Участник
    Сообщений:22

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

    Репутация:4

    Вообщем писал я инвентарь с  такой логикой. Есть базовый класс  TItems от него наследуются классы TWeapons, TAmmo, и еще пару в будущем.

    Отдельно сам класс инвентаря TInventory который реализует сам инвентарь по средствам вектора элементов TItems. Код:

    Базовый класс:

    Инвентарь:

    И в функции peakUpWeap основная проблема. Она принимает объект класса TItems, а не другие, чтобы не писать такую функцию, для каждого типа предметов. Если в качестве аргумента передается оружие – нормально, то есть TWeapons приводится к TItems и ничего страшного, поскольку в инвентаре от оружия надо только String icon , а это элемент как раз класса  TItems.

    А вот если передается TAmmo, и усекается поле int count, поскольку в базовом его нет, а как раз это поле и главное в объекте.

    Вопрос: правильно ли я иду в реализации инвентаря, тогда подскажите как обойти проблему с приведением типов, или нужно не парится и сделать пару контейнеров для разного типа предметов в классе инвентаря.

    Спасибо, заранее)

    #3095
    +1
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Шаблонный класс вектора std::vector должен хранить указатели на TItesm, в противном случае у тебя происходит копирование объекта в результате чего все поля не базового класса усекаются.

    #3102

    saxartom
    Участник
    Сообщений:22

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

    Репутация:4

    Спасибо, но как насчет общей структуры инвентаря?  Стоит ли вообще дальше развивать эту структуру, или есть более удобные (или попросту лучшие) варианты для реализации инвентаря?

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

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