ФорумРазработкаРазработка игр → Помощь с алгоритмом

Помощь с алгоритмом

  • abasov90

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 28 апреля 2017 г. 14:52

    Привет народ! Есть задача, хорошее решение которой в голову не приходит.

    Есть тело человека, нужно отследить попадания. Попадания фиксируют: голова, тело (от шеи до таза), верх правой ноги/низ правой ноги, верх левой ноги/низ левой ноги.
    После того, как мы отследили попадание, нужно понять - что попало (для того чтобы понять как реагировать). Попасть могут две руки (врага) и две ноги (врага). То есть, что мы имеем? Враг бьет в голову и мы должны понять, куда он попал и чем он бил.

    Есть такое решение, грубое и мне оно не нравится.

    
    //  если попало в голову
    if (OwnerBodyPartName == "mixamorig:Head")
    { 
                // если попала левая рука
                if (IncomingObjName == "mixamorig:LeftHand")
                {
    
                }
                // если попала правая рука
                else if (IncomingObjName == "mixamorig:RightHand")
                {
    
                }
                // ну и.т.д
                else if (IncomingObjName == "mixamorig:LeftToeBase")
                {
    
                }
                else if (IncomingObjName == "mixamorig:RightToeBase")
                {
    
                }    
    }
    

    и так на все части тела. Получаются многоэтажные if else if. Как вы поступили?

    Спустя 152 сек.

    Стоило задать вопрос в ветке про игровое программирование)

  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 28 апреля 2017 г. 14:57, спустя 4 минуты 27 секунд

    Стоило задать вопрос в ветке про игровое программирование)

    @abasov90, перенёс

  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 29 апреля 2017 г. 6:47, спустя 15 часов 49 минут 55 секунд

    я бы паковал в 2 вложенных for конечно по списку элементов что и куда может прилететь, на выходе массив (либо сразу калбеки при попадании) или объект с тем что и куда попало. Дальше не знаю вашей логики и где это используется. Там все depends.

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!